Deployment
Deploy infrapage with Docker Compose or as a standalone binary.
Deployment
infrapage can be deployed as a Docker container or as a standalone binary. This guide covers both approaches.
Docker Compose (Recommended)
The easiest way to deploy infrapage with all dependencies:
version: "3.8"
services:
infrapage:
image: ghcr.io/hauju/infrapage:latest
ports:
- "8080:8080"
environment:
MONGODB_URI: mongodb://mongo:27017
MONGODB_DATABASE: infrapage
VALKEY_URI: redis://valkey:6379
INFRAPAGE_HOST: "0.0.0.0"
INFRAPAGE_PORT: "8080"
depends_on:
- mongo
- valkey
restart: unless-stopped
mongo:
image: mongo:7
volumes:
- mongo_data:/data/db
restart: unless-stopped
valkey:
image: valkey/valkey:8
volumes:
- valkey_data:/data
restart: unless-stopped
volumes:
mongo_data:
valkey_data:Save the Compose File
Save the above as docker-compose.yml in a new directory.
Create Environment File
Create a .env file next to it with any additional configuration (auth tokens, etc.).
Start Services
docker compose up -dVerify
Open http://localhost:8080/dashboard to confirm everything is running.
Reverse Proxy
For production deployments, put a reverse proxy in front of infrapage for TLS termination and custom domain support.
Caddy provides automatic HTTPS with Let's Encrypt:
app.example.com {
reverse_proxy infrapage:8080
}
# Custom domain for a page
status.myproject.com {
reverse_proxy infrapage:8080
}When using a reverse proxy, make sure to set SECURE_COOKIES=true and configure BASE_URL with your public HTTPS URL. The Host header must be forwarded correctly for custom domains to work.
Production Tips
- Enable authentication — Set up Zitadel or another OIDC provider to protect admin endpoints
- Use Valkey/Redis — Persistent sessions and widget caching significantly improve the experience
- Set
SECURE_COOKIES=true— Required when serving over HTTPS - Monitor MongoDB — infrapage creates indexes automatically, but monitor collection sizes as your dashboard grows
- Back up MongoDB — The
pagescollection contains all your dashboard configurations