Run RackMon in about ten minutes.
RackMon ships as a single container that serves both the API and the web UI. Start on SQLite with zero configuration, move to PostgreSQL when you grow.
1 · Requirements
- A host with Docker (Linux, macOS or Windows). 1 vCPU / 512 MB RAM is plenty to start.
- Outbound network access to the devices you want to poll over SNMP (v2c or v3).
- No account and no internet connection to RackMon is required — the app never phones home.
2 · Quick start
Generate two secrets and run the container. The app refuses to start in production with the insecure defaults, so always set your own.
# pull & run
docker run -d --name rackmon -p 8000:8000 \
-e RACKMON_ENVIRONMENT=production \
-e RACKMON_JWT_SECRET=$(openssl rand -hex 32) \
-e RACKMON_MASTER_KEY=$(openssl rand -hex 32) \
-e RACKMON_ADMIN_EMAIL=you@example.com \
-e RACKMON_ADMIN_PASSWORD='a-strong-password' \
-v rackmon_data:/data \
-e RACKMON_DATABASE_URL=sqlite:////data/rackmon.db \
rackmon/rackmon:latest
Open http://localhost:8000 and sign in with the admin email and password you set. Put RackMon behind a reverse proxy (Caddy, nginx, Traefik) to add HTTPS for production.
rackmon_data holds the database at /data. Nothing leaves your server.3 · Add devices
- Simulator (default): RackMon starts with a built-in SNMP simulator so you see live data instantly. Turn it off with
-e RACKMON_POLLER_USE_SIMULATOR=falseto poll real hardware. - Add one device: Devices → Add — enter host, SNMP version and credentials (community for v2c; user/auth/priv for v3).
- Discover a subnet: Discovery scans a range for SNMP hosts and imports what it finds.
4 · Alerts & notifications
Create rules with thresholds, hold windows, dedup and escalation. Deliver to any of:
| Channel | Environment variable |
|---|---|
| Email (SMTP) | RACKMON_SMTP_HOST, RACKMON_SMTP_PORT, RACKMON_SMTP_USER, RACKMON_SMTP_PASSWORD, RACKMON_SMTP_FROM |
| Slack | RACKMON_SLACK_WEBHOOK_URL |
| Microsoft Teams | RACKMON_TEAMS_WEBHOOK_URL |
| Generic webhook | RACKMON_ALERT_WEBHOOK_URL |
| Telegram | RACKMON_TELEGRAM_BOT_TOKEN, RACKMON_TELEGRAM_CHAT_ID |
A missing reading or a maintenance window never fakes an all-clear — RackMon distinguishes "no data" from "recovered".
5 · Unlock Pro
Community is the full monitor, free forever. Pro adds the client-facing features: SSO (OIDC) & LDAP/AD, the public status page, SLA/availability PDF reports, and white-label branding. After you buy a license you receive an Ed25519-signed key by email. Add it and restart:
-e RACKMON_LICENSE_KEY=<your-key>
The key is verified offline — there is no license server and no call-home. One key licenses one instance.
6 · Configuration reference
Every setting is an environment variable prefixed RACKMON_. The most common:
| Variable | Default | What it does |
|---|---|---|
RACKMON_ENVIRONMENT | development | Set to production to enforce the secret-safety checks. |
RACKMON_JWT_SECRET | dev default | Signs session tokens. Set a 32-byte random value. |
RACKMON_MASTER_KEY | dev default | Encrypts stored secrets (SNMP/SMTP) at rest. Set a 32-byte random value. |
RACKMON_DATABASE_URL | local SQLite | e.g. postgresql+psycopg2://user:pass@postgres:5432/rackmon |
RACKMON_ADMIN_EMAIL / RACKMON_ADMIN_PASSWORD | — | The first admin account, created on first boot. |
RACKMON_PUBLIC_BASE_URL | http://localhost:8000 | The URL users reach the app at (used in links/emails). |
RACKMON_LICENSE_KEY | empty | Your Pro/Enterprise key. Empty = Community. |
RACKMON_POLLER_USE_SIMULATOR | true | Set false to poll real SNMP hardware. |
RACKMON_SEED_DEMO_DATA | true | Set false for a clean, empty install. |
Enterprise auth (LDAP/AD, OIDC SSO), SNMP traps and scheduled reports have their own RACKMON_LDAP_*, RACKMON_OIDC_* and report variables — ask us if you need a full reference for your setup.
7 · Back up & upgrade
- Backup: back up the
/datavolume (or your PostgreSQL database). That is all your state. - Upgrade:
docker pull rackmon/rackmon:latest, then recreate the container with the same env and volume. Your license and data carry over.