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)
- Défaut :
port: Port utilisé pour l'interface web.- Défaut :
8080 - Type : number
- Défaut :
workers: Nombre de processus.- Défaut :
1 - Type : number |
auto|0 - Note :
autoou0pour utiliser tous les cœurs CPU
- Défaut :
trustProxy: Active la gestion des proxies.- Défaut :
1 - Type : boolean | number | string
- Note : Voir les options disponibles
- Défaut :
restartOnFailure: Redémarre automatiquement les workers en cas d'échec.- Défaut :
true - Type : boolean
- Défaut :
logger
level: Niveau de journalisation du serveur.- Défaut :
info - Type :
trace|debug|info|warn|error|fatal
- Défaut :
stdout: Affiche les logs dans la console (true) ou les écrit dans un fichier (false).- Défaut :
true - Type : boolean
- Défaut :
colorize: Active la coloration des logs.- Défaut :
true - Type : boolean
- Défaut :
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
colorizeest ignorée.
- Valeur par défaut :
filePath: Chemin du fichier de log utilisé lorsquestdoutest àfalse.- Défaut :
logs/server.log - Type : string
- Défaut :
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
- Défaut :
cache
adapter: Système de cache.- Défaut :
mysql - Type :
mysql|redis
- Défaut :
ttl: Durée de vie des données en cache, en secondes.- Défaut :
60 - Type : number
- Défaut :
redis: URL de connexion Redis (siadapter: redisest utilisé).- Défaut :
redis://127.0.0.1:6379 - Type : string
- Requis : oui
- Défaut :
websocket
adapter: Définit le mode de gestion des connexions WebSocket.- Défaut :
cluster - Type :
cluster|redis
- Défaut :
corsOrigin: Origine(s) autorisée(s) pour les connexions WebSocket.- Défaut :
* - Type : string
- Défaut :
redis: URL de connexion Redis (siadapter: redis).- Défaut :
redis://127.0.0.1:6379 - Type : string
- Requis : oui (si
adapter:redis)
- Défaut :
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
- Défaut :
sender: Adresse d'envoi.- Défaut :
Sync-in<notification@sync-in.com> - Type : string
- Défaut :
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
- Défaut :
ignoreTLS: Désactive l'utilisation de STARTTLS même si le serveur l'annonce.- Défaut :
false - Type : boolean
- Défaut :
rejectUnauthorized: Rejette la connexion si le certificat TLS du serveur est invalide.- Défaut :
false - Type : boolean
- Défaut :
logger: Active les logs SMTP.- Défaut :
false - Type : boolean
- Défaut :
debug: Active le mode débogage.- Défaut :
false - Type : boolean
- Défaut :
auth
provider: Méthode d'authentification.- Défaut :
mysql - Type :
mysql|ldap|oidc
- Défaut :
cookieSameSite: Politique SameSite pour les cookies.- Défaut :
strict - Type :
lax|strict
- Défaut :
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
- Défaut :
issuer: Nom affiché dans l'application d'authentification.- Défaut :
Sync-in - Type : string
- Défaut :
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
- Défaut :
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
- Défaut :
-
ldap(siprovider: ldap) :- Note : Voir la documentation dédiée
servers: Liste des serveurs LDAP.- Défaut :
[] - Type : string[]
- Requis : oui
- Exemple :
[ldap://localhost:389]
- Défaut :
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
- Défaut :
ca: Liste de chemins valides vers les certificats.- Défaut :
[] - Type : string[]
- Requis : non
- Exemple :
[/app/certs/ca.pem]
- Défaut :
*: 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é avecuserPrincipalName.- Défaut : non défini
- Type : string
- Exemple : user@
sync-in.com
netbiosName: Nom de domaine NetBIOS utilisé avecsAMAccountName.- 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
- Défaut :
email: Attribut LDAP contenant l'adresse e-mail (par ex.mail,email).- Défaut :
mail - Type : string
- Défaut :
options:autoCreateUser: Crée un utilisateur local lors de la première connexion LDAP.- Défaut :
true - Type : boolean
- Défaut :
autoCreatePermissions: Permissions attribuées aux utilisateurs créés automatiquement.- Défaut :
[] - Type : string[]
- Note : Voir les identifiants des permissions
- Défaut :
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
- Défaut :
-
oidc(siprovider: 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
- Défaut :
autoCreatePermissions: Permissions attribuées aux utilisateurs créés automatiquement.- Défaut :
[] - Type : string[]
- Note : Voir les identifiants des permissions
- Défaut :
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
- Défaut :
autoRedirect: Redirige automatiquement vers l'IdP.- Défaut :
false - Type : boolean
- Défaut :
buttonText: Libellé du bouton de connexion OIDC.- Défaut :
Continue with OpenID Connect - Type : string
- Défaut :
security:scope: Scopes demandés.- Défaut :
openid email profile - Type : string
- Défaut :
supportPKCE: Active le support PKCE dans le flux d'autorisation.- Défaut :
true - Type : boolean
- Défaut :
tokenEndpointAuthMethod: Méthode d'authentification sur l'endpoint token.- Défaut :
client_secret_basic - Type :
client_secret_basic|client_secret_post
- Défaut :
tokenSigningAlg: Algorithme de signature des ID tokens.- Défaut :
RS256 - Type : string
- Défaut :
userInfoSigningAlg: Algorithme pour une réponse UserInfo signée.- Défaut : non défini
- Type : string
skipSubjectCheck: Désactive la vérification du claimsub.- Défaut :
false - Type : boolean
- Défaut :
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.
- Défaut :
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
- Défaut :
ocr:- Note : Voir la documentation dédiée
enabled: Activer l’OCR pour les images des PDF- Défaut:
true - Type: boolean
- Défaut:
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.
- Défaut :
offline: Ne pas télécharger les langues OCR, utiliser uniquement les fichiers de langue locaux présents.- Défaut :
false - Type : boolean
- Défaut :
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
- Défaut :
onlyoffice:enabled: Active l'intégration OnlyOffice.- Défaut :
false - Type : boolean
- Défaut :
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
- Défaut :
collabora:enabled: Active l'intégration Collabora Online.- Défaut :
false - Type : boolean
- Défaut :
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
- Défaut :
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