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.

The easiest way to deploy infrapage with all dependencies:

yaml
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:
1

Save the Compose File

Save the above as docker-compose.yml in a new directory.

2

Create Environment File

Create a .env file next to it with any additional configuration (auth tokens, etc.).

3

Start Services

bash
docker compose up -d
4

Verify

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
    }

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 pages collection contains all your dashboard configurations