Aller au contenu principal

Configuration Serveur

Toutes les options de configuration du serveur Sync-in sont définies dans le fichier environment.yaml.

Un exemple complet est disponible sur GitHub : environment.dist.yaml.

Ce fichier vous permet de personnaliser le fonctionnement de votre instance Sync-in : réseau, authentification, base de données, cache, messagerie, etc.


Environment.yaml

server

  • host : Adresse IP d'écoute du serveur.
    • Défaut : 0.0.0.0
    • Type : string (IP)
  • port : Port utilisé pour l'interface web.
    • Défaut : 8080
    • Type : number
  • workers : Nombre de processus.
    • Défaut : 1
    • Type : number | auto | 0
    • Note : auto ou 0 pour utiliser tous les cœurs CPU
  • trustProxy : Active la gestion des proxies.
  • restartOnFailure : Redémarre automatiquement les workers en cas d'échec.
    • Défaut : true
    • Type : boolean

logger

  • level : Niveau de journalisation du serveur.
    • Défaut : info
    • Type : trace | debug | info | warn | error | fatal
  • stdout : Affiche les logs dans la console (true) ou les écrit dans un fichier (false).
    • Défaut : true
    • Type : boolean
  • colorize: Active la coloration des logs.
    • Défaut : true
    • Type : boolean
  • jsonOutput : Permet d'activer la sortie des logs au format JSON.
    • Valeur par défaut : false
    • Type : boolean
    • Note : Lorsque cette option est activée, l'option colorize est ignorée.
  • filePath: Chemin du fichier de log utilisé lorsque stdout est à false.
    • Défaut : logs/server.log
    • Type : string

mysql

  • url : URL de connexion MySQL.
    • Défaut : non défini
    • Type : string
    • Requis : oui
    • Exemple : mysql://user:password@localhost:3306/database
  • logQueries : Permet de journaliser toutes les requêtes SQL envoyées à la base de données.
    • Défaut : false
    • Type : boolean

cache

  • adapter : Système de cache.
    • Défaut : mysql
    • Type : mysql | redis
  • ttl : Durée de vie des données en cache, en secondes.
    • Défaut : 60
    • Type : number
  • redis : URL de connexion Redis (si adapter: redis est utilisé).
    • Défaut : redis://127.0.0.1:6379
    • Type : string
    • Requis : oui

websocket

  • adapter : Définit le mode de gestion des connexions WebSocket.
    • Défaut : cluster
    • Type : cluster | redis
  • corsOrigin : Origine(s) autorisée(s) pour les connexions WebSocket.
    • Défaut : *
    • Type : string
  • redis : URL de connexion Redis (si adapter: redis).
    • Défaut : redis://127.0.0.1:6379
    • Type : string
    • Requis : oui (si adapter: redis)

mail

  • host : Hôte du serveur SMTP.
    • Défaut : non défini
    • Type : string
    • Requis : oui
  • port : Port SMTP (ex. : 587).
    • Défaut : 25
    • Type : number
  • sender : Adresse d'envoi.
    • Défaut : Sync-in<notification@sync-in.com>
    • Type : string
  • auth:
    • user : Nom d'utilisateur SMTP.
      • Défaut : non défini
      • Type : string
    • pass : Mot de passe SMTP.
      • Défaut : non défini
      • Type : string
  • secure : Connexion SSL.
    • Défaut : false
    • Type : boolean
  • ignoreTLS: Désactive l'utilisation de STARTTLS même si le serveur l'annonce.
    • Défaut : false
    • Type : boolean
  • rejectUnauthorized: Rejette la connexion si le certificat TLS du serveur est invalide.
    • Défaut : false
    • Type : boolean
  • logger : Active les logs SMTP.
    • Défaut : false
    • Type : boolean
  • debug : Active le mode débogage.
    • Défaut : false
    • Type : boolean

