Ga naar inhoud

Domein en HTTPS

In productie moet basedb via HTTPS worden geserveerd: de sessiecookies zijn Secure en hebben het voorvoegsel __Host-, en een browser accepteert ze via HTTP alleen op localhost.

De image serveert al alles op één adres — de interface, de API onder /api, de MCP-server onder /mcp. Je hoeft haar alleen nog achter een HTTPS-proxy te zetten: het docker-compose.yml levert er een, Caddy, die zelf zijn Let’s Encrypt-certificaat aanvraagt en vernieuwt.

  1. Laat de DNS van je domein naar de server wijzen; open de poorten 80 en 443.

  2. In .env:

    Fenêtre de terminal
    BASEDB_DOMAIN=basedb.example.com
    BASEDB_PUBLIC_URL=https://basedb.example.com
  3. Start met het profiel https:

    Fenêtre de terminal
    docker compose --profile https up -d

Poort 3000 blijft alleen op 127.0.0.1 gepubliceerd: al het externe verkeer gaat via Caddy.

  • BASEDB_DOMAIN: het domein waarvoor Caddy het certificaat aanvraagt.
  • BASEDB_PUBLIC_URL: de redirect-URL van een OIDC-login, die teken voor teken wordt vergeleken met de URL die bij de identiteitsprovider is geregistreerd.
  • Caddy zet X-Forwarded-For op basis van het echte adres van de bezoeker, en basedb behoudt die header als hij uit een privénetwerk komt: de rate limits van de API (inloggen, gedeelde formulieren) tellen dan per bezoeker.

Nginx, Traefik of een load balancer zijn ook geschikt: stuur al het verkeer van het domein naar poort 3000 van de container, zonder buffering van de antwoorden (de MCP-server en de realtime-updates streamen hun antwoorden), en zorg dat de proxy X-Forwarded-For vervangt in plaats van aanvult.

basedb is vrije software van Eodia, een AI-native softwarestudio.