.env.example unvollständig: GUAC_SECRET (Fail-Fast-Pflicht!) + 12 weitere genutzte Vars fehlen #93

Closed
opened 2026-06-09 21:43:20 +00:00 by chinux · 2 comments
Owner

Problem (Public-Release-Blocker / Onboarding)

server/main.py:58-63 macht Fail-Fast, wenn GUAC_SECRET fehlt/Placeholder/<32 Zeichen — korrekt. Aber GUAC_SECRET kommt in server/.env.example gar nicht vor (0 Treffer). Wer das Repo frisch aufsetzt und die Beispiel-Env kopiert, bekommt einen Server, der nicht startet, ohne dass die Vorlage die Pflicht-Variable erwaehnt.

Dazu sind 12 weitere genutzte Env-Vars nicht in .env.example dokumentiert:
BOOT_WATCH_THRESHOLD, TUNNEL_PUBLIC_HOST, TUNNEL_BIND_HOST, TUNNEL_PORT_RANGE_MIN, TUNNEL_PORT_RANGE_MAX, JWT_ACCESS_TTL_MIN, JWT_REFRESH_TTL_DAYS, SERVER_HOST, SERVER_PORT, WS_AGENT_URL, NODE_AGENT_DIR, LATEST_PVE_MAJOR

Fix

server/.env.example vervollstaendigen:

  • Pflicht-Block oben, klar markiert: GUAC_SECRET mit Generator-Hinweis als Kommentar (# openssl rand -hex 32) und leerem/Platzhalter-Wert, der den Fail-Fast ausloest (kein "funktionierender" Dummy!).
  • Alle o. g. Vars mit Default + 1-Zeilen-Kommentar (was/wofuer), gruppiert (Server, JWT, Tunnel, Watch/Updates).
  • Abgleich-Skript optional: kleines Check-Skript oder CI-Step, der os.getenv-Nutzung gegen .env.example diffed (Basis existiert aus dem Audit), damit das nicht wieder auseinanderlaeuft.

Akzeptanz

  • Frischer Setup-Pfad: .env.example kopieren → einzige notwendige Aenderung ist das Setzen von GUAC_SECRET (klar dokumentiert) → Server startet.
  • Jede in server/ genutzte Env-Var ist in .env.example dokumentiert.

Bezug

P0 Public-Readiness (Roadmap), #57 (.env-Hygiene).

Branch

chore/env-example-complete

## Problem (Public-Release-Blocker / Onboarding) `server/main.py:58-63` macht **Fail-Fast**, wenn `GUAC_SECRET` fehlt/Placeholder/<32 Zeichen — korrekt. Aber `GUAC_SECRET` kommt in `server/.env.example` **gar nicht vor** (0 Treffer). Wer das Repo frisch aufsetzt und die Beispiel-Env kopiert, bekommt einen Server, der nicht startet, ohne dass die Vorlage die Pflicht-Variable erwaehnt. Dazu sind 12 weitere **genutzte** Env-Vars nicht in `.env.example` dokumentiert: `BOOT_WATCH_THRESHOLD`, `TUNNEL_PUBLIC_HOST`, `TUNNEL_BIND_HOST`, `TUNNEL_PORT_RANGE_MIN`, `TUNNEL_PORT_RANGE_MAX`, `JWT_ACCESS_TTL_MIN`, `JWT_REFRESH_TTL_DAYS`, `SERVER_HOST`, `SERVER_PORT`, `WS_AGENT_URL`, `NODE_AGENT_DIR`, `LATEST_PVE_MAJOR` ## Fix `server/.env.example` vervollstaendigen: - **Pflicht-Block oben**, klar markiert: `GUAC_SECRET` mit Generator-Hinweis als Kommentar (`# openssl rand -hex 32`) und leerem/Platzhalter-Wert, der den Fail-Fast ausloest (kein "funktionierender" Dummy!). - Alle o. g. Vars mit Default + 1-Zeilen-Kommentar (was/wofuer), gruppiert (Server, JWT, Tunnel, Watch/Updates). - Abgleich-Skript optional: kleines Check-Skript oder CI-Step, der `os.getenv`-Nutzung gegen `.env.example` diffed (Basis existiert aus dem Audit), damit das nicht wieder auseinanderlaeuft. ## Akzeptanz - Frischer Setup-Pfad: `.env.example` kopieren → einzige notwendige Aenderung ist das Setzen von `GUAC_SECRET` (klar dokumentiert) → Server startet. - Jede in `server/` genutzte Env-Var ist in `.env.example` dokumentiert. ## Bezug P0 Public-Readiness (Roadmap), #57 (.env-Hygiene). ## Branch `chore/env-example-complete`
Author
Owner

Umgesetzt in 9bb70f7: GUAC_SECRET + 12 genutzte Vars in .env.example ergänzt (Code-Defaults + Kommentare). Schließe.

Umgesetzt in `9bb70f7`: GUAC_SECRET + 12 genutzte Vars in .env.example ergänzt (Code-Defaults + Kommentare). Schließe.
Author
Owner

Erledigt unter #186 Paket A (commit `ec599a1`).

  • `docker-compose.yml`: `GUAC_SECRET` von funktionierendem Default `${GUAC_SECRET:-theprox-guac-secret-change-me}` auf `${GUAC_SECRET:?…}` umgestellt → Compose bricht ab statt stillem Schwach-Default.
  • `.env.example`: `GUAC_SECRET` leer + Generator-Hinweis (`openssl rand -hex 32`); fehlende genutzte Var `FAQ_DIR` ergänzt (restliche genutzte Vars waren bereits vollständig).
  • compose verifiziert: db/backend/frontend/guacd/guaclite ohne Port-Mapping (nur intern), nach außen nur nginx-public/tunnels/intern.

Akzeptanz A erfüllt: kein funktionierender Default-Secret; .env.example vollständig; keine internen Ports public.

Erledigt unter #186 Paket A (commit \`ec599a1\`). - \`docker-compose.yml\`: \`GUAC_SECRET\` von funktionierendem Default \`${GUAC_SECRET:-theprox-guac-secret-change-me}\` auf \`${GUAC_SECRET:?…}\` umgestellt → Compose bricht ab statt stillem Schwach-Default. - \`.env.example\`: \`GUAC_SECRET\` leer + Generator-Hinweis (\`openssl rand -hex 32\`); fehlende genutzte Var \`FAQ_DIR\` ergänzt (restliche genutzte Vars waren bereits vollständig). - compose verifiziert: db/backend/frontend/guacd/guaclite ohne Port-Mapping (nur intern), nach außen nur nginx-public/tunnels/intern. **Akzeptanz A erfüllt:** kein funktionierender Default-Secret; .env.example vollständig; keine internen Ports public.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
chinux/theProx#93
No description provided.