# ============================================================================= # FORGEJO — configuration NON sensible # ============================================================================= # Seul POSTGRES_PASSWORD est chiffré (secrets.env.yaml, injecté par # `sops exec-env`). Le secret client Authentik n'est pas ici : il n'est pas lu # par le conteneur, il se saisit une fois via `forgejo admin auth add-oauth`. # # Ce fichier ne contient QUE ce que les conteneurs consomment. La version # d'image et les règles Traefik sont en dur dans docker-compose.yml : # `env_file:` n'alimente pas l'interpolation ${...}, et une version en dur est # détectée par Renovate. # ============================================================================= # --- Base de données --- # POSTGRES_* est lu par le conteneur postgres ET par le script de sauvegarde, # qui fait `docker exec printenv POSTGRES_DB / POSTGRES_USER`. FORGEJO__database__* # est lu par l'application. Les deux jeux doivent porter la MÊME valeur. POSTGRES_USER=forgejo POSTGRES_DB=forgejo FORGEJO__database__DB_TYPE=postgres FORGEJO__database__HOST=postgres:5432 FORGEJO__database__NAME=forgejo FORGEJO__database__USER=forgejo # --- Conteneur --- USER_UID=1000 USER_GID=1000 TZ=Europe/Paris # --- URL publique --- # ROOT_URL est recopié dans les URL de clone affichées, dans les webhooks et # dans le redirect OIDC : le changer suppose de reprendre le provider Authentik # et de recréer les webhooks. FORGEJO__server__DOMAIN=forge.opytex.org FORGEJO__server__ROOT_URL=https://forge.opytex.org/ FORGEJO__server__SSH_DOMAIN=forge.opytex.org FORGEJO__server__SSH_PORT=2223 FORGEJO__server__SSH_LISTEN_PORT=22 # --- Cache --- # `cache` est le service Valkey de CETTE stack, et doit lui rester réservé : # deux forges partageant un même Redis se volent leurs événements, avec des # symptômes trompeurs (`AesDecrypt invalid decrypted base64 string`). FORGEJO__cache__ENABLED=true FORGEJO__cache__ADAPTER=redis FORGEJO__cache__HOST=redis://cache:6379/0?pool_size=100&idle_timeout=180s FORGEJO__cache__ITEM_TTL=24h # --- Inscriptions & SSO (Authentik) --- # Combinaison volontaire et contre-intuitive : DISABLE_REGISTRATION=true # bloquerait AUSSI l'auto-création via OIDC, et plus personne ne pourrait # entrer. C'est ALLOW_ONLY_EXTERNAL_REGISTRATION qui interdit l'inscription # locale tout en laissant passer Authentik. FORGEJO__service__DISABLE_REGISTRATION=false FORGEJO__service__ALLOW_ONLY_EXTERNAL_REGISTRATION=true FORGEJO__service__SHOW_REGISTRATION_BUTTON=false FORGEJO__openid__ENABLE_OPENID_SIGNIN=false FORGEJO__oauth2_client__ENABLE_AUTO_REGISTRATION=true FORGEJO__oauth2_client__ACCOUNT_LINKING=auto FORGEJO__oauth2_client__USERNAME=nickname FORGEJO__oauth2_client__UPDATE_AVATAR=true # --- Actions & registre de paquets --- # Le registre est une dépendance vivante de l'infra : stacks/plesna.opytex.org # tire une image depuis cette forge. Explicite pour éviter toute désactivation # par inadvertance. FORGEJO__actions__ENABLED=true FORGEJO__packages__ENABLED=true # --- Courriel (relais interne postfix, réseau `smtp`) --- FORGEJO__mailer__ENABLED=true FORGEJO__mailer__PROTOCOL=smtp FORGEJO__mailer__SMTP_ADDR=postfix FORGEJO__mailer__SMTP_PORT=25 FORGEJO__mailer__FROM=noreply@opytex.org # --- Divers --- FORGEJO__repository__DEFAULT_BRANCH=main FORGEJO__security__INSTALL_LOCK=true