1. Information

2. Linux

2.1. Installation

  • Enter the following commands at a Command Line.

    sudo curl -fsSL https://pkgs.zabbly.com/key.asc | gpg --show-keys --fingerprint
    pub   rsa3072 2023-08-23 [SC] [expires: 2030-08-17]
          4EFC 5906 96CB 15B8 7C73  A3AD 82CC 8797 C838 DCFD
    uid                      Zabbly Kernel Builds <info@zabbly.com>
    sub   rsa3072 2023-08-23 [E] [expires: 2030-08-17]
    sudo mkdir -p /etc/apt/keyrings/
    sudo curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc
    sudo sh -c 'cat <<EOF > /etc/apt/sources.list.d/zabbly-incus-lts-6.0.sources
    Enabled: yes
    Types: deb
    URIs: https://pkgs.zabbly.com/incus/lts-6.0
    Suites: $(. /etc/os-release && echo ${VERSION_CODENAME})
    Components: main
    Architectures: $(dpkg --print-architecture)
    Signed-By: /etc/apt/keyrings/zabbly.asc
    
    EOF'
    sudo sh -c 'cat <<EOF > /etc/apt/sources.list.d/zabbly-incus-stable.sources
    Enabled: yes
    Types: deb
    URIs: https://pkgs.zabbly.com/incus/stable
    Suites: $(. /etc/os-release && echo ${VERSION_CODENAME})
    Components: main
    Architectures: $(dpkg --print-architecture)
    Signed-By: /etc/apt/keyrings/zabbly.asc
    
    EOF'
    ls -al /etc/apt/sources.list.d
    cat /etc/apt/sources.list.d/zabbly-incus-lts-6.0.sources
    cat /etc/apt/sources.list.d/zabbly-incus-stable.sources
    
    # Choose the LTS or stable repository by removing the other one.
    sudo rm /etc/apt/sources.list.d/zabbly-incus-lts-6.0.sources
    
    sudo apt-get update
    sudo apt-get install incus
    
    which incus
    incus --version                 # 6.20
    sudo systemctl status incus
    sudo systemctl start incus
    sudo systemctl status incus

2.2. Configuration

  • Enter the following commands at a Command Line.

    sudo adduser $USER incus-admin
    newgrp incus-admin
    
    # See https://linuxcontainers.org/incus/docs/main/howto/initialize/#initialize
    incus admin init
    
    # Would you like to use clustering? (yes/no) [default=no]: no
    # Do you want to configure a new storage pool? (yes/no) [default=yes]: yes
    # Name of the new storage pool [default=default]: default
    # Name of the storage backend to use (dir, truenas) [default=dir]: dir
    # Where should this storage pool store its data? [default=/var/lib/incus/storage-pools/default]:
    # Would you like to create a new local network bridge? (yes/no) [default=yes]: yes
    # What should the new bridge be called? [default=incusbr0]: incusbr0
    # What IPv4 address should be used? (CIDR subnet notation, "auto" or "none") [default=auto]: auto
    # What IPv6 address should be used? (CIDR subnet notation, "auto" or "none") [default=auto]: auto
    # Would you like the server to be available over the network? (yes/no) [default=no]: no
    # Would you like stale cached images to be updated automatically? (yes/no) [default=yes]: yes
    # Would you like a YAML "init" preseed to be printed? (yes/no) [default=no]: yes
    config: {}
    networks:
    - config:
        ipv4.address: auto
        ipv6.address: auto
      description: ""
      name: incusbr0
      type: ""
      project: default
    storage_pools:
    - config: {}
      description: ""
      name: default
      driver: dir
    storage_volumes: []
    profiles:
    - config: {}
      description: ""
      devices:
        eth0:
          name: eth0
          network: incusbr0
          type: nic
        root:
          path: /
          pool: default
          type: disk
      name: default
      project: default
    projects: []
    certificates: []
    cluster_groups: []
    cluster: null

2.3. Incus Web UI

  • Enter the following commands at a Command Line.

    sudo apt-get install incus-ui-canonical
    incus config show
    incus config set core.https_address :8443
    incus config show
    
    sudo apt-get install lsof
    sudo lsof -i :8443
    
    sudo ls -l /var/lib/incus/server.key /var/lib/incus/server.crt
    sudo openssl x509 -in /var/lib/incus/server.crt -text -noout
  • Note: A common alternative to dealing with Incus certificates, is to use a reverse-proxy. You get the reverse-proxy to use a proper certificate and leave Incus as is.

  • Authenticate the client (browser) to the server.

  • Browse to Incus UI.

  • Click Login with TLS.

  • Click Generate to generate the private key and the certificate.

  • Click Skip to skip generating a password.

  • Click Download crt.

  • Click Download pfx.

  • Enter the following commands at a Command Line.

    # Add the user certificate to the Incus trust store.
    incus config trust list
    ls -al /mnt/c/Users/Douwe/Downloads/incus-ui.crt
    incus config trust add-certificate /mnt/c/Users/Douwe/Downloads/incus-ui.crt
    incus config trust list
    +--------------+--------+-------------+--------------+-----------------------+
    |     NAME     |  TYPE  | DESCRIPTION | FINGERPRINT  |      EXPIRY DATE      |
    +--------------+--------+-------------+--------------+-----------------------+
    | incus-ui.crt | client |             | e8eef6f3c619 | 2028/10/13 16:13 CEST |
    +--------------+--------+-------------+--------------+-----------------------+
  • Start Mozilla Firefox.

  • Type about:preferences#privacy in the address bar.

  • Scroll down and select View Certificates.

  • Select the Your Certificates tab.

  • Click Import.

  • Select the incus-ui.pfx file and click Open.

  • Leave the password field empty.

  • Click Sign in.

  • Click OK.

  • Close the Settings tab.

  • Close Mozilla Firefox.

  • Start Mozilla Firefox.

  • Browse to Incus UI.

  • Check Remember this decision.

  • Click OK.

  • Close Mozilla Firefox.