Alpine zigbee2mqtt proxmox LXC, can't acess frontend

I wonder if anyone can help me here.
I ditched my raspberry Pi because I kept having issues with it. I got myself a Beelink S12 Pro mini PC and installed proxmox. I got HAOS running as a VM. I had some difficulty getting Zigbee2mqtt add on to start and figured I preferred running it as a container since I have proxmox already. I used tteck helper scripts (Proxmox VE Helper-Scripts | Scripts for Streamlining Your Homelab with Proxmox VE) and chose the Alpine version because it is lighter weight. The issue I have now is I have set it up and it says it is running as per this message from the console:

alpine-zigbee2mqtt:~# rc-service zigbee2mqtt start

  • WARNING: zigbee2mqtt has already been started
    alpine-zigbee2mqtt:~#

I have installed the MQTT broker and add on on HA but when I tried to access the frontend it does not work.
Can anyone suggest how to even see if the z2m container is working. My router says it is live but I cannot understand why I cannot connect.
Also is there a way in home assistant to check if z2m is connected to it?

1 Like

In Proxmox, I’ve found that running most home automation servers that support a docker based configuration, such as Zigbee2MQTT, Home Assistant and Mosquitto MQTT, run fine within a Ubuntu or Debian VM and docker within that VM.

I have found any performance gain from running them in LXC’s, and really seems small, has not been offset by the more complex and limiting configurations that LXC have vs. running a VM in Proxmox.

I’m sure, most of that is my lack of experience with LXC’s. However, that said, I find much more information about running home automation components (and many others) using Docker vs. LXC.

Alpine is a fine distro and is small, however, I have found that running some larger OTS systems are harder to get running them under the more ‘main stream’ distros for a VM such as Ubuntu and Debian. I am starting to use Debian 12 Bookworm for my Docker hosts and if you disable the starting of the GUI, Debian 12 core takes under 512 MB. Again, I am sure with a leaner distro you can do even better, but I’ve not found any need on my Proxmox hardware to have to get that tight. I think your Beelink will probably support 64 GB RAM and for under USD 150, a good investment.

As the ‘docker stats’ shows below, the core home automations systems, Home Assistant, MQTT and Zigbee2MQTT are using less than 1 GB of ram.

Also, after starting with Ubuntu, I have found Debian to be as stable of not more and requiring less updates and restarts of it as a VM. Probably, why Proxmox uses it as the base OS for Proxmox. As, they say, Debian is ‘boring’, and that is what you want for your VM and LXC servers.

And two more, bit more opinionated, points:

  1. If you are comfortable with Proxmox, VM’s and Docker, I struggle to find the value of running Home Assistant as HAOS vs. running Home Assistant in a Docker container in a Debian VM. Why have your Zigbee and MQTT subsystems shutdown just because you need to reboot Home Assistant? Maybe there are a couple HA integrations that only run in HAOS’s own docker system with it. Well if that is the case then do run HAOS as a VM under Proxmox, but run most of your systems outside of HAOS in their own Docker containers. Far fewer dependency problems going this way when you are restarting Home Assistant, which if far far the most restarted and updated system I have.

  2. While there are some really good Proxmox bash script writers out there, I have found them to be a rather ‘black box’ installs. If I am not able to do and understand the manual steps to stand up something with Proxmox, I am less comfortable with the long term operation of the sub-system. Off soapbox.

Good hunting!

CONTAINER ID   NAME                            CPU %     MEM USAGE / LIMIT    MEM %     NET I/O           BLOCK I/O         PIDS
ccec36e8baf7   production-zigbee2mqtt-1.35.1   0.51%     78.38MiB / 3.82GiB   2.00%     0B / 0B           30.4MB / 439MB    12
dfe4e1ee2c52   test-zigbee2mqtt--1.35.1        0.00%     72.84MiB / 3.82GiB   1.86%     0B / 0B           43.2MB / 87.9MB   12
d04a1ed53513   home-assistant-2024.1.5        12.25%     635.1MiB / 3.82GiB   16.24%    0B / 0B           49.9MB / 1.68GB   59
7cbec9279f74   mosquitto-2                     0.16%     4.586MiB / 3.82GiB   0.12%     3.57GB / 3.63GB   5.12MB / 333MB    1


