Aller au contenu principal

Référence de configuration

Tous les réglages se trouvent dans deploy/.env, copié depuis .env.example. Seuls POSTGRES_PASSWORD et CAMPBOOKS_PUBLIC_URL sont obligatoires. Tout le reste est facultatif, et les valeurs par défaut ci-dessous s'appliquent quand un réglage n'est pas défini. Après avoir modifié .env, relancez docker compose up -d.

Général​

VariableValeur par défautRôle
POSTGRES_PASSWORDchange-me (exemple)Mot de passe du compte propriétaire du Postgres inclus. Obligatoire. Caractères sûrs pour une URL uniquement.
CAMPBOOKS_PUBLIC_URLhttps://campbooks.example.com (exemple)L'adresse que les gens utilisent pour joindre cette instance. Obligatoire. Les liens d'invitation en sont issus.
CAMPBOOKS_PORT8080Port de l'hôte pour l'application web et l'API.
CAMPBOOKS_LOG_FORMATjsonjson ou pretty.
CAMPBOOKS_RUN_MIGRATIONStrueApplique les migrations de la base de données au démarrage.
RUST_LOGnon définiFiltre de niveau de journal, par exemple info.
CAMPBOOKS_ENVnon définidevelopment écrit les liens d'invitation dans les journaux. Ne le définissez jamais sur un serveur utilisé par d'autres personnes.

Comptes de base de données​

Le fichier compose inclus les configure pour vous. Ils ne comptent que si vous utilisez votre propre Postgres. Voir Stockage et base de données.

VariableValeur par défautRôle
CAMPBOOKS_DATABASE_URLdéfini par composeCompte d'exécution, sans droits de superutilisateur.
CAMPBOOKS_DATABASE_PASSWORD_FILEdéfini par composeFichier contenant le mot de passe du compte d'exécution (facultatif).
CAMPBOOKS_DATABASE_MIGRATION_URLdéfini par composeCompte propriétaire, utilisé uniquement pour exécuter les migrations.
CAMPBOOKS_DATABASE_ROLEcampbooks_appAvec une seule URL privilégiée, le rôle vers lequel chaque connexion bascule. Gardez la valeur par défaut sauf si votre administrateur de base de données en a créé un autre.
CAMPBOOKS_DATABASE_ALLOW_RLS_BYPASSfalseDémarre même si le compte contourne la sécurité au niveau des lignes. L'isolation des espaces de travail repose alors sur les requêtes seules.
CAMPBOOKS_DATABASE_MAX_CONNECTIONS10Taille du pool de la base de données. Gardez-la au-dessus de CAMPBOOKS_JOBS__CONCURRENCY.

Connexion​

Campbooks assure lui-même la connexion. Laissez CAMPBOOKS_AUTH__ISSUER non défini. Voir Connexion pour le tableau complet. Chaque secret client est un fichier de deploy/secrets/, monté dans le serveur à /run/secrets/campbooks.

VariableValeur par défautRôle
CAMPBOOKS_GOOGLE__CLIENT_IDnon définiActive la connexion Google et la liaison de Gmail. La Gmail API doit être activée dans le même projet Google. URI de redirection : ${CAMPBOOKS_PUBLIC_URL}/auth/callback/google.
CAMPBOOKS_GOOGLE__CLIENT_SECRET_FILEnon définiPar exemple /run/secrets/campbooks/google-client-secret.
CAMPBOOKS_MICROSOFT__CLIENT_IDnon définiActive la connexion Microsoft. URI de redirection : ${CAMPBOOKS_PUBLIC_URL}/auth/callback/microsoft.
CAMPBOOKS_MICROSOFT__CLIENT_SECRET_FILEnon définiPar exemple /run/secrets/campbooks/microsoft-client-secret.
CAMPBOOKS_MICROSOFT__TENANTcommoncommon, organizations, consumers, ou l'identifiant d'un tenant.
CAMPBOOKS_ZOHO__CLIENT_IDnon définiActive la connexion Zoho et la liaison de Zoho Mail. URI de redirection : ${CAMPBOOKS_PUBLIC_URL}/auth/callback/zoho.
CAMPBOOKS_ZOHO__CLIENT_SECRET_FILEnon définiPar exemple /run/secrets/campbooks/zoho-client-secret.
CAMPBOOKS_ZOHO__ACCOUNTS_SERVERhttps://accounts.zoho.comLe serveur de comptes du centre de données où votre application Zoho est enregistrée, par exemple https://accounts.zoho.eu. Ne gardez la valeur par défaut que si l'application a Multi-DC activé.
CAMPBOOKS_<PROVIDER>__REDIRECT_PATH/auth/callback/<provider>Seulement si votre application OAuth a enregistré un autre chemin de retour que votre reverse proxy réécrit.
CAMPBOOKS_TRUSTED_PROXIESnon définiAdresses ou blocs CIDR des reverse proxies dont le X-Forwarded-For désigne le client. Sans cela, les limites de débit de la connexion comptent tous les clients comme un seul.
CAMPBOOKS_AUTH__AUDIENCEcampbooks-apiSeulement avec un émetteur externe : l'audience que l'API doit trouver dans le champ aud du jeton.
CAMPBOOKS_AUTH__LEEWAY_SECONDS60Seulement avec un émetteur externe : décalage d'horloge toléré.
CAMPBOOKS_BFF__IDLE_TIMEOUT_MINUTES2880Les sessions web se terminent après cette durée d'inactivité.
CAMPBOOKS_BFF__ABSOLUTE_TIMEOUT_HOURS720Les sessions web se terminent au plus tard après cette durée depuis la connexion.
CAMPBOOKS_BFF__ROTATE_MINUTES60Fréquence de remplacement de la valeur du cookie d'une session.
CAMPBOOKS_BFF__LOGIN_TIMEOUT_SECONDS600Durée maximale d'une connexion commencée chez le fournisseur.
CAMPBOOKS_BFF__SCOPESopenid profile email offline_access plus tous les scopes de l'APIScopes à demander.

