Skip to main content
Docker Compose is the fastest way to get InfraAudit running. A single docker compose up command starts the Go API, Postgres database, Redis cache, and the React frontend — no Kubernetes cluster required.
Complete the Prerequisites first. You need a Supabase project and Docker Compose v2 before starting.

Step 1: Clone the repository

Step 2: Create your .env file

Copy the example environment file:
Open .env and fill in your values. The template below shows every variable you need for a working deployment:
You must change two values before any real deployment:
  • ENCRYPTION_KEY — encrypts all cloud provider credentials stored in Postgres. Generate a secure value with openssl rand -hex 32. Never use the placeholder.
  • DB_PASSWORD — the default is publicly known. Change it before exposing the deployment to any network.
For the full list of configurable variables, see the Configuration reference.

Step 3: Start the stack

This starts four containers: Watch the API logs until it reports ready:
You should see:
If the API exits immediately with SUPABASE_JWT_SECRET is required, the Supabase values in .env are missing or incorrect.

Step 4: Verify the deployment

Run the health checks:
Then open http://localhost:5173 in your browser and sign up.

Optional: enable monitoring

Add Prometheus and Grafana with the monitoring profile:
Grafana starts with a pre-built InfraAudit dashboard. Log in with admin / admin and change the password on first login.

Managing the stack

Updating to a new version

Pull the latest images and restart:
The API runs any pending database migrations automatically on startup. See Upgrades for details on what to check before pulling a new version.

Production considerations

Before exposing your deployment to the internet:
  • Place a reverse proxy (nginx, Caddy) in front of port 8080 to terminate TLS.
  • Set ENVIRONMENT=production — this disables the Swagger UI and debug endpoints.
  • Set ALLOWED_ORIGINS to your frontend domain instead of the default *.
  • Store secrets in environment variables or a secrets manager rather than the .env file.
  • Read Secrets and encryption before going live.