# Parenthèse, configuration de l'auto-hébergement (docker compose). # Copiez ce fichier en .env et remplissez les deux valeurs marquées "à remplir". # Le fichier .env est ignoré par git : vos secrets restent sur votre machine. # # NODE_ENV, PORT, DATABASE_URL et MEDIA_STORAGE_PATH sont fixés par docker-compose.yml, # inutile de les définir ici. # ── Base de données (conteneur db, non exposé hors du réseau Docker) ────────── POSTGRES_USER=parenthese POSTGRES_DB=parenthese # À remplir. Lettres et chiffres uniquement : la valeur est insérée dans une URL de connexion. # Fixé au premier démarrage : pour le changer ensuite il faut recréer le volume db-data. POSTGRES_PASSWORD= # ── API ─────────────────────────────────────────────────────────────────────── # À remplir, 32 caractères conseillés. Générer avec : # openssl rand -base64 48 # ou : node -e "console.log(require('crypto').randomBytes(48).toString('base64'))" # L'API refuse de démarrer en production avec la valeur de développement. JWT_SECRET= # Durée de vie des sessions (compte) et des accès par lien partagé. JWT_EXPIRES_IN=7d JWT_TREE_ACCESS_EXPIRES_IN=24h # Adresse à laquelle vos proches ouvrent Parenthèse, sans slash final. # En local : http://localhost (ou http://localhost:8080 si WEB_PORT=8080). # Derrière un reverse proxy HTTPS : https://arbre.votre-domaine.fr # Plusieurs adresses : séparées par des virgules. CORS_ORIGIN=http://localhost # Proxys dont l'API croit l'en-tête X-Forwarded-For (adresse des visiteurs, limites d'essais). # Par défaut, le nginx du conteneur web (réseau Docker privé). Si vous ajoutez un reverse proxy # devant, ajoutez son adresse, par exemple loopback,uniquelocal,203.0.113.10 # TRUST_PROXY=loopback,uniquelocal # Place disque par arbre (Mo), et part réservée aux envois de la famille en attente de relecture. # MEDIA_QUOTA_PER_TREE_MB=5120 # MEDIA_PENDING_QUOTA_PER_TREE_MB=500 # ── Comptes ─────────────────────────────────────────────────────────────────── # À false, plus personne ne peut créer de compte : les comptes existants se connectent et # créent leurs arbres, la famille ouvre toujours les arbres partagés avec le lien et le mot # de passe. Une instance sans aucun compte accepte quand même le premier (le vôtre) : # créez-le juste après le premier démarrage, avant de donner l'adresse. # ALLOW_REGISTRATION=true # À true, l'app invite à créer son propre arbre : « Faire le mien » dans le menu Ajouter de la # famille, l'inscription proposée dans les messages de la démo, un message d'invitation pour Noël # (du 1er décembre au 6 janvier). Éteint par défaut, allumé sur app.parenthese.io. # SIGNUP_PROMPTS=false # ── Chercher quelqu'un dans des sources publiques ──────────────────────────── # Sources que le serveur interroge pour le panneau « Quelqu'un ailleurs » (menu +) : # deces (décès en France depuis 1970, fichier de l'INSEE par matchID), wikitree. # Vide : aucun nom ne quitte l'instance, le panneau ne propose que des liens ouverts # par le navigateur. Seuls le prénom, le nom et l'année de naissance sont envoyés. # SEARCH_SOURCES=deces,wikitree # Clé gratuite de deces.matchid.io (valable 30 jours) : sans elle, les recherches # anonymes s'arrêtent après une centaine. # MATCHID_TOKEN= # ── Connexion par un fournisseur d'identité (OIDC : Authentik, Authelia, Keycloak…) ── # Éteinte sans OIDC_ISSUER. Chez le fournisseur, adresse de retour = adresse publique + /auth/oidc/callback. # Détails dans le README, section « Connexion par votre fournisseur d'identité ». # OIDC_ISSUER=https://auth.votre-domaine.fr/application/o/parenthese/ # OIDC_CLIENT_ID=parenthese # OIDC_CLIENT_SECRET= # OIDC_REDIRECT_URI=https://arbre.votre-domaine.fr/auth/oidc/callback # OIDC_PROVIDER_NAME=Authentik # Email accepté seulement s'il est vérifié chez le fournisseur (email_verified). # OIDC_REQUIRE_VERIFIED_EMAIL=true # À false, plus de mot de passe Parenthèse : connexion par le fournisseur seulement. # PASSWORD_LOGIN=true # ── Immich (reconnaissance des visages, désactivé par défaut) ──────────────── # Instances Immich autorisées sur ce serveur, séparées par des virgules. Chaque entrée # peut recevoir un libellé, « Libellé=https://adresse » ; sans libellé, c'est le nom # d'hôte qui sert (un même nom d'hôte ne peut pas servir à deux instances : donnez-leur # un libellé). Les administrateurs de chaque arbre choisissent l'instance par son nom # et donnent leur propre clé d'API (créée dans Immich, Paramètres > Clés d'API) ; la # clé est chiffrée en base. L'adresse n'est jamais montrée aux administrateurs : seul # le libellé l'est. Sans cette liste, la fonction reste éteinte, et une adresse retirée # de la liste coupe aussitôt les arbres qui l'utilisent. # IMMICH_ALLOWED_API_URLS=Maison=http://immich.maison.lan:2283,https://immich.example.org # ── Images ──────────────────────────────────────────────────────────────────── # Version des images ghcr.io/iliesallali/parenthese-api et parenthese-web : latest (dernière # version de main), ou une version figée, par exemple 1.0. # PARENTHESE_VERSION=latest # ── Web ─────────────────────────────────────────────────────────────────────── # Port publié sur la machine hôte (80 = http://localhost sans préciser de port). WEB_PORT=80