mirror of
https://github.com/R0m1k3/PleinR.git
synced 2026-10-11 17:27:54 +02:00
Le Caddyfile gagne un bloc fourre-tout http:// à côté du bloc du nom de domaine. L'installation complète, Caddy compris, devient donc utilisable immédiatement sur http://IP_DU_SERVEUR, et bascule seule en HTTPS dès que le DNS pointe sur la machine : Caddy réessaie la demande de certificat en arrière-plan, sans intervention ni redémarrage. Le préfixe http:// désactive le HTTPS automatique pour ce seul bloc, aucune autorité ne délivrant de certificat pour une IP nue. Le bloc du domaine reste prioritaire et sa redirection HTTP vers HTTPS est insérée avant le fourre-tout. Vérifié avec le binaire Caddy 2.8.4 : configuration valide, et à l'exécution un 308 vers https:// pour l'en-tête Host du domaine contre un passage au proxy pour l'accès par IP. Rend inutile la surcouche docker-compose.http.yml, retirée, la surcouche Caddy couvrant désormais les deux situations. README et .env.example décrivent ce parcours unique. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B8UUiQtBWYWNFcsea8spnX
75 lines
3.3 KiB
Bash
75 lines
3.3 KiB
Bash
# ---- Database (external Postgres) ----
|
||
# With docker-compose the app reaches Postgres via the UNIQUE container name
|
||
# "pleinr-postgres" on the internal port 5432 (avoids collisions with other
|
||
# "postgres" containers on a shared proxy network; NOT the published host port).
|
||
# For local dev outside Docker against the dockerised Postgres, use
|
||
# localhost on the published host port: postgres://pleinr:pleinr@localhost:54329/pleinr
|
||
DATABASE_URL=postgres://pleinr:pleinr@pleinr-postgres:5432/pleinr
|
||
|
||
# Individual vars consumed by the postgres container in docker-compose.yml
|
||
POSTGRES_USER=pleinr
|
||
POSTGRES_PASSWORD=pleinr
|
||
POSTGRES_DB=pleinr
|
||
|
||
# ---- Auth.js (NextAuth v5) ----
|
||
# Optional with docker-compose: if left unset, the container generates and
|
||
# persists one automatically. To set it yourself: openssl rand -base64 32
|
||
AUTH_SECRET=
|
||
# Public URL of the app (used by Auth.js for callbacks).
|
||
# Leave EMPTY behind a reverse proxy (Nginx Proxy Manager, Traefik…): Auth.js
|
||
# auto-detects it from the Host / X-Forwarded-Proto headers (trustHost).
|
||
# Set it only to force a value, e.g. https://pleinr.ffnancy.fr
|
||
AUTH_URL=
|
||
|
||
# ---- First admin user (created by the seed script) ----
|
||
SEED_ADMIN_EMAIL=admin@plein-r.fr
|
||
# Laissez vide : un mot de passe aléatoire est généré au premier démarrage,
|
||
# affiché UNE FOIS dans les journaux, et doit être changé à la première connexion.
|
||
SEED_ADMIN_PASSWORD=
|
||
SEED_ADMIN_NAME=Administrateur Plein R
|
||
# Données de démonstration (adhérents, promotions, demandes, journal et
|
||
# comptes au mot de passe connu de tous) : uniquement sur un poste de
|
||
# développement, jamais en production. Par défaut la base reste vide, avec le
|
||
# référentiel des catégories et le compte administrateur seulement.
|
||
# Pour retirer des données de démo déjà en base : npm run db:purge-demo
|
||
# (ou, dans le conteneur : node dist/purge-demo.cjs).
|
||
SEED_DEMO=false
|
||
|
||
# ---- App ----
|
||
NODE_ENV=production
|
||
PORT=3000
|
||
|
||
# ---- VPS sans reverse proxy existant (voir README) ----
|
||
# Caddy devant l'application : ports 80 et 443, certificat Let's Encrypt
|
||
# automatique pour SITE_DOMAIN, et réponse immédiate sur http://IP_DU_SERVEUR
|
||
# tant que le DNS n'est pas configuré. Renseignez SITE_DOMAIN même si le
|
||
# domaine ne pointe pas encore : la bascule en HTTPS se fera toute seule.
|
||
#COMPOSE_FILE=docker-compose.yml:docker-compose.caddy.yml
|
||
#SITE_DOMAIN=pleinr.example.fr
|
||
#CADDY_EMAIL=vous@example.fr
|
||
|
||
# ---- Publication des promotions sur les réseaux sociaux ----
|
||
# La configuration se fait désormais dans Backend › Réseaux sociaux : on y colle
|
||
# les identifiants de l'application, on clique Connecter, et les jetons sont
|
||
# récupérés et stockés chiffrés automatiquement. Rien à mettre ici dans le cas
|
||
# normal.
|
||
#
|
||
# Clé de chiffrement des jetons en base. Si elle est vide, AUTH_SECRET est
|
||
# utilisé. La définir explicitement permet de faire tourner AUTH_SECRET sans
|
||
# perdre les connexions réseaux.
|
||
# openssl rand -base64 32
|
||
SOCIAL_TOKEN_KEY=
|
||
|
||
# Versions d'API (facultatif)
|
||
FACEBOOK_GRAPH_VERSION=v21.0
|
||
LINKEDIN_API_VERSION=202506
|
||
|
||
# --- Repli historique ---
|
||
# Ces variables restent lues si aucun compte n'est connecté depuis le
|
||
# backoffice. Utile pour un jeton posé à la main ; sinon, laissez vide.
|
||
FACEBOOK_PAGE_ID=
|
||
FACEBOOK_PAGE_ACCESS_TOKEN=
|
||
LINKEDIN_ORGANIZATION_URN=
|
||
LINKEDIN_ORGANIZATION_ID=
|
||
LINKEDIN_ACCESS_TOKEN=
|