services: postgres: image: postgres:17-alpine restart: unless-stopped environment: POSTGRES_DB: openflare POSTGRES_USER: openflare POSTGRES_PASSWORD: replace-with-strong-password volumes: - ./postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U openflare -d openflare"] interval: 10s timeout: 5s retries: 5 openflare: build: dockerfile: Dockerfile restart: unless-stopped depends_on: postgres: condition: service_healthy ports: - "3000:3000" environment: SESSION_SECRET: replace-with-random-string SQLITE_PATH: /data/openflare.db DSN: postgres://openflare:replace-with-strong-password@postgres:5432/openflare?sslmode=disable GIN_MODE: release LOG_LEVEL: info volumes: - ./openflare-data:/data