# Deploy ## Variante A: Docker auf eigenem Server (empfohlen) ```bash 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://` 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.