Boîtes mail​

Tous facultatifs. Voir Relier des boîtes mail. Les réglages des clients Google et Zoho sont dans le tableau Connexion ci-dessus. Les réglages IMAP (CAMPBOOKS_CONNECTORS__IMAP__*) sont listés dans Boîtes mail IMAP.

VariableValeur par défautRôle
CAMPBOOKS_CONNECTORS__GMAIL__BACKFILL_DAYS90Jusqu'où lit une nouvelle liaison Gmail, en jours. De 1 à 3650.
CAMPBOOKS_CONNECTORS__GMAIL__MAX_MESSAGE_BYTES52428800 (50 Mio)Les messages plus gros sont ignorés et enregistrés comme trop volumineux.
CAMPBOOKS_CONNECTORS__GMAIL__RUN_BUDGET_BYTES67108864 (64 Mio)Une exécution de synchronisation ne lance plus de téléchargement après ce nombre d'octets et continue à l'exécution suivante. Cela borne la mémoire.
CAMPBOOKS_CONNECTORS__POLL__MIN_SECONDS60Intervalle après une synchronisation qui a trouvé des changements.
CAMPBOOKS_CONNECTORS__POLL__MAX_SECONDS14400 (4 heures)Intervalle le plus long d'une boîte mail inactive.
CAMPBOOKS_CONNECTORS__GOOGLE__UNITS_PER_SECOND5000Unités de quota de l'API Google par seconde, partagées par tous les processus du serveur. Une valeur basse ralentit seulement les gros envois.
CAMPBOOKS_CONNECTORS__ZOHO__BACKFILL_DAYS90Jusqu'où lit une nouvelle boîte Zoho, en jours. De 1 à 3650.
CAMPBOOKS_CONNECTORS__ZOHO__MAX_MESSAGE_BYTES52428800 (50 Mio)Les messages plus gros sont ignorés et enregistrés comme trop volumineux.
CAMPBOOKS_CONNECTORS__ZOHO__RUN_BUDGET_BYTES67108864 (64 Mio)Comme pour Gmail.
CAMPBOOKS_CONNECTORS__ZOHO__REQUESTS_PER_MINUTE60Requêtes que chaque identifiant Zoho peut faire par minute, partagées par tous les processus.
CAMPBOOKS_CONNECTORS__ZOHO__SWEEP_MINUTES360Minutes entre deux relectures complètes de la fenêtre d'une boîte Zoho.
CAMPBOOKS_CONNECTORS__FAILING_AFTER5Exécutions échouées de suite avant qu'une boîte mail s'affiche en échec.
CAMPBOOKS_CONNECTORS__BATCH_RETENTION_DAYS7Jours pendant lesquels un lot de changements produit est gardé pour être rejoué.

Politique d'inscription​

VariableValeur par défautRôle
CAMPBOOKS_SIGNUP__POLICYopenQui peut créer un espace de travail : open, invite_only, approval ou code. Le premier utilisateur de l'instance peut toujours en créer un.
CAMPBOOKS_SIGNUP__CODESnon définiCodes séparés par des virgules acceptés avec code. Chacun est réutilisable. À traiter comme un secret.

Tâches et worker​

Le serveur exécute le worker de tâches à côté de l'API. Chaque tâche en cours peut occuper une connexion à la base de données.

