LXDWare LXD Dashboard

LXD Dashboard, by LXDWARE is an open source web-based user interface capable of managing multiple LXD servers from a single location. LXD Dasboard can create LXD containers, start, stop, and delete them. LXD Dashboard can manage snapshots and backups as well as downloading backups of LXD instances to your local computer.

LXD dashboard can be deployed on a LXD or Docker container and uses Ubuntu, NginX, and PHP.

INSTALLATION ON A LXD INSTANCE OR A VM

Dependencies:

sudo apt update && sudo apt install nginx php-fpm php-curl sqlite3 php-sqlite3 -y

Get the package:

wget https://github.com/lxdware/lxd-dashboard/archive/refs/tags/v.3.8.0.tar.gz

Extract the package:

tar -xzf v.3.8.0.tar.gz

Copy files to destinations:

sudo cp -a lxd-dashboard-v.3.8.0/default /etc/nginx/sites-available/
sudo cp -a lxd-dashboard-v.3.8.0/lxd-dashboard /var/www/html/

Make Folders for program storage:

sudo mkdir -p /var/lxdware/data/sqlite
sudo mkdir -p /var/lxdware/data/lxd
sudo mkdir -p /var/lxdware/backups

Change permissions:

sudo chown -R www-data:www-data /var/lxdware/
sudo chown -R www-data:www-data /var/www/html

Restart the webserver:

sudo systemctl restart nginx

INSTALLATION IN A DOCKER CONTAINER

mkdir docker
cd docker
mkdir lxdware

Make your docker-compose.yml file:

version: '3'
services:
  LXD-Dashboard:
    image: lxdware/dashboard:latest
    ports:
      - "8080:80"
    volumes:
      - "./lxdware:/var/lxdware:rw"

Start the container:

docker-compose up -d

In both install cases, navigate to the address of the server on which you performed the installation in a web browser. Fill in the registration details.

After you perform the installation and try to add a LXD server to manage, you will need to copy the certificate from the LXD Dashboard web interface. Place the certificate in a file like lxdware.crt on the LXD host you want to manage.

To authorize your LXD dashboard to your server, you must sign on to a command prompt on the actual LXD server and perform the following two commands assuming you have the certificate in the file lxdware.crt.

lxc config trust add lxdware.crt
lxc config set core.https_address [::]

UBUNTU 22.04 IMPORTANT

The default site configuration file (/etc/nginx/sites-enabled/default) in Nginx has now been replaced. In Ubuntu this file should be linked from the sites-available directory. The version of php-fpm changes over time and the file path listed in the default configuration will need to be updated for your environment. Ubuntu 20.04 used version 7.4, but Ubuntu 22.04 now uses version 8.1. Edit the file using a text editor (nano, vi, etc) and comment out the path to version 7.4 and uncomment the path for version 8.1.

sudo nano /etc/nginx/sites-enabled/default

Hey folks, after installing LXD Dashboard and then pulling up the IP address in my browser nginx gave me a “502 Bad Gateway” error. Here’s what I did to fix this:

  • Log back into the container that has LXD Dashboard installed on it.
  • Run the following command to check the PHP version:
    php -version
  • Run the following command to edit the ‘’‘/etc/nginx/sites-available/default’‘’ file:
    sudo vi /etc/nginx/sites-available/default
  • Comment out ths line in the file by typing in a hash symbol (#) in front of it:
    #fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  • Un-comment this line by removing the hash symbol (#) in front of it:
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
  • Save the changes and then close vi.
  • Run the following command to restart nginx:
    sudo systemctl restart nginx
  • Run the following command to exit the container:
    exit

Hey Scott, I’m a bit lost on this. I installed LXD Dashboard on an LXD container using the instructions you’ve provided. I then pulled up the IP address in my browser, created the user account for myself and then logged into LXD Dashboard. I then clicked Add Host and I’m not sure which IP address I need to be putting in here. Do I need to put the same IP address of the container that is running LXD Dashboard? Or was I supposed to create a separate container to use when clicking Add Host?

The “Ubuntu 22.04” section in my original post addresses this directly.

To answer my own question I had to type in the IP address of the host server that is running the LXDWare LXD Dashboard Container.

I wasn’t able to find the /share/Container/ directory on my Ubuntu system so I ended up creating the cert.crt file in the following directory:

/var/snap/lxd/common/

I’m not sure if this is correct or not but I got it to work.

This depends on your server configuration and what you did is just one option.