You have a number of points there. My issues with z2m may be related to Alpine. I did find a thread of some people trying to get it to work and I figure Debian may be the way to go.

I will give it another try later but in the meantime I have started using ZHA and I have found it might actually be all I need for now - all the devices I have are working with it. I understand migrating to z2m when I get everything figured out will be another source of headache but I will cross that bridge then.

As regards the RAM for my Beelink, its official maximum is 16GB but I have come across a Youtuber who is using 32GB for it and reports no problems. I will be upgrading to 32GB soon.

The stats you have posted are impressively low and might that be due to you running everything on Docker containers?

I’m new to HA so I still have a lot of learning to do. That’s why I have opted to run HAOS VM. As I get more comfortable with using virtualisations and containers I will consider running everything on containers.

IMHO, and I have used both, I would continue on your path of using Zigbee2MQTT. And in a separate docker container from Home Assistant.

‘on Docker containers?’

Yes, this low memory usage of the subsystems within a VM running docker is why I advocate running docker. No need to separate VM’s for each sub system. Maybe two VM’s one for production and one for testing. I do this.

With 32GB in your host, you will have plenty of RAM and CPU available to run many interesting subsystems, Plex, Wisper and many more.

Good hunting!

Interesting chat. I will definitely be doing that.

I suppose in your opinion it is best to install Docker containers in Proxmox using VMs vs using LXC containers?
I figure that method will solve an issue I have encountered with USB passthrough in LXC containers, as you can easily pass USBs through in VMs.

On my far to long ToDo list is to get better versed in the use of LXC’s under Proxmox. They do seem to have some benny’s and place where they might be better than VM’s under Proxmox.

That said, yes, I am very happy with my use of VM’s under Proxmox. And I think my moving to Debian from Ubuntu as my default distro for VM’s will make things even easier.

Managing USB devices under Proxmox, whether when using VM’s or LXC’s is a PIA IMHO. But, at least it does seem from my experience easier to use a USB devices in a VM vs. LXC under Proxmox.

Good hunting!

I’m running HAOS in a VM on proxmox. About 15 add-ons, 60+ devices and it consumes 3-3.5gb of RAM. It’s an old nuc8i5, I run a couple of lxc containers next to it for stuff I don’t want or can’t run in home assistant like Adguard, vaultwarden, jellyfin, Qbittorrent, Vpn server, a fileserver and so on. Anything that’s essential for the network/other services and doesn’t need to be in home assistant runs outside of it. If it requires tinkering in ha to get a service or application running, it’s going to be run outside of ha. It’s simply annoying that your DNS server or password manager doesn’t work because home assistant is down for an update. Applications I use exclusively for home assistant such as z2m, node red or mosquitto I just keep in HAOS inside the vm. It just works and it’s stable. If it breaks (and it has only done so once) I just restore a backup in a few minutes or set up a new VM in little more time. The whole setup never takes more than 10-15% processor load, 6gb RAM and does a 4-5W idle. Your beelink will probably easily match this performance. I used to run HAOS on a pi, but it just runs a lot better on a machine with a bit more power. Plus you can do much more and it doesn’t have to break the bank (or your power bill) if you do it right.

If you’re just starting out just try out running ha in a VM first until you get the hang of it. If you do decide to run a containerized/docker setup just do it inside a debian VM. Going the lxc way inside proxmox is a lot of hassle and it breaks easily. I agree it just complicates things a lot for minimal performance gain. If you have no need for VM’s and only want to do containers/docker, you could eventually just ditch proxmox and run a clean debian install because proxmox is just overhead in that scenario.

You should be able to access the gui of z2m by the lxc container’s IP address + port you configured. If not, something is wrong with z2m or the container setup. Debian vs alpine for a lxc container should hardly matter performance wise when just running z2m so you could just switch them out. A good way to discover what messages are being sent by z2m is to connect to the mqtt broker with an app like mqtt explorer. This app allows you to see what traffic runs through the broker.

Hummm, seem a bit odd that you do not consider MQTT broker and Zigbee2MQTT to be essential, however Jellyfin and Qbittorent are… Maybe a generational difference thing between us :wink:

1 Like