# ---- 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=