auth

  • provider : Méthode d'authentification.
    • Défaut : mysql
    • Type : mysql | ldap | oidc
  • cookieSameSite : Politique SameSite pour les cookies.
    • Défaut : strict
    • Type : lax | strict
  • encryptionKey : Clé de chiffrement des secrets utilisateurs dans la base de données, optionnelle mais recommandée.
    • Défaut : non défini
    • Type : string
    • Note : ⚠️ Une fois la MFA activée, toute modification ou suppression de la clé de chiffrement rendra les secrets invalides, empêchant toute authentification ultérieure.
  • mfa:
    • totp:
      • enabled : Activer l'authentification TOTP pour tous les utilisateurs.
        • Défaut : true
        • Type : boolean
      • issuer : Nom affiché dans l'application d'authentification.
        • Défaut : Sync-in
        • Type : string
  • token:
    • access:
      • secret : Secret JWT pour les tokens d'accès.
        • Défaut : non défini
        • Type : string
        • Requis : oui
      • expiration : Durée de validité du token d'accès.
        • Défaut : 30m
        • Type : string
    • refresh:
      • secret : Secret JWT pour les tokens de rafraîchissement.
        • Défaut : non défini
        • Type : string
        • Requis : oui
      • expiration : Durée de validité du token de rafraîchissement.
        • Défaut : 4h
        • Type : string
  • ldap (si provider: ldap) :

    • Note : Voir la documentation dédiée
    • servers : Liste des serveurs LDAP.
      • Défaut : []
      • Type : string[]
      • Requis : oui
      • Exemple : [ldap://localhost:389]
    • tlsOptions: Options TLS de Node.js utilisées pour la connexion LDAP sécurisée.
      • rejectUnauthorized: rejette la connexion si le certificat TLS du serveur est invalide.
        • Défaut : true
        • Type : boolean
        • Requis : non
      • ca: Liste de chemins valides vers les certificats.
        • Défaut : []
        • Type : string[]
        • Requis : non
        • Exemple : [/app/certs/ca.pem]
      • * : Les autres options sont disponibles dans la documentation NodeJS
    • baseDN : DN de base.
      • Défaut : non défini
      • Type : string
      • Requis : oui
      • Exemple : ou=people,dc=example,dc=com
    • filter : Filtre LDAP optionnel ajouté à la recherche.
      • Défaut : non défini
      • Type : string
      • Exemple : (acl=admin)
    • upnSuffix : Suffixe de domaine AD utilisé avec userPrincipalName.
      • Défaut : non défini
      • Type : string
      • Exemple : user@sync-in.com
    • netbiosName : Nom de domaine NetBIOS utilisé avec sAMAccountName.
      • Défaut : non défini
      • Type : string
      • Exemple : SYNC_IN\user
    • serviceBindDN : DN d'un compte de service pour effectuer les recherches LDAP.
      • Défaut : non défini
      • Type : string
    • serviceBindPassword : Mot de passe du compte de service.
      • Défaut : non défini
      • Type : string
    • attributes:
      • login : Attribut LDAP utilisé pour l'identification de l'utilisateur.
        • Défaut : uid
        • Type : uid | cn | mail | sAMAccountName | userPrincipalName
      • email : Attribut LDAP contenant l'adresse e-mail (par ex. mail, email).
        • Défaut : mail
        • Type : string
    • options:
      • autoCreateUser : Crée un utilisateur local lors de la première connexion LDAP.
        • Défaut : true
        • Type : boolean
      • autoCreatePermissions : Permissions attribuées aux utilisateurs créés automatiquement.
      • adminGroup : Groupe LDAP qui donne les privilèges admin (CN simple ou DN complet).
        • Défaut : non défini
        • Type : string
      • enablePasswordAuthFallback : Autorise le mot de passe local si LDAP est indisponible.
        • Défaut : true
        • Type : boolean
  • oidc (si provider: oidc) :

    • Note : Voir la documentation dédiée
    • issuerUrl : URL de découverte du fournisseur OpenID Connect.
      • Défaut : non défini
      • Type : string
      • Requis : oui
    • clientId : Client ID OAuth 2.0.
      • Défaut : non défini
      • Type : string
      • Requis : oui
    • clientSecret : Client Secret OAuth 2.0.
      • Défaut : non défini
      • Type : string
      • Requis : oui
    • redirectUri : URL de callback enregistrée côté fournisseur.
      • Défaut : non défini
      • Type : string
      • Requis : oui
      • Note : ⚠️ L'URL doit se terminer par /api/auth/oidc/callback
    • options:
      • autoCreateUser : Crée un utilisateur local à la première connexion OIDC.
        • Défaut : true
        • Type : boolean
      • autoCreatePermissions : Permissions attribuées aux utilisateurs créés automatiquement.
      • adminRoleOrGroup : Rôle ou groupe donnant les privilèges administrateur.
        • Défaut : non défini
        • Type : string
      • enablePasswordAuth : Autorise l'authentification locale par mot de passe pour les utilisateurs existants.
        • Défaut : true
        • Type : boolean
      • autoRedirect : Redirige automatiquement vers l'IdP.
        • Défaut : false
        • Type : boolean
      • buttonText : Libellé du bouton de connexion OIDC.
        • Défaut : Continue with OpenID Connect
        • Type : string
    • security:
      • scope : Scopes demandés.
        • Défaut : openid email profile
        • Type : string
      • supportPKCE : Active le support PKCE dans le flux d'autorisation.
        • Défaut : true
        • Type : boolean
      • tokenEndpointAuthMethod : Méthode d'authentification sur l'endpoint token.
        • Défaut : client_secret_basic
        • Type : client_secret_basic | client_secret_post
      • tokenSigningAlg : Algorithme de signature des ID tokens.
        • Défaut : RS256
        • Type : string
      • userInfoSigningAlg : Algorithme pour une réponse UserInfo signée.
        • Défaut : non défini
        • Type : string
      • skipSubjectCheck : Désactive la vérification du claim sub.
        • Défaut : false
        • Type : boolean

applications

  • files:
    • dataPath : Emplacement de stockage des fichiers de l'application, incluant les fichiers utilisateurs, les espaces et les fichiers temporaires.
      • Défaut : non défini
      • Type : string
      • Requis : oui
    • maxUploadSize : Taille maximale d'un fichier à uploader.
      • Défaut : 5368709120 (5 GB)
      • Type : number
      • Note : Valeur exprimée en octets.
    • contentIndexing:
      • enabled : Activer l’indexation du contenu des fichiers pour la recherche (désactiver cette option désactive la recherche full-text).
        • Défaut : true
        • Type : boolean
      • ocr:
        • Note : Voir la documentation dédiée
        • enabled : Activer l’OCR pour les images des PDF
          • Défaut: true
          • Type: boolean
        • languages : Langues OCR utilisées.
          • Défaut : [eng]
          • Type : string[]
          • Exemple : [eng,fra]
          • Note : Prend en charge les codes ISO 639-2/T à trois lettres : eng, spa, fra, deu, etc.
        • offline : Ne pas télécharger les langues OCR, utiliser uniquement les fichiers de langue locaux présents.
          • Défaut : false
          • Type : boolean
        • languagesPath : Chemin vers les fichiers de langue OCR locaux
          • Défaut : répertoire OCR intégré
          • Type : string
          • Note : Utilisé lorsque le mode hors ligne est activé ou pour remplacer l’emplacement par défaut.
    • showHiddenFiles: Masquer ou afficher les fichiers commençant par un point dans l'explorateur de fichiers.
      • Défaut : false
      • Type : boolean
    • onlyoffice:
      • enabled : Active l'intégration OnlyOffice.
        • Défaut : false
        • Type : boolean
      • secret : Secret JWT partagé avec OnlyOffice.
        • Défaut : non défini
        • Type : string
        • Requis : oui (si activé pour OnlyOffice)
      • externalServer : URL de votre serveur OnlyOffice.
        • Défaut : non défini
        • Type : string
        • Exemple : https://onlyoffice.my-domain.com
        • Note : Optionnel si vous utilisez le Docker Compose Sync-in.
      • verifySSL : Vérifie le certificat SSL.
        • Défaut : false
        • Type : boolean
    • collabora:
      • enabled : Active l'intégration Collabora Online.
        • Défaut : false
        • Type : boolean
      • externalServer : URL de votre serveur Collabora Online.
        • Défaut : non défini
        • Type : string
        • Exemple : https://collabora.my-domain.com
        • Note : Optionnel si vous utilisez le Docker Compose Sync-in.
  • appStore:
    • repository : Choix du dépôt pour les releases des clients applicatifs.
      • Défaut : public
      • Type : public | local

Variables d'environnement

Tous les paramètres de configuration du serveur Sync-in peuvent être définis via des variables d'environnement préfixées par SYNCIN_.

Par exemple, la configuration suivante :

auth:
encryptionKey: "changeEncryptionKeyWithStrongKey"
token:
access:
secret: "changeAccessWithStrongSecret"
refresh:
secret: "changeRefreshWithStrongSecret"
mysql:
url: mysql://root:MySQLRootPassword@mariadb:3306/sync_in

Peut être reproduite à l'aide des variables d'environnement suivantes :

SYNCIN_AUTH_ENCRYPTIONKEY="changeEncryptionKeyWithStrongKey"
SYNCIN_AUTH_TOKEN_ACCESS_SECRET="changeAccessWithStrongSecret"
SYNCIN_AUTH_TOKEN_REFRESH_SECRET="changeAccessWithStrongSecret"
SYNCIN_MYSQL_URL="mysql://root:MySQLRootPassword@mariadb:3306/sync_in"
info

Pour les valeurs booléennes, utilisez true ou false.
Les valeurs numériques sont automatiquement interprétées.


Configuration minimale

mysql:
url: mysql://root:MySQLRootPassword@mariadb:3306/sync_in
auth:
encryptionKey: changeEncryptionKeyWithStrongKey
token:
access:
secret: changeAccessWithStrongSecret
refresh:
secret: changeRefreshWithStrongSecret
applications:
files:
dataPath: /app/data

Configuration complète

server:
# hôte par défaut : `0.0.0.0`
host: 0.0.0.0
# port par défaut : `8080`
port: 8080
# workers : `auto` ou `0` (utilise tous les CPU) | nombre de CPU à utiliser
# défaut : 1
workers: 1
# trust proxy : nombre (fait confiance au nième saut depuis le proxy frontal comme client) | `true` | `false` | `127.0.0.1,192.168.1.1/24`
# défaut : 1
trustProxy: 1
# restartOnFailure : redémarre automatiquement les workers s'ils sont arrêtés ou plantent
# défaut : `true`
restartOnFailure: true
logger:
# niveau : `trace` | `debug` | `info` | `warn` | `error` | `fatal`
# défaut : `info`
level: info
# stdout : si false, les logs sont écrits dans le répertoire d'exécution
# défaut : `true`
stdout: true
# Colorise la sortie.
# défaut : `true`
colorize: true
# Sortie JSON. Quand activée, `colorize` est ignoré.
# défaut : `false`
jsonOutput: false
# Chemin du fichier de logs utilisé quand stdout est à false
filePath:
mysql:
# requis
url: mysql://user:MySQLPassword@localhost:3306/database
# défaut : `false`
logQueries: false
cache:
# adaptateur : `mysql` | `redis`
# défaut : `mysql`
adapter: mysql
# TTL en secondes
# défaut : `60`
ttl: 60
# URL de l'adaptateur Redis
# défaut : `redis://127.0.0.1:6379`
redis: redis://127.0.0.1:6379
websocket:
# adaptateur : `cluster` (workers Node.js : défaut) | `redis`
# défaut : `cluster`
adapter: cluster
# Origine CORS autorisée
# défaut : `*`
corsOrigin: '*'
# URL de l'adaptateur Redis
# défaut : `redis://127.0.0.1:6379`
redis: redis://127.0.0.1:6379
mail:
host: smtp.server.com
# défaut : `25`
port: 25
# défaut : `Sync-in<notification@sync-in.com>`
sender: 'Sync-in<notification@sync-in.com>'
# optionnel
auth:
user: user
pass: password
# Définit si la connexion doit utiliser SSL (si true) ou non (si false)
# Note : définir `secure: false` ne signifie pas forcément que les messages sont envoyés en clair
# Si le serveur supporte STARTTLS, la connexion est généralement mise à niveau vers TLS automatiquement
# défaut : `false`
secure: false
# ignoreTLS : si true, désactive l'utilisation de STARTTLS même si le serveur l'annonce
# défaut : false
ignoreTLS: false
# rejectUnauthorized : rejette la connexion si le certificat TLS du serveur est invalide
# défaut : false
rejectUnauthorized: false
# Active les logs
# défaut : `false`
logger: false
# Définit le niveau de logs en debug
# défaut : `false`
debug: false
auth:
# provider : `mysql` | `ldap` | `oidc`
# défaut : `mysql`
provider: mysql
# Clé utilisée pour chiffrer les clés secrètes utilisateur dans la base de données
# Optionnelle mais fortement recommandée
# Avertissement : ne modifiez pas et ne supprimez pas la clé de chiffrement après l'activation de la MFA, sinon les codes deviendront invalides
encryptionKey: changeEncryptionKeyWithStrongKey
# valeur cookie sameSite : `lax` | `strict`
# défaut : `strict`
cookieSameSite: strict
token:
access:
# Utilisé pour les signatures des tokens et cookies
# requis
secret: changeAccessWithStrongSecret
# expiration du token = maxAge du cookie
# défaut : `30m`
expiration: 30m
refresh:
# Utilisé pour les signatures des tokens et cookies
# requis
secret: changeRefreshWithStrongSecret
# expiration du token = maxAge du cookie
# défaut : `4h`
expiration: 4h
# Authentification multifactorielle
mfa:
# Configuration TOTP
totp:
# Active l'authentification TOTP
# défaut : true
enabled: true
# Nom affiché dans l'application d'authentification (FreeOTP, Proton Authenticator, Aegis Authenticator, etc.)
# défaut : Sync-in
issuer: Sync-in
# Authentification LDAP
ldap:
# ex. : [ldap://localhost:389, ldaps://localhost:636] (tableau requis)
# Plusieurs serveurs sont essayés dans l'ordre jusqu'à ce qu'un bind/recherche réussisse.
# requis
servers: []
# tlsOptions : options TLS Node.js utilisées pour la connexion LDAP sécurisée.
# Supporte les options TLS standard comme `ca`, `rejectUnauthorized`, etc.
# Voir : https://nodejs.org/api/tls.html
# https://nodejs.org/api/tls.html#tlscreatesecurecontextoptions
# Exemple :
# tlsOptions:
# rejectUnauthorized: true
# ca: [/app/certs/ca.pem]
# optionnel
tlsOptions:
# baseDN : nom distinctif (ex. : ou=people,dc=ldap,dc=sync-in,dc=com)
# Utilisé comme base de recherche pour les utilisateurs, et pour les groupes quand adminGroup est un CN.
# requis
baseDN: ou=people,dc=ldap,dc=sync-in,dc=com
# filter, ex. : (acl=admin)
# Ajouté tel quel au filtre de recherche LDAP (configuration de confiance).
# optionnel
filter:
# upnSuffix : suffixe de domaine AD utilisé avec `userPrincipalName` pour construire les identifiants au format UPN (ex. : user@`sync-in.com`)
# Utilisé uniquement quand login est défini sur userPrincipalName.
# optionnel
upnSuffix:
# netbiosName : nom de domaine NetBIOS utilisé avec `sAMAccountName` pour construire les identifiants hérités (ex. : `SYNC_IN`\user)
# Utilisé uniquement quand login est défini sur sAMAccountName.
# optionnel
netbiosName:
# serviceBindDN : nom distinctif d'un compte de service utilisé pour rechercher utilisateurs/groupes.
# Quand défini, les recherches sont effectuées avec ce compte ; le bind utilisateur sert seulement à valider le mot de passe.
# ex. : cn=syncin,ou=services,dc=ldap,dc=sync-in,dc=com
# optionnel
serviceBindDN:
# serviceBindPassword : mot de passe du compte de service utilisé pour rechercher utilisateurs/groupes.
# optionnel
serviceBindPassword:
attributes:
# Attribut LDAP qui correspond au login stocké en base.
# Avec un service bind, il sert à localiser l'utilisateur (puis bind avec le DN trouvé).
# Sans service bind, il sert à construire le DN de l'utilisateur pour le bind (sauf AD : UPN/DOMAIN\\user).
# Si vous choisissez mail, les logins locaux doivent être l'adresse e-mail de l'utilisateur.
# ex. : uid | cn | mail | sAMAccountName | userPrincipalName
# défaut : uid
login: uid
# Attribut utilisé pour récupérer l'adresse e-mail de l'utilisateur
# email : `mail` ou `email`
# défaut : `mail`
email: mail
options:
# autoCreateUser : crée automatiquement un utilisateur local lors de la première authentification LDAP réussie.
# Le compte local est créé à partir des attributs LDAP :
# - login : depuis l'attribut LDAP de login configuré (ex. : uid, cn, sAMAccountName, userPrincipalName)
# - email : depuis l'attribut e-mail configuré (requis)
# - firstName / lastName : depuis givenName+sn, ou displayName, ou cn (secours)
# Quand désactivé, seuls les utilisateurs existants peuvent s'authentifier via LDAP.
# défaut : true
autoCreateUser: true
# autoCreatePermissions : permissions attribuées aux utilisateurs créés automatiquement via LDAP.
# Appliqué uniquement à la création utilisateur quand autoCreateUser est activé.
# N'a aucun effet sur les utilisateurs existants.
# La liste complète des permissions est disponible dans la documentation : https://sync-in.com/docs/admin-guide/permissions
# ex. : [personal_space, spaces_access] (tableau requis)
# défaut : []
autoCreatePermissions: []
# adminGroup : groupe LDAP qui accorde les privilèges administrateur Sync-in.
# Accepte soit un CN simple (ex. : "Admins"), soit un DN complet (ex. : "CN=Admins,OU=Groups,DC=ldap,DC=sync-in,DC=com").
# Si défini, les utilisateurs dont le `memberOf` LDAP contient ce CN (ou dont le DN de groupe correspond) se voient attribuer le rôle administrateur.
# Si `memberOf` est absent, Sync-in peut aussi vérifier l'appartenance en recherchant les groupes `groupOfNames`.
# Si les utilisateurs ne peuvent pas lire `groupOfNames`, utilisez un compte de service bind pour effectuer cette recherche.
# Si non défini, les utilisateurs administrateurs existants conservent leur rôle et il ne peut pas être retiré via LDAP.
# optionnel
adminGroup:
# enablePasswordAuthFallback : autorise l'authentification locale par mot de passe quand l'authentification LDAP échoue.
# Quand activé, les utilisateurs peuvent s'authentifier avec leur mot de passe local si le service LDAP est indisponible.
# Toujours autorisé pour les utilisateurs administrateurs (accès de secours).
# défaut : true
enablePasswordAuthFallback: true
oidc:
# issuerUrl : URL de l'endpoint de découverte du fournisseur OIDC
# ex. :
# - Keycloak : https://auth.example.com/realms/my-realm
# - Authentik : https://auth.example.com/application/o/my-app/
# - Google : https://accounts.google.com
# - Microsoft : https://login.microsoftonline.com/<tenant-id>/v2.0
# Le serveur découvrira automatiquement les endpoints d'autorisation, token et userinfo.
# requis
issuerUrl:
# clientId : Client ID OAuth 2.0 obtenu auprès de votre fournisseur OIDC
# requis
clientId:
# clientSecret : Client Secret OAuth 2.0 obtenu auprès de votre fournisseur OIDC
# requis
clientSecret: changeOIDCClientSecret
# redirectUri : URL de callback vers laquelle les utilisateurs sont redirigés après authentification
# Cette URL doit être enregistrée dans les URL de redirection autorisées de votre fournisseur OIDC
# ex. : (callback API) : https://sync-in.domain.com/api/auth/oidc/callback
#
# Pour autoriser l'authentification depuis l'application desktop, les URL de redirection suivantes doivent aussi être enregistrées dans votre fournisseur OIDC :
# - http://127.0.0.1:49152/oidc/callback
# - http://127.0.0.1:49153/oidc/callback
# - http://127.0.0.1:49154/oidc/callback
#
# Si votre fournisseur OIDC supporte les jokers ou expressions régulières, vous pouvez à la place enregistrer une entrée unique comme :
# - http://127.0.0.1/*
#
# requis
redirectUri: https://sync-in.domain.com/api/auth/oidc/callback
options:
# autoCreateUser : crée automatiquement un compte utilisateur local lors de la première connexion OIDC réussie.
# Quand activé, le `login` utilisateur est dérivé des claims OIDC : preferred_username, puis la partie locale de l'e-mail, avec `sub` en dernier recours.
# Quand désactivé, seuls les utilisateurs existants sont autorisés à s'authentifier via OIDC.
# défaut : true
autoCreateUser: true
# autoCreatePermissions : permissions attribuées aux utilisateurs créés automatiquement via OIDC.
# Appliqué uniquement quand autoCreateUser est activé, et uniquement à la création utilisateur.
# Cette option n'a aucun effet sur les utilisateurs existants.
# La liste complète des permissions est disponible dans la documentation : https://sync-in.com/docs/admin-guide/permissions
# ex. : [personal_space, spaces_access] (tableau requis)
# défaut : []
autoCreatePermissions: []
# adminRoleOrGroup : nom du rôle ou groupe qui accorde l'accès administrateur Sync-in
# Les utilisateurs ayant cette valeur recevront les privilèges administrateur.
# La valeur est comparée aux claims `roles` ou `groups` fournis par l'IdP.
# Note : selon le fournisseur (ex. : Keycloak), roles/groups peuvent être exposés seulement dans les tokens
# et nécessitent les bons mappers IdP pour être inclus dans l'ID token ou la réponse UserInfo.
# optionnel
adminRoleOrGroup:
# enablePasswordAuth : autorise l'authentification locale par mot de passe lors de l'utilisation d'OIDC.
# Quand activé, les utilisateurs peuvent s'authentifier avec leur mot de passe Sync-in au lieu d'OIDC.
# L'authentification locale par mot de passe est toujours autorisée pour :
# - les utilisateurs invités
# - les utilisateurs administrateurs (accès de secours)
# - les scopes d'application (mots de passe applicatifs)
# Les utilisateurs classiques sont autorisés uniquement quand cette option est activée.
# Les utilisateurs doivent déjà exister localement et avoir un mot de passe défini.
# défaut : true
enablePasswordAuth: true
# autoRedirect : redirige automatiquement les utilisateurs vers le flux de connexion OIDC.
# Quand activé, la page de connexion est ignorée et les utilisateurs sont envoyés directement vers le fournisseur OIDC.
# défaut : false
autoRedirect: false
# buttonText : libellé affiché sur le bouton de connexion OIDC.
# défaut : Continue with OpenID Connect
buttonText: Continue with OpenID Connect
security:
# scope : scopes OAuth 2.0 à demander (chaîne séparée par des espaces)
# Scopes courants : openid (requis), email, profile, groups, roles
# défaut : `openid email profile`
scope: openid email profile
# supportPKCE : active PKCE (Proof Key for Code Exchange) dans le flux authorization code.
# Quand true, PKCE est utilisé si le fournisseur OIDC le supporte.
# défaut : true
supportPKCE: true
# Méthode d'authentification client OAuth 2.0 / OIDC utilisée sur le token endpoint.
# Valeurs possibles :
# - client_secret_basic (DÉFAUT) : auth HTTP Basic avec client_id et client_secret.
# Recommandé pour les clients backend (confidentiels).
# - client_secret_post : client_id et client_secret envoyés dans le corps de la requête.
# - none (ou undefined) : pas d'authentification client (clients publics : mobile / SPA avec PKCE).
# défaut : `client_secret_basic`
tokenEndpointAuthMethod: client_secret_basic
# tokenSigningAlg : algorithme utilisé pour vérifier la signature des ID tokens (JWT) renvoyés par le fournisseur OpenID Connect.
# Valeurs courantes : RS256, RS384, RS512, ES256, ES384, ES512
# défaut : `RS256`
tokenSigningAlg: RS256
# userInfoSigningAlg : algorithme utilisé pour demander une réponse UserInfo signée au fournisseur OpenID Connect.
# Quand non défini, l'endpoint UserInfo renvoie une réponse JSON standard (non signée). C'est la configuration la plus courante et recommandée.
# Valeurs courantes : (vide), RS256, RS384, RS512, ES256, ES384, ES512
# défaut : vide
userInfoSigningAlg:
# skipSubjectCheck : désactive la vérification que le claim `sub` renvoyé par l'endpoint UserInfo
# correspond au claim `sub` de l'ID token.
# Définissez true uniquement pour les fournisseurs OIDC non conformes ou hérités.
# défaut : false
skipSubjectCheck: false
applications:
files:
# requis
dataPath: /home/sync-in
# défaut : 5368709120 (5 GB)
maxUploadSize: 5368709120
contentIndexing:
# Active l'indexation du contenu des fichiers pour la recherche (désactiver ceci coupe la recherche full-text)
# défaut : true
enabled: true
ocr:
# Active l'OCR sur les PDF
# défaut : true
enabled: true
# Langues OCR utilisées par tesseract.js
# Supporte les codes à trois lettres ISO 639-2/T : 'eng', 'spa', 'fra', 'deu', etc.
# exemples : `[eng,fra]`, `[fra]`
# défaut : [eng]
languages: [eng]
# Mode hors ligne : ne télécharge pas les langues OCR, utilise uniquement les fichiers de langue locaux du dossier OCR intégré
# Pour télécharger les langues, utilisez ce schéma : https://cdn.jsdelivr.net/npm/@tesseract.js-data/<lang>@1.0.0/4.0.0_best_int/<lang>.traineddata.gz
# défaut : false
offline: false
# Chemin vers les fichiers de langue OCR locaux
# Utilisé lorsque le mode hors ligne est activé ou pour remplacer l’emplacement par défaut
# défaut : répertoire OCR intégré
languagesPath:
# Affiche les fichiers commençant par un point dans l'explorateur de fichiers
# défaut : false
showHiddenFiles: false
onlyoffice:
# active l'intégration onlyoffice
# défaut : false
enabled: false
# Secret utilisé pour les tokens JWT, il doit être identique sur le serveur onlyoffice
# requis
secret: onlyOfficeSecret
# Si aucun serveur externe n'est configuré, le service Nginx local du setup Docker Compose est utilisé.
# Si un serveur externe est configuré, il sera utilisé à la place.
# Note : lors de l'utilisation d'un serveur externe (ex. : https://onlyoffice.domain.com), assurez-vous qu'il est accessible depuis le client/navigateur.
# défaut : null
externalServer:
# Si vous utilisez https, définissez `true`.
# défaut : false
verifySSL: false
collabora:
# active l'intégration collabora online
# défaut : false
enabled: false
# Si aucun serveur externe n'est configuré, le service Nginx local du setup Docker Compose est utilisé.
# Si un serveur externe est configuré, il sera utilisé à la place.
# Note : lors de l'utilisation d'un serveur externe (ex. : https://collabora.domain.com), assurez-vous qu'il est accessible depuis le client/navigateur.
# défaut : null
externalServer:
appStore:
# repository : `public` | `local`
# défaut : `public`
repository: public