- new compose templates + READMEs for the three LXC apps (110-112) - Makefile deploy targets (rackula pre-owns its data dir for uid 1001) - Caddy vhosts for all four, incl. Hermes /auth/login redirect workaround - firewall docs: CADDY->TRUSTED rules for LXCs 110-113
2.3 KiB
Rackula
Drag-and-drop server rack layout designer (front panels come from the NetBox
devicetype-library). Runs as two containers: the rackula frontend and the
rackula-api persistence backend, so layouts are stored on the server and
shared across browsers/devices instead of living only in localStorage.
Persistent Data
rackula-api stores layouts as flat files in RACKULA_DATA_DIR
(default ./data relative to where compose runs). The API runs as uid 1001,
so the directory must exist and be owned by 1001:1001 before first start.
Installation
-
Create
.envif it does not exist:cp -n .env.sample .env -
Adjust the values in
.envif needed:TZ=Africa/Johannesburg RACKULA_PORT=8080 RACKULA_CORS_ORIGIN=https://rackula.<your-domain> DOCKERLOGGING_MAXFILE=3 DOCKERLOGGING_MAXSIZE=10m -
Create the data directory:
mkdir -p data && sudo chown 1001:1001 data -
Deploy with
make:make deploy-rackulaManual equivalent:
./substitute_env.sh docker-compose-files/rackula/template.yaml docker-compose.rackula.yml .env docker compose -f docker-compose.rackula.yml config --quiet docker compose -f docker-compose.rackula.yml up -d -
Verify the containers and open
http://<host-ip>:8080:docker compose -f docker-compose.rackula.yml ps docker compose -f docker-compose.rackula.yml logs --tail=100 rackula-api
Reverse Proxy
The Caddyfile proxies rackula.<domain> to this host on port 8080. After
changing the port, update docker-compose-files/caddy/Caddyfile_template and
run make reload-caddy.
Notes
- Auth is disabled (
RACKULA_AUTH_MODE=none) — the app is only reachable on the LAN and through Caddy. Switch tolocaland setRACKULA_AUTH_SESSION_SECRET,RACKULA_LOCAL_USERNAMEandRACKULA_LOCAL_PASSWORDif it ever needs to be exposed more widely. RACKULA_STORAGE_MODE=browserreverts to localStorage-only operation; the API container can then be dropped entirely.
Useful Commands
# Tail logs
docker compose -f docker-compose.rackula.yml logs -f
# Recreate after an image update
docker compose -f docker-compose.rackula.yml pull
docker compose -f docker-compose.rackula.yml up -d