Post

LXConsole - Installation in an Incus Container

LXConsole is an open source application that provides a web-based user interface capable of managing multiple Incus and LXD servers from a single location.

Incus Documentation

Prerequisite: Incus - Ubuntu 26.04 Installation

Create Container (Ubuntu 26.04)

1
incus launch images:ubuntu/26.04 lxconsole --profile=default --profile=bridgeprofile -c security.nesting=true -c boot.autostart=true

Setup for LXConsole (Docker)

Shell into the created container:

1
incus shell lxconsole

Setup User and SSH Access:

1
2
3
adduser <username>
usermod -aG sudo <username>
apt update && apt install wget curl git nano openssh-server dnsutils openvswitch-switch -y

Setup Static Server IP:

1
nano /etc/netplan/10-lxc.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
network:
  version: 2
  ethernets:
    eth0:
      addresses:
      - "192.168.x.x/24"
      nameservers:
        addresses:
        - 192.168.x.x
        search:
        - pengwin.home
      routes:
      - to: "default"
        via: "192.168.x.x"

Apply the configuration:

1
netplan apply

Exit from the container:

1
exit

Use Incus List to see the IP of the lxconsole container

1
2
3
4
5
6
7
user@incus:~$ incus list
+----------------+---------+----------------------+--------------+-----------------+-----------+
|      NAME      |  STATE  |         IPV4         |     IPV6     |      TYPE       | SNAPSHOTS |
+----------------+---------+----------------------+--------------+-----------------+-----------+
| lxconsole      | RUNNING | 192.168.x.x (eth0)   |              | CONTAINER       | 0         |
+----------------+---------+----------------------+--------------+-----------------+-----------+

SSH into the container:

1
ssh <username>@<lan ip of container>

Install Docker

1
2
3
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker [YourUser]
newgrp docker

Note: If you are on Ubuntu 26.04, the newgrp command is not installed by default. You need to install the util-linux-extra package:

1
sudo apt install util-linux-extra

Create Container for LXConsole

Become root:

1
sudo -i

Create directories for LXConsole container (this is my preferred place to put containers):

1
2
mkdir -p /opt/stacks/lxconsole
mkdir -p /opt/stacks/lxconsole/lxbackups

Change directory to LXConsole and create compose file:

1
cd /opt/stacks/lxconsole
1
nano compose.yaml
1
2
3
4
5
6
7
8
9
10
11
services:
  lxconsole:
    image: penninglabs/lxconsole:latest
    container_name: lxconsole
    restart: unless-stopped
    ports:
      - '5000:5000'
    volumes:
      - /mnt/incus:/opt/stacks/lxconsole/backups
      - /opt/stacks/lxconsole/certs:/opt/lxconsole/certs
      - /opt/stacks/lxconsole/server:/opt/lxconsole/instance

Start the LXConsole container:

1
docker compose up -d

Access the LXConsole

1
http://192.168.x.x:5000

Create a user

Login

Add a Server to LXConsole:

On the Incus server:

1
nano lxconsole.crt

Now in the lxconsole web ui, click on the ‘Add Server’ button in the upper right of the window. You’ll be prompted with a modal (pop-up) window. In that window above the fields, you’ll see a bit of information. There is a link on that information you need to click. Follow the instructions (create the crt and run the two incus commands. Then add the server in the pop-up using the relevant information.

This post is licensed under CC BY 4.0 by the author.