sqlinsight-pro/deploy/hub/docker-compose.yml
Claude 19fbb02045
Some checks are pending
CI / Build og unit tests (push) Waiting to run
CI / Integration (mcr.microsoft.com/mssql/server:2017-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2019-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2022-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2025-latest) (push) Blocked by required conditions
Fase 3: data processing, hub retention and deployment
Hub: nightly retention of resolved findings, the submission log and
silent instances; delete-customer erases a customer's data and blocks
its licenses; persistent data protection keys and trusted reverse
proxies. Docker image and compose file with PostgreSQL. The agent
refuses to send the license to a non-https hub. Documentation for the
hub, for data processing (GDPR basis for a data processing agreement)
and the README roadmap for phase 3.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E3EExwndy8Z22EK2Qpt6BK
2026-09-29 09:29:20 +00:00

44 lines
1.5 KiB
YAML

# SQLInsight Hub with PostgreSQL. Put a TLS-terminating reverse proxy (IIS/ARR, nginx, Caddy, Traefik) in front:
# agents and staff must reach the hub over https.
#
# HUB_DB_PASSWORD=... docker compose up -d
# docker compose exec hub dotnet SQLInsight.Hub.dll add-staff <brugernavn> "<navn>"
services:
postgres:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_DB: sqlinsight_hub
POSTGRES_USER: sqlinsight_hub
POSTGRES_PASSWORD: ${HUB_DB_PASSWORD:?set HUB_DB_PASSWORD}
volumes:
- postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U sqlinsight_hub -d sqlinsight_hub"]
interval: 10s
retries: 5
hub:
build:
context: ../..
dockerfile: deploy/hub/Dockerfile
image: sqlinsight-hub
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
ConnectionStrings__Hub: "Host=postgres;Database=sqlinsight_hub;Username=sqlinsight_hub;Password=${HUB_DB_PASSWORD};GSS Encryption Mode=Disable"
# The public key licenses are signed with (the vendor tool's keygen prints it):
# SQLInsight__Hub__TrustedKeys__k20260929: "MFkw..."
SQLInsight__Hub__UpdateFeedPath: /data/feed
# Address of the reverse proxy, so login rate limiting sees real client addresses:
# SQLInsight__Hub__KnownProxies__0: "172.18.0.1"
volumes:
- hubdata:/data
ports:
- "127.0.0.1:8080:8080"
volumes:
postgres:
hubdata: