Skip to content

Quick start

Install with the published container image. No source checkout required.

  • A host with Docker and the Compose plugin.
  • A Postfix server whose mail.log this host can read (locally, or mounted over SSHFS).
Terminal window
# 1. A working directory and the config files
mkdir postfix-insights && cd postfix-insights
curl -fsSL https://raw.githubusercontent.com/Xodus-CO/postfix-insights/main/docker-compose.prod.yml -o docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/Xodus-CO/postfix-insights/main/.env.example -o .env
# 2. Generate and set the required CSRF secret
sed -i "s/^CSRF_SECRET=$/CSRF_SECRET=$(openssl rand -hex 32)/" .env
# 3. Start the app + sqld sidecar
docker compose up -d

Access it at http://<host>:8080. Search is at /, the delivery-health dashboard at /stats.

Open .env and review the top section. The settings most installs need:

SettingWhat to set
COMPANY_NAMEYour org name, shown in the UI header
LOG_TIMEZONEIANA timezone, e.g. America/New_York
STATS_INTERNAL_DOMAINSComma-separated internal/noise domains to flag in /stats
ALLOWED_EMAIL_DOMAINSRestrict emailed reports to these domains (optional)
HOST_PORTHost port if 8080 is taken

See Configuration for the full set.

For reproducible deploys, pin the image tag instead of tracking :latest. In docker-compose.yml:

image: ghcr.io/xodus-co/postfix-insights:v3.1.1

:latest always follows the most recent release.