Deploy
Install on Debian or an LXC
deploy/lxc.sh sets up CERMM on a fresh Debian 13 (or 12) machine, VM or LXC container, and runs it under systemd. Running it again after a git pull updates it.
Install
As root:
apt-get update && apt-get install -y git
git clone https://git.klab.gg/xvoltzz/CERMM.git /opt/cermm && cd /opt/cermm
sh deploy/lxc.sh
What it does
- Installs a few packages:
curl,ca-certificates,xz-utils,gitandlibatomic1(Node needs it). - Downloads Node 26 into
/opt/nodeand Go into/opt/go, checking each against its published SHA-256. Skipped when the right version is already there. - Builds the web app (
npm ci,npm run build) and the agents for every system (agent/build.sh, intoagent/dist/; the server hands these out). - Makes a
cermmsystem user, and/var/lib/cermmfor the data (mode 700). - Writes
/etc/systemd/system/cermm.serviceand, the first time only,/etc/default/cermmfor your settings. Enables and starts the service. - Prints the address, the certificate's SHA-256 fingerprint and the setup code.
The service runs as cermm, can write only to /var/lib/cermm (ProtectSystem=strict, ProtectHome, PrivateTmp, NoNewPrivileges) and restarts if it stops.
Another port
The port is set when the service file is written:
CERMM_PORT=8443 sh deploy/lxc.sh
Other settings go in /etc/default/cermm (see Environment variables); the script doesn't overwrite that file once it exists.
In an LXC container on Proxmox
Make a Debian 13 container from the standard template and run the script inside it as root. Give the container a fixed address (a DHCP reservation or a static IP): agents keep the address they were installed with.
After it's running
- Open the address it printed and claim the first account.
- Logs:
journalctl -u cermm -f. - Restart after changing
/etc/default/cermm:systemctl restart cermm.