The package incus-ui-canonical
doesn’t install a web service that provides the UI, but rather a single index.html
file in /opt/incus/ui
and a collection of pre-rendered JavaScript files in /opt/incus/ui/assets
. The incusd
daemon - when configured to listen with core.https_address
- will respond with these assets when requested via the /ui
path.
Although I think it would be better to depend on incus-base
not incus
, because incus-base
has incusd
; incus
has all the optional qemu stuff for running VMs.
Got it, that won’t do me any good. TrueNAS SCALE is implementing Incus and since it’s an appliance, I won’t be able to easily be able to install the UI then based on how it works. I wish that worked differently than it does. Oh well. Thank you for the quick answer!
There’s an easy way to do this:
- install the incus client package on your workstation - version 6.7 or later
- add your TrueNAS server as a remote (and set it to default if you like)
- run
incus webui
orincus webui myremote:
This will open up your browser, point it to localhost:randomport and do all the authentication.
It seems to work fine even with incus 6.0 LTS on the server side; for the client I’m using incus 6.10 under macOS installed from homebrew.
Maybe I’m misunderstanding, but doesn’t the incus-ui-canonical package have to be installed on the TrueNAS server?
It needs to be installed on the Incus server host that wish to access via the portal. So if your TrueNAS host also supports Incus, then installing the UI package on the TrueNAS host should give you access to the portal.
Don’t forget to set core.https_address if necessary, if that’s not already enabled, e.g.:-
incus config set core.https_address=[::]:8443
perhaps install it in a dataset, and set the mountpoint of that dataset to the incus ui location?
TNS doesn’t let you configure that one… Too bad. I like the Incus UI after playing around with it.
incus config set core.https_address=[::]:8443
zsh: no matches found: core.https_address=[::]:8443
root@truenas:~# incus config set core.https_address=[::]:8443
root@truenas:~#
I think the problem you’re running into is because of ZSH, not because of TrueNAS.
TrueNAS just runs the default Incus packaging from Debian.
Though Debian doesn’t package the Incus UI, so that’s not installed on TrueNAS.
You’re going to have to jump through quite a few hoops to get the UI going, though at least getting the API to be remotely accessible should be easy.
Not sure about TrueNAS but I never had any issues with incus on ARMBIAN that is based on Debian. No issues configuring OVN, WebUI. (ARMBIAN has an x64 port though it’s primary focus is ARM embedded boards).
Having said that, I wouldn’t recommend for one reason. Once I upgraded the kernel, ZFS stopped working and I got stuck Tried an much as I can, including building ZFS from source but I am not knowledgable enough to figure things out. So I gave up and started all over on Ubuntu24.04 (doing it as I speak). My .02 cents.
Yep, I wasn’t even paying attention to that. I can easily spin up a container with incus-ui-canonical
installed and connect back with SSH forwarding since `incus webui starts a local connection. I already have a cloud-init config to do this. So that shouldn’t be too much of an issue. We’ll see how it goes… Thank you for pointing out my blunder.
This is a zsh issue:
% echo [::]:8443
zsh: no matches found: [::]:8443
% echo '[::]:8443'
[::]:8443
%
Hence you should use quotation marks to stop zsh interpreting the meta-characters:
incus config set 'core.https_address=[::]:8443'
Yep, I was able to do exactly that earlier. Thanks.
Wondering if anyone managed to get the audio working either thru webui or thru virt-viewer ? I have an ubuntu24.04 vm running and I installed xubuntu-desktop on it. Managed to install google-chrome as well. Everything seems working fine except for the audio part. Not sure what needs to be done.
‘jumpbox’ being my ubuntu24.04 vm with xubuntu-desktop, I tried the command below :
% incus config device add jumpbox sound audio
Error: Invalid devices: Device validation failed for “sound”: Failed loading device “sound”: Unsupported device type
Appreciate any advice/suggestions/pointers
thank you.
ps: attached is the console via virt-viewer when invoked with the command (on my mac) :
% incus console jumpbox -t vga
Try this command (you may lose sound on the host when vm is working, depends on the sound card I believe):
incus config set <vm_name> raw.qemu -- "-device intel-hda -device hda-duplex -audio spice"
Thanks. Though I am able to control the volume levels now, but I still don’t get audio either from the webui or from virt-viewer.
% incus config set jumpbox raw.qemu – “-device intel-hda -device hda-duplex -audio spice”
Error: Key “raw.qemu” cannot be updated when VM is running
% incus stop jumpbox
% incus config set jumpbox raw.qemu – “-device intel-hda -device hda-duplex -audio spice”
% incus start jumpbox
Woohoo!! The audio now works for both using webui and virt-viewer Thanks @qkiel for providing the command as well as link to the related thread. I followed @stgraber suggestion on installing linux-modules-extra package and that got the audio working after a reboot of vm
# apt install linux-modules-extra-$(uname -r)
# reboot