Skip to content
Français
Conteneurs & Orchestration medium

Administering remote Incus servers

15 min de lecture

Read this page in French

incus logo

Administering an Incus server remotely rests on two complementary methods: the CLI with a remote authenticated by token, and the web interface incus-ui-canonical. This guide exposes the server API, adds a remote on the client side, handles trust through a token, then installs the graphical UI. The commands apply to Incus 7.0; the UI shown here runs on a three-node cluster.

What you will learn

  • Expose the API of an Incus server on the network.
  • Add a remote and authenticate it with a token.
  • Install the web interface incus-ui-canonical.
  • Secure the access (certificate, reverse proxy).

Configuring the server for remote administration

Before connecting a client, the Incus server has to accept remote connections. On the server, enable the secure HTTP API by giving the address and port:

Fenêtre de terminal
incus config set core.https_address <IP address>:8443

Configuring a client to administer a remote server

To administer an Incus server remotely, the client needs a secure connection. The main steps:

  1. Install the Incus CLI on the client machine. If it is missing, follow the installation guide, installing only the incus-client package.

  2. Generate a token on the server: incus config trust add creates a single-use trust token. The token carries the address of the server and its certificate fingerprint.

    Fenêtre de terminal
    incus config trust add client-box
    # Client client-box certificate add token:
    # eyJjbGllbnRfbmFtZSI6...
  3. Add the remote on the client: paste the token. There is no address to type and no certificate to accept by hand, it is all in the token.

    Fenêtre de terminal
    incus remote add cluster eyJjbGllbnRfbmFtZSI6...
  4. Check the connection: prefix commands with the remote name followed by :. On a cluster, the LOCATION column shows which node runs each instance.

    Fenêtre de terminal
    incus list cluster: -c ns4tL
    +------+---------+----------------------+-----------+----------+
    | NAME | STATE | IPV4 | TYPE | LOCATION |
    +------+---------+----------------------+-----------+----------+
    | web1 | RUNNING | 10.107.24.164 (eth0) | CONTAINER | node2 |
    | web2 | RUNNING | 10.107.24.252 (eth0) | CONTAINER | node3 |
    | web3 | RUNNING | 10.107.24.100 (eth0) | CONTAINER | node1 |
    +------+---------+----------------------+-----------+----------+

The client is ready: every incus ... cluster: command now drives the remote server securely.

What the Incus web interface offers

The Incus user interface simplifies managing containers and virtual machine instances through a graphical approach. The main features:

  1. Container management: reach the list of your containers, with options to start, stop, create and delete instances in a few clicks. The console and a terminal are included.
  2. Network and volume management: adjust the network configuration of containers, manage interfaces, and add or remove storage volumes.
  3. Image management: download, import and delete local images.
  4. Logs and alerts: read the activity logs of each instance and configure alerts to spot incidents quickly.
  5. Server configuration: adjust the Incus server settings.

Together these give complete, simplified management of Incus instances, making administration more accessible while staying powerful.

The Incus web interface: cluster instances spread across node1, node2 and node3

Installing the graphical interface on the server

A project forked the LXD interface to support Incus, which gives a fully web-based administration interface. The package is called incus-ui-canonical, and it currently ships in the Zabbly repository covered in the installation guide.

Fenêtre de terminal
sudo apt install -y incus-ui-canonical

As for the command line, the API has to be enabled on the Incus server: follow the procedure above.

Configuring the certificate

The setup is fully guided. Follow the steps shown in the screenshot below:

Configuring the Incus graphical interface

  1. Generate the certificate and copy it onto the server running the Incus instance.

  2. Run the command, changing the certificate file path.

    Fenêtre de terminal
    incus config trust add-certificate incus-ui.crt
  3. Download the .pfx certificate and install it on your machine as instructed.

  4. Restart the browser and select the right certificate.

The Incus graphical interface is then reachable.

The web terminal of an Incus instance in the graphical interface

To avoid exposing the API directly, you can put the UI behind a reverse proxy (Traefik, Nginx) handling TLS and access. That is good practice as soon as the server is reachable beyond a trusted network.

Key points

  • Remote access requires the API to be exposed: incus config set core.https_address=:8443.
  • The remote authenticates with a token: incus config trust add on the server, incus remote add <name> <token> on the client.
  • The token carries the address and the fingerprint: no manual certificate acceptance.
  • The web UI incus-ui-canonical (Zabbly repository) gives graphical management, clusters included.
  • Exposed beyond a trusted network, put the UI behind a TLS reverse proxy.

FAQ: common questions about Incus remote access

Next steps

  • Securing Incus: what to lock down once the API no longer listens only on the local socket.
  • Incus OS without a shell: a system where remote API administration is not an option but the only mode.
  • GPU in Incus: attach an NVIDIA card to an instance hosted on the server you drive remotely.

Is this site useful to you?

Fewer than 1% of readers support this site.

I maintain more than 700 free guides, with no ads and no tracking. Any support, even a symbolic one, helps cover hosting and keeps these resources free. Thank you for the help.

The form does not show? Open Ko-fi in a new tab.

Subscribe and follow my DevSecOps work on LinkedIn