Install Noctcom
Free self-host · AGPL-3.0
Install Noctcom on Proxmox VE
Deploy your own instance as an **LXC** container on a Proxmox VE host. A single command creates the container, installs Docker and brings up the whole stack, isolated from the host.
$ bash <(curl -fsSL https://raw.githubusercontent.com/RedderLabs/noctcom/main/proxmox/noctcom-lxc.sh)It asks for your domain (leave it empty for IP-based LAN mode). When it finishes it shows the access URL and the container ID (CTID).
What the installer does
Creates an LXC
An unprivileged Debian container, with nesting and keyctl enabled so Docker runs inside it.
Installs Docker
Sets up Docker and Docker Compose inside the container, without you touching anything on the host.
Brings up the stack
PostgreSQL, Redis, MinIO, backend, frontend and Caddy with automatic TLS. At the end it gives you the URL and the CTID.
Requirements
RAM matters: the Next.js build needs more than 2 GiB. Don't go below 4 GiB unless you know what you're doing.
What runs inside the container
The whole stack lives in a single LXC, isolated from the rest of the Proxmox host.
Your files are encrypted in the browser: neither the server nor whoever administers the host can read their contents.
Customize the install
Pass environment variables before the command to tune resources or networking. The most useful ones:
| Variable | Default | What it's for |
|---|---|---|
NOCTCOM_RAM | 4096 | MiB of RAM (the Next.js build needs more than 2 GiB). |
NOCTCOM_DOMAIN | — | Domain; empty = IP-based LAN mode. |
NOCTCOM_EMAIL | — | Email for the TLS certificates (when you use a domain). |
NOCTCOM_CORES | 2 | Number of vCPUs for the container. |
NOCTCOM_DISK | 20 | GB of disk for the rootfs. |
NOCTCOM_NONINTERACTIVE | 0 | 1 = ask nothing and use the defaults. |
Maintenance
Replace <CTID> with the ID the installer gave you.
$ pct exec <CTID> -- bash -lc 'cd /opt/noctcom && bash update.sh'$ pct exec <CTID> -- bash -lc 'cd /opt/noctcom && docker compose ps'$ pct exec <CTID> -- bash -lc 'cd /opt/noctcom && docker compose logs -f backend'Common problems
"I can't find pct / pveam / pvesh"
The build runs out of memory or gets killed
It won't load with a domain
The LXC's IP changed and the app won't reach the API (LAN mode)
Full installation guide