133 lines
No EOL
6.2 KiB
YAML
133 lines
No EOL
6.2 KiB
YAML
services:
|
|
paheko:
|
|
image: bololo/paheko:latest
|
|
restart: unless-stopped
|
|
volumes:
|
|
- /data/lail-apps/lail-paheko/data:/var/www/paheko/data
|
|
- /data/lail-apps/lail-paheko/plugins:/var/www/paheko/plugins
|
|
- type: bind
|
|
source: ./config.local.php
|
|
target: /var/www/paheko/config.local.php
|
|
is_directory: false
|
|
content: |
|
|
<?php
|
|
|
|
namespace Paheko;
|
|
|
|
// -----------------------------------------------------------------------
|
|
// SÉCURITÉ
|
|
// -----------------------------------------------------------------------
|
|
|
|
// Clé secrète anti-CSRF - générée automatiquement par Paheko si absente
|
|
// const SECRET_KEY = '...';
|
|
|
|
// Désactiver les détails d'erreur en production
|
|
const SHOW_ERRORS = false;
|
|
|
|
// Mode journal SQLite - WAL est plus rapide (ok si pas de NFS)
|
|
const SQLITE_JOURNAL_MODE = 'WAL';
|
|
|
|
// -----------------------------------------------------------------------
|
|
// SSO / OIDC
|
|
// -----------------------------------------------------------------------
|
|
|
|
// Libellé du bouton de connexion SSO
|
|
// Si null : redirection automatique vers le SSO (pas de bouton affiché)
|
|
const OIDC_CLIENT_BUTTON = getenv('PAHEKO_OIDC_CLIENT_BUTTON') ?: 'Se connecter avec le SSO LAIL';
|
|
|
|
// URL de découverte du fournisseur OIDC (Authentik)
|
|
// Exemple : https://sso.lail.cloud/application/o/paheko/
|
|
const OIDC_CLIENT_URL = getenv('PAHEKO_OIDC_CLIENT_URL') ?: null;
|
|
|
|
// Client ID fourni par Authentik
|
|
const OIDC_CLIENT_ID = getenv('PAHEKO_OIDC_CLIENT_ID') ?: null;
|
|
|
|
// Secret client fourni par Authentik
|
|
const OIDC_CLIENT_SECRET = getenv('PAHEKO_OIDC_CLIENT_SECRET') ?: null;
|
|
|
|
// Faire correspondre l'email SSO avec un membre existant dans Paheko
|
|
// true = l'utilisateur SSO doit exister comme membre dans Paheko
|
|
// false = tout utilisateur SSO est accepté (avec les droits de OIDC_CLIENT_DEFAULT_PERMISSIONS)
|
|
const OIDC_CLIENT_MATCH_EMAIL = true;
|
|
|
|
// Droits accordés si OIDC_CLIENT_MATCH_EMAIL = false (ignoré sinon)
|
|
// const OIDC_CLIENT_DEFAULT_PERMISSIONS = ['users' => 'read', 'accounting' => 'read'];
|
|
|
|
// -----------------------------------------------------------------------
|
|
// SMTP
|
|
// -----------------------------------------------------------------------
|
|
|
|
// Hôte SMTP (null = utiliser la fonction mail() de PHP)
|
|
const SMTP_HOST = getenv('PAHEKO_SMTP_HOST') ?: null;
|
|
|
|
// Port SMTP (587 = STARTTLS, 465 = SSL)
|
|
const SMTP_PORT = getenv('PAHEKO_SMTP_PORT') ? (int) getenv('PAHEKO_SMTP_PORT') : 587;
|
|
|
|
// Utilisateur SMTP
|
|
const SMTP_USER = getenv('PAHEKO_SMTP_USER') ?: null;
|
|
|
|
// Mot de passe SMTP
|
|
const SMTP_PASSWORD = getenv('PAHEKO_SMTP_PASSWORD') ?: null;
|
|
|
|
// Sécurité SMTP : NONE, SSL, TLS, STARTTLS
|
|
const SMTP_SECURITY = getenv('PAHEKO_SMTP_SECURITY') ?: 'STARTTLS';
|
|
|
|
// Nom d'hôte HELO SMTP
|
|
const SMTP_HELO_HOSTNAME = getenv('PAHEKO_SMTP_HELO_HOSTNAME') ?: null;
|
|
|
|
// Adresse expéditrice forcée (Return-Path / MAIL FROM)
|
|
// Utile pour héberger plusieurs assos sur le même serveur mail
|
|
const MAIL_RETURN_PATH = getenv('PAHEKO_MAIL_RETURN_PATH') ?: null;
|
|
|
|
// Adresse From forcée (les réponses iront en Reply-To à l'adresse de l'asso)
|
|
const MAIL_SENDER = getenv('PAHEKO_MAIL_SENDER') ?: null;
|
|
|
|
// -----------------------------------------------------------------------
|
|
// STOCKAGE ET DONNÉES
|
|
// -----------------------------------------------------------------------
|
|
|
|
// Répertoire des données (base SQLite, sauvegardes, cache)
|
|
// Doit correspondre au volume monté dans Docker
|
|
const DATA_ROOT = '/var/www/paheko/data';
|
|
|
|
// -----------------------------------------------------------------------
|
|
// INTÉGRATION COLLABORA (optionnel)
|
|
// -----------------------------------------------------------------------
|
|
|
|
// URL de découverte Collabora pour l'édition de documents en ligne
|
|
// Pointer vers votre instance Collabora
|
|
const WOPI_DISCOVERY_URL = getenv('PAHEKO_WOPI_DISCOVERY_URL') ?: null;
|
|
|
|
// Outils de conversion (si Collabora est disponible)
|
|
const CONVERSION_TOOLS = ['collabora'];
|
|
|
|
// -----------------------------------------------------------------------
|
|
// API (optionnel)
|
|
// -----------------------------------------------------------------------
|
|
|
|
// Accès API système (accès total en écriture)
|
|
const API_USER = getenv('PAHEKO_API_USER') ?: null;
|
|
const API_PASSWORD = getenv('PAHEKO_API_PASSWORD') ?: null;
|
|
|
|
// -----------------------------------------------------------------------
|
|
// HÉBERGEMENT
|
|
// -----------------------------------------------------------------------
|
|
|
|
// Mentions légales affichées en bas de la page légale
|
|
const LEGAL_HOSTING_DETAILS = getenv('PAHEKO_LEGAL_HOSTING_DETAILS');
|
|
|
|
// Désactiver le ping de télémétrie à l'installation/mise à jour
|
|
const DISABLE_INSTALL_PING = true;
|
|
|
|
// Désactiver les mises à jour automatiques depuis fossil.kd2.org
|
|
// (les mises à jour se font via Docker)
|
|
const ENABLE_UPGRADES = false;
|
|
|
|
// Command line to use mupdf to generate thumbnails
|
|
// const DOCUMENT_THUMBNAIL_COMMANDS = ['mupdf'];
|
|
// Command line to use chromium to generate PDF documents
|
|
// const PDF_COMMAND = 'chromium --no-sandbox --headless --disable-dev-shm-usage --autoplay-policy=no-user-gesture-required --no-first-run --disable-gpu --disable-features=DefaultPassthroughCommandDecoder --use-fake-ui-for-media-stream --use-fake-device-for-media-stream --disable-sync --print-to-pdf=%2$s %1$s';
|
|
// I moved plugins outside of /var/www/paheko/data (could be standard with 1.4)
|
|
// const PLUGINS_ROOT = '/var/www/paheko/plugins';
|
|
healthcheck:
|
|
disable: true |