Перейти до вмісту

Домен і HTTPS

У продакшні basedb має обслуговуватися через HTTPS: його сеансові cookie мають атрибут Secure і префікс __Host-, а браузер приймає їх через HTTP лише на localhost.

Образ уже обслуговує все за однією адресою — інтерфейс, API під /api, сервер MCP під /mcp. Лишається тільки поставити його за HTTPS-проксі: docker-compose.yml надає такий проксі, Caddy, який сам отримує й поновлює свій сертифікат Let’s Encrypt.

  1. Спрямуйте DNS вашого домену на сервер; відкрийте порти 80 і 443.

  2. У .env:

    Fenêtre de terminal
    BASEDB_DOMAIN=basedb.example.com
    BASEDB_PUBLIC_URL=https://basedb.example.com
  3. Запустіть із профілем https:

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

Порт 3000 і далі відкрито лише на 127.0.0.1: увесь зовнішній трафік іде через Caddy.

  • BASEDB_DOMAIN: домен, для якого Caddy запитує сертифікат.
  • BASEDB_PUBLIC_URL: адреса повернення після входу через OIDC, яку посимвольно порівнюють з адресою, зареєстрованою в постачальника ідентифікації.
  • Caddy встановлює X-Forwarded-For на основі реальної адреси відвідувача, а basedb довіряє йому, коли він надходить із приватної мережі: тоді обмеження частоти запитів API (вхід, опубліковані форми) рахуються для кожного відвідувача окремо.

Nginx, Traefik чи балансувальник навантаження теж підійдуть: спрямовуйте весь трафік домену на порт 3000 контейнера без буферизації відповідей (сервер MCP і оновлення в реальному часі передають свої відповіді потоком) і переконайтеся, що проксі замінює X-Forwarded-For, а не доповнює його.

basedb — вільне програмне забезпечення від Eodia, студії ШІ-орієнтованого програмного забезпечення.