code-kumpel/docs/deploy.md
2026-10-31 07:03:22 +01:00

1.2 KiB

Deploy

Variante A: Docker auf eigenem Server (empfohlen)

cp .env.example .env    # SITE_DOMAIN und CORS_ORIGIN setzen, Keys nur hier eintragen
docker compose up -d --build
curl https://$SITE_DOMAIN/api/health
  • brain: Node-Server (Dockerfile im Repo-Root), Healthcheck auf /health.
  • web: Caddy liefert Web-App + /landing/ aus, holt automatisch HTTPS-Zertifikate und leitet /api/* an den Brain weiter (inkl. CORS-Headern für die Extension).
  • Für sslip.io eignet sich z. B. SITE_DOMAIN=kumpel.85.190.126.179.sslip.io. Ports 80/443 müssen frei sein. Läuft dort schon ein Reverse-Proxy für Forgejo, Caddy auf andere Ports legen und vom vorhandenen Proxy weiterleiten.
  • CORS: CORS_ORIGIN auf die Web-App-Domain bzw. chrome-extension://<ID> setzen.

Variante B: Ohne eigenen Server

  • Web-App + Landing statisch auf Netlify/Vercel/Render Static (Publish-Ordner: Repo-Root, kein Build).
  • Brain als Render Web Service (Docker, Dockerfile im Root, Health-Check-Pfad /health).

CI

.forgejo/workflows/ci.yml (Forgejo Actions, benötigt einen registrierten Runner mit Label docker) und .github/workflows/ci.yml führen npm test und den Secret-Scan aus.