VariableValeur par défautRôle
CAMPBOOKS_JOBS__CONCURRENCY4Tâches qu'un processus exécute en même temps.
CAMPBOOKS_JOBS__PER_WORKSPACE2Tâches d'un même espace de travail qui peuvent tourner en même temps par file.
CAMPBOOKS_JOBS__POLL_INTERVAL_MS5000Interrogation au repos. Les nouvelles tâches réveillent quand même le worker aussitôt.
CAMPBOOKS_JOBS__RETENTION_HOURS168Durée de conservation des tâches réussies. Les tâches en échec sont conservées jusqu'à ce que vous les supprimiez.
CAMPBOOKS_JOBS__SHUTDOWN_GRACE_SECONDS8Durée d'attente d'un worker à l'arrêt pour les tâches en cours. Gardez-la sous le délai d'arrêt.
CAMPBOOKS_JOBS__LEASE_SECONDS60Durée du bail d'une tâche.
CAMPBOOKS_JOBS__RETRY_BASE_MS1000Délai de base entre deux tentatives.
CAMPBOOKS_JOBS__RETRY_MAX_SECONDS3600Délai maximal entre deux tentatives.

Stockage des blobs​

Voir Stockage et base de données.

VariableValeur par défautRôle
CAMPBOOKS_BLOBS__BACKENDfsfs (disque local) ou s3.
CAMPBOOKS_BLOBS__PATH/data/blobsRépertoire du backend fs (le volume blobs-data).
CAMPBOOKS_BLOBS__MAX_OBJECT_BYTES52428800 (50 Mio)Taille maximale d'un fichier accepté.
CAMPBOOKS_BLOBS__SWEEP_GRACE_HOURS24Durée de conservation d'un fichier inutilisé avant sa suppression.
CAMPBOOKS_BLOBS__S3__BUCKETnon définiNom du bucket.
CAMPBOOKS_BLOBS__S3__ENDPOINTnon défini (AWS)URL du stockage. http:// est accepté sur un réseau privé.
CAMPBOOKS_BLOBS__S3__REGIONnon définiRégion attendue par votre stockage.
CAMPBOOKS_BLOBS__S3__ACCESS_KEY_IDnon définiClé d'accès.
CAMPBOOKS_BLOBS__S3__SECRET_ACCESS_KEYnon définiClé secrète.
CAMPBOOKS_BLOBS__S3__PATH_STYLEfalsetrue pour des URL <endpoint>/<bucket> (la plupart des stockages auto-hébergés).

Rôles d'IA​

Voir IA locale. Un rôle non défini est simplement indisponible.

VariableValeur par défautRôle
CAMPBOOKS_AI__DECIDE__PROTOCOLlayalaya ou openai.
CAMPBOOKS_AI__DECIDE__BASE_URLhttp://laya:8000/v1Où le modèle decide est servi.
CAMPBOOKS_AI__DECIDE__MODELconvaiinnovations/laya-multilingualLe modèle decide.
CAMPBOOKS_AI__DECIDE__API_KEYvideObligatoire pour Laya. À générer avec openssl rand -hex 32.
CAMPBOOKS_AI__DECIDE__LOGPROBStrueMettez false pour les serveurs qui rejettent le paramètre logprobs (protocole openai).
CAMPBOOKS_AI__DECIDE__CALIBRATION__*1.0Une température par type de question (NOUL, CHOICE, CHOICE_2, SCORE). Au-dessus de 1, les probabilités sont moins assurées.
CAMPBOOKS_CONVERSATIONS__DECIDE_BACKFILL_DAYS14Les messages plus anciens que ce nombre de jours ne déclenchent aucun appel decide.
CAMPBOOKS_AI__COMPLETE__BASE_URLhttp://ollama:11434/v1Où le modèle complete est servi.
CAMPBOOKS_AI__COMPLETE__MODELqwen3:8bLe modèle complete.
CAMPBOOKS_AI__EMBED__BASE_URLhttp://embeddings:80/v1Où le modèle embed est servi.
CAMPBOOKS_AI__EMBED__MODELBAAI/bge-m3Le modèle embed (1024 dimensions).
CAMPBOOKS_AI__VISION__BASE_URLnon définiRôle vision facultatif, par exemple http://ollama:11434/v1.
CAMPBOOKS_AI__VISION__MODELnon définiFacultatif, par exemple qwen2.5vl:7b.

Chaque rôle accepte aussi CAMPBOOKS_AI__<ROLE>__API_KEY pour un fournisseur hébergé.

Autres réglages de .env.example​

.env.example documente aussi ces domaines. Leurs valeurs par défaut y figurent.

  • Mises à jour en direct (flux de changements) : le bloc CAMPBOOKS_CHANGES__*. Un reverse proxy placé devant le serveur ne doit pas mettre en mémoire tampon les réponses text/event-stream.
  • Supervision : CAMPBOOKS_TELEMETRY__METRICS_ADDR, CAMPBOOKS_TELEMETRY__OTLP_ENDPOINT, CAMPBOOKS_TELEMETRY__OTLP_HEADERS et CAMPBOOKS_TELEMETRY__SAMPLE_RATIO. Désactivée par défaut.