fix(deploy): Images für den LXC-Betrieb per docker build --network host bauen
- deploy/build.sh baut backend und web nacheinander im Host-Netzwerk mit Proxy-Argumenten aus deploy/.env (docker compose verlangt dafür eine Sonderfreigabe: "--allow=network.host") - docker-compose.standalone.yml startet nur noch die gebauten Images - Doku: CSP-Hinweis für Next.js (script-src braucht 'unsafe-inline'), neue Fehlerbilder Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5ecb2a02ed
commit
86ff5762ff
1 file changed
+7
-2
+7
-2
@@ -68,7 +68,8 @@ Standalone-Variante nutzt deshalb für Build und Betrieb das Host-Netzwerk des L
|
|||||||
- `DOMAIN`, `TRAEFIK_*` und `INGEST_ALLOWED_IPS` werden in dieser Variante nicht genutzt (das regelt Traefik selbst, siehe unten)
|
- `DOMAIN`, `TRAEFIK_*` und `INGEST_ALLOWED_IPS` werden in dieser Variante nicht genutzt (das regelt Traefik selbst, siehe unten)
|
||||||
3. **Starten:**
|
3. **Starten:**
|
||||||
```bash
|
```bash
|
||||||
docker compose -f deploy/docker-compose.standalone.yml --env-file deploy/.env up -d --build
|
sh deploy/build.sh # Images im Host-Netzwerk bauen (nach jedem git pull wiederholen)
|
||||||
|
docker compose -f deploy/docker-compose.standalone.yml --env-file deploy/.env up -d
|
||||||
docker compose -f deploy/docker-compose.standalone.yml --env-file deploy/.env ps # api, web, db: healthy
|
docker compose -f deploy/docker-compose.standalone.yml --env-file deploy/.env ps # api, web, db: healthy
|
||||||
docker compose -f deploy/docker-compose.standalone.yml --env-file deploy/.env exec api node dist/cli.js admin:create <name>
|
docker compose -f deploy/docker-compose.standalone.yml --env-file deploy/.env exec api node dist/cli.js admin:create <name>
|
||||||
docker compose -f deploy/docker-compose.standalone.yml --env-file deploy/.env exec api node dist/cli.js token:create
|
docker compose -f deploy/docker-compose.standalone.yml --env-file deploy/.env exec api node dist/cli.js token:create
|
||||||
@@ -116,6 +117,8 @@ Standalone-Variante nutzt deshalb für Build und Betrieb das Host-Netzwerk des L
|
|||||||
```
|
```
|
||||||
|
|
||||||
Keine Kompressions- oder Buffering-Middleware auf `/api/live` (Live-Updates per Server-Sent Events).
|
Keine Kompressions- oder Buffering-Middleware auf `/api/live` (Live-Updates per Server-Sent Events).
|
||||||
|
**Content-Security-Policy:** Next.js braucht `script-src 'self' 'unsafe-inline'`. Mit `script-src 'self'` allein
|
||||||
|
bleibt die Seite leer (getestet: 38 CSP-Fehler, kein Inhalt).
|
||||||
Steht OPNsense vor Traefik, muss Traefik die echte Client-IP sehen, sonst greift die Allowlist nicht
|
Steht OPNsense vor Traefik, muss Traefik die echte Client-IP sehen, sonst greift die Allowlist nicht
|
||||||
(ggf. `forwardedHeaders.trustedIPs` am Entrypoint).
|
(ggf. `forwardedHeaders.trustedIPs` am Entrypoint).
|
||||||
6. Weiter mit Abschnitt 3 (Mod) bzw. 4 (SFTP). Alle späteren Befehle mit `-f deploy/docker-compose.standalone.yml`.
|
6. Weiter mit Abschnitt 3 (Mod) bzw. 4 (SFTP). Alle späteren Befehle mit `-f deploy/docker-compose.standalone.yml`.
|
||||||
@@ -272,9 +275,11 @@ Das Volume `backups` liegt auf demselben Host. Für echte Ausfallsicherheit die
|
|||||||
| Mod: `outbox limit reached, dropped …` | Backend länger nicht erreichbar | Verbindung reparieren; ggf. `maxOutboxMb` erhöhen |
|
| Mod: `outbox limit reached, dropped …` | Backend länger nicht erreichbar | Verbindung reparieren; ggf. `maxOutboxMb` erhöhen |
|
||||||
| `/sources`: SFTP „Fehler beim letzten Abgleich“ | Zugangsdaten, Port oder OPNsense-Regel | Fehlertext unter `/admin` → *Letzte Fehler* |
|
| `/sources`: SFTP „Fehler beim letzten Abgleich“ | Zugangsdaten, Port oder OPNsense-Regel | Fehlertext unter `/admin` → *Letzte Fehler* |
|
||||||
| Live-Ticker bleibt leer, Seite sonst ok | Proxy puffert SSE | keine Kompressions-/Buffering-Middleware auf `/api/live` |
|
| Live-Ticker bleibt leer, Seite sonst ok | Proxy puffert SSE | keine Kompressions-/Buffering-Middleware auf `/api/live` |
|
||||||
| Build: `npm error Exit handler never called!` nach ~2 min | `npm ci` erreicht `registry.npmjs.org` nicht (ausgehender Proxy/Firewall) | Proxy in `deploy/.env` eintragen und Domains freischalten (Abschnitt 1, „Ausgehender Proxy“) |
|
| Build: `npm error Exit handler never called!` nach ~2 min | `npm ci` erreicht `registry.npmjs.org` nicht (ausgehender Proxy/Firewall, oder Docker im LXC ohne NAT) | Proxy in `deploy/.env` eintragen und Domains freischalten (Abschnitt 1, „Ausgehender Proxy“) |
|
||||||
| Build: Fehler beim Laden von Google Fonts | `fonts.googleapis.com`/`fonts.gstatic.com` nicht freigeschaltet | in der Proxy-Whitelist ergänzen |
|
| Build: Fehler beim Laden von Google Fonts | `fonts.googleapis.com`/`fonts.gstatic.com` nicht freigeschaltet | in der Proxy-Whitelist ergänzen |
|
||||||
| Nur graue Spielerköpfe | `mc-heads.net` nicht erreichbar | in der Proxy-Whitelist ergänzen (optional) |
|
| Nur graue Spielerköpfe | `mc-heads.net` nicht erreichbar | in der Proxy-Whitelist ergänzen (optional) |
|
||||||
|
| Build: `additional privileges requested: pass "--allow=network.host"` | `docker compose` darf nicht im Host-Netzwerk bauen | Images mit `sh deploy/build.sh` bauen, dann `docker compose … up -d` ohne `--build` |
|
||||||
|
| Seite bleibt leer, Browser-Konsole meldet „Content Security Policy“ | CSP am Reverse Proxy erlaubt keine Inline-Scripts | `script-src 'self' 'unsafe-inline'` (Abschnitt 2a) |
|
||||||
| Login unter `/admin` klappt nicht ohne HTTPS | Cookie ist `Secure` | Portal über HTTPS aufrufen (lokal: `NODE_ENV=development`) |
|
| Login unter `/admin` klappt nicht ohne HTTPS | Cookie ist `Secure` | Portal über HTTPS aufrufen (lokal: `NODE_ENV=development`) |
|
||||||
|
|
||||||
Spieler, die nicht im Portal erscheinen möchten, lassen sich unter `/admin` ausblenden: Sie verschwinden aus allen
|
Spieler, die nicht im Portal erscheinen möchten, lassen sich unter `/admin` ausblenden: Sie verschwinden aus allen
|
||||||
|
|||||||
Reference in new issue
Block a user