# ============================================================================= # GOPROXIFY — Configuration # # 1. cp .env.example .env # 2. Remplir les 4 variables de la section OBLIGATOIRE # 3. docker compose up -d # ============================================================================= # ============================================================================= # OBLIGATOIRE # ============================================================================= # Clé de signature des sessions JWT # Générez avec : openssl rand -hex 32 GPX_JWT_SECRET= # Secret racine : l'Admin seul le détient (il signe la connexion de l'Admin aux passerelles). La passerelle et l'Agent # reçoivent des clés qui en sont dérivées, ci-dessous. Générez avec : openssl rand -hex 32 GPX_PAIRING_SECRET= # Clé du canal Admin -> passerelle, propre à une passerelle : dérivée de son nom (EDGE_NODE_NAME, goproxify-edge par défaut). # Calcul : printf %s "goproxify/edge-channel/v1:goproxify-edge:$GPX_PAIRING_SECRET" | sha256sum | cut -d' ' -f1 # Si vous changez EDGE_NODE_NAME, recalculez-la avec le nouveau nom. GPX_EDGE_CHANNEL_KEY= # Coffres des comptes SSO du portail Access : clé propre à la passerelle, à ne jamais changer une fois des comptes SSO # enregistrés. Générez avec : openssl rand -hex 32 GPX_PORTAL_MASTER_KEY= # Clé d'appairage des Agents, dérivée du secret ci-dessus : l'Agent ne reçoit jamais le secret racine. # Calcul : printf %s "goproxify/agent-pairing/v1:$GPX_PAIRING_SECRET" | sha256sum | cut -d' ' -f1 # (l'écran Infrastructure → Ajouter un Agent la fournit aussi). Sur un hôte distant, ne copiez QUE cette clé. GPX_AGENT_PAIRING_KEY= # Compte administrateur (créé automatiquement au premier démarrage) GPX_FIRST_ADMIN_EMAIL= GPX_FIRST_ADMIN_PASSWORD= # ============================================================================= # RÉSEAU (optionnel — valeurs par défaut correctes en mono-machine) # ============================================================================= # Port de l'interface d'administration ADMIN_PORT=9443 # Tags d'images (préversion : tag flottant preview — pas de :latest). # Défaut compose = preview. Pour pinner un SemVer : voir versions.json. # GOPROXIFY_ADMIN_TAG=preview # GOPROXIFY_EDGE_TAG=preview # GOPROXIFY_AGENT_TAG=preview # URL publique de l'Admin (liens des pages d'erreur passerelle → Logs). # Préférer https:// derrière un reverse-proxy TLS. # Ex. https://admin.example.com — sinon mémorisée automatiquement à la 1re connexion UI. # GPX_ADMIN_PUBLIC_URL=https://admin.example.com # TLS natif Admin (optionnel si pas de reverse-proxy) # GPX_ADMIN_TLS_CERT=/etc/goproxify/tls/cert.pem # GPX_ADMIN_TLS_KEY=/etc/goproxify/tls/key.pem # Ports du reverse proxy public EDGE_HTTP_PORT=80 EDGE_HTTPS_PORT=443 # Nom d'identité de la passerelle (Admin + Passerelle) # - Admin : hostname/IP pour joindre le hub WS (Docker DNS ou IP) # - Passerelle : nom heartbeat / token / certificats UI (sans ça → ID auto edge-) # En mono-node, garder la même valeur des deux côtés. EDGE_NODE_NAME=goproxify-edge # Fuseau horaire (IANA). Requis pour crons, logs locaux et horloge admin. # Les images embarquent zoneinfo (time/tzdata + apk tzdata) pour que TZ soit effectif. TZ=Europe/Paris # Niveau de log : debug | info | warn | error LOG_LEVEL=info # ============================================================================= # SÉCURITÉ Admin (optionnel) # ============================================================================= # Scanner CVE : autoriser les backends privés (Docker/LAN, RFC1918). # Défaut false — sans ça, les probes vers réseaux privés (RFC1918) sont refusées (anti-SSRF). # Localhost et 169.254.169.254 restent toujours bloqués. # GPX_VULNSCAN_ALLOW_PRIVATE=true # Chiffrement des snapshots Admin (AES-GCM). Sans clé : export JSON avec secrets rédigés. # GPX_BACKUP_KEY= # Chiffrement des tokens passerelle/Agent en SQLite. Sinon dérivé de GPX_JWT_SECRET. # GPX_NODE_TOKEN_KEY= # Tag flottant GHCR (préversion) — préférer les pins SemVer ci-dessus # GOPROXIFY_TAG=preview # Registry d'images (défaut public : ghcr.io/vincamok/goproxify) # GOPROXIFY_REGISTRY=ghcr.io/vincamok/goproxify # Registry privé / lab (hôte de build interne uniquement — ne pas publier tel quel) # GOPROXIFY_REGISTRY=ghcr.io/vincamok/goproxify # ============================================================================= # ACME / LET'S ENCRYPT (certificats wildcard automatiques) # ============================================================================= GPX_ACME_ENABLED=false GPX_ACME_EMAIL= # Fournisseur DNS : cloudflare | ovh | gandi | route53 | hetzner GPX_ACME_DNS_TYPE= # Cloudflare CF_API_TOKEN= # OVH OVH_ENDPOINT=ovh-eu OVH_APPLICATION_KEY= OVH_APPLICATION_SECRET= OVH_CONSUMER_KEY= # Gandi GANDI_API_KEY= # AWS Route53 AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_REGION=eu-west-3 # Hetzner HETZNER_API_KEY= # ============================================================================= # ALERTING PAR E-MAIL (optionnel) # ============================================================================= SMTP_HOST= SMTP_PORT=587 SMTP_USER= SMTP_PASSWORD= SMTP_FROM=