Self-hosting ServiceOps
ServiceOps self-hosts as a Docker Compose stack. One VM, one compose file, a reverse proxy in front — no Kubernetes required.
Requirements
Section titled “Requirements”| Component | Minimum |
|---|---|
| Host | Linux VM, 2 vCPU / 4 GB RAM to start; 8 GB recommended with AI features busy |
| Docker | Docker Engine + Compose plugin |
| Reverse proxy | nginx, Caddy, Traefik or equivalent, terminating TLS |
| DNS | A name for the desk (and one per custom domain you’ll serve) |
What the stack runs
Section titled “What the stack runs”Reverse proxy (yours, TLS) ↓frontend (SSR) ←→ backend (API) ↓ PostgreSQL · Redis · MinIO (S3 storage)| Service | Role |
|---|---|
| backend | The API — NestJS, owns all business logic |
| frontend | The web application (server-side rendered) |
| db | PostgreSQL 16 — the system of record |
| redis | Queues, cache, sessions |
| minio | S3-compatible storage for files (any S3 endpoint works instead) |
Install
Section titled “Install”- Clone the repository on the host and enter the
deploy/directory. - Copy the example environment and set your values — see
Configuration:
Terminal window cp env/.env.example .env# edit .env: set your domain, database password, storage credentials - Start the stack:
Terminal window docker compose up -d --build - On first boot the backend prepares its own database schema and seed data — no manual
migration step. Watch it come healthy:
Terminal window docker compose psdocker compose logs -f app-backend - Point your reverse proxy at the frontend and backend ports (bound to
127.0.0.1by default, deliberately — only the proxy is public). Configure TLS at the proxy.
Result: the login page answers on your domain. The first administrator account’s credentials are generated at first boot — retrieve them as your bootstrap instructs, sign in, and change the password immediately.
Upgrade
Section titled “Upgrade”git pulldocker compose up -d --buildSchema updates apply automatically at boot. Take a backup before upgrading — restore is then a compose-down, restore, compose-up.