Configuration du Serveur
Toutes les options de configuration du serveur Sync-in sont définies dans le fichier environment.yaml
.
Ce fichier vous permet de personnaliser le fonctionnement de votre instance Sync-in : réseau, authentification, base de données, cache, messagerie, etc.
🧱 Sections
🖥️ server
host
: Adresse IP d'écoute du serveur (par défaut :0.0.0.0
)port
: Port utilisé pour l’interface web (par défaut :3000
)workers
: Nombre de processus.auto
pour utiliser tous les cœurs CPU.- Quelle que soit la valeur indiquée, au moins 2 workers sont toujours lancés, 1 worker est nécessaire aux tâches planifiées.
trustProxy
: Active la gestion des proxies (ex. :true
,false
, ou IP(s))restartOnFailure
: Redémarre automatiquement les workers en cas d’échec (true
oufalse
)
📋 logger
level
: Niveau de journalisation du serveur (trace
,debug
,info
,warn
,error
,fatal
)stdout
: Affiche les logs dans la console (true
) ou les écrit dans un fichier (false
)
🐬 mysql
url
: URL de connexion MySQL (ex. :mysql://user:password@localhost:3306/database
)logQueries
: Permet de journaliser toutes les requêtes SQL envoyées à la base de données (true
oufalse
)
⚡ cache
adapter
: Système de cache (mysql
par défaut ouredis
)ttl
: Durée de vie des données en cache, en secondesredis
: URL de connexion Redis (siadapter: redis
est utilisé)
🔄 websocket
adapter
: Définit le mode de gestion des connexions WebSocket. (cluster
ouredis
)cluster
: utilise les*workers Node.js pour la communication entre processus (valeur par défaut).redis
: permet une communication distribuée entre plusieurs instances, recommandé pour les environnements multi-serveurs.
corsOrigin
: Origine(s) autorisée(s) pour les connexions WebSocket (ex. :"*"
)redis
: URL de connexion Redis (siadapter: redis
)
📧 mail
host
: Hôte du serveur SMTPport
: Port SMTP (ex. :587
)sender
: Adresse d’envoi (ex. :Sync-in<notification@sync-in.com>
)auth
:user
: Nom d’utilisateur SMTPpass
: Mot de passe SMTP
secure
: Connexion SSL (true
oufalse
)logger
: Active les logs SMTP (true
oufalse
)debug
: Active le mode débogage (true
oufalse
)
🔐 auth
method
: Méthode d’authentification (mysql
ouldap
)sameSite
: Politique SameSite pour les cookies (lax
,strict
)token
:access
:name
: Nom du cookie d’accèssecret
: Secret JWT pour les tokens d’accèsexpiration
: Durée de validité du token d’accès (ex. :30m
)access.cookieMaxAge
: Durée du cookie côté client
refresh
:name
: Nom du cookie de rafraîchissementsecret
: Secret JWT pour les tokens de rafraîchissementexpiration
: Durée de validité du token de rafraîchissement (ex. :4h
)cookieMaxAge
: Durée du cookie côté client
ldap
(simethod: ldap
):servers
: Liste des serveurs LDAPbaseDN
: DN de base (ex. :ou=people,dc=example,dc=com
)filter
: Filtre LDAP (optionnel)loginAttribute
: Attribut de connexion (uid
oumail
)
🧩 applications
📁 files
dataPath
: Chemin où sont stockées les données utilisateursmaxUploadSize
: Taille maximale d’un fichier à téléverser (par défaut : 5 Go)- 📝
onlyoffice
:enabled
: Active l’intégration OnlyOffice (true
oufalse
)externalServer
: URL de votre serveur OnlyOffice (ex. :https://onlyoffice.domain.com
)secret
: Secret JWT partagé avec OnlyOfficeverifySSL
: Vérifie le certificat SSL (true
oufalse
)
🛍️ appStore
repository
: Choix du dépôt pour les releases des applications applicatifs :public
(par défaut) oulocal
📌 Exemple
server:
host: 0.0.0.0
port: 3000
# workers: auto (use all cpus) | number
# regardless of the value, starts with at least 2 workers, 1 worker is dedicated to scheduled tasks
workers: 4
# trust proxy: true | false | 127.0.0.1,192.168.1.1/24
trustProxy: false
# restartOnFailure : automatically restart workers if they are killed or die
restartOnFailure: true
logger:
# level: trace | debug | info | warn | error | fatal
level: trace
# stdout : if false logs are written to the run directory (default: true)
stdout: true
mysql:
url: mysql://user:password@localhost:3306/database
logQueries: false
cache:
# adapter: mysql (default) | redis (requires optional dependency: redis)
adapter: mysql
# default ttl in seconds
ttl: 60
# redis adapter url
redis: redis://127.0.0.1:6379
websocket:
# adapter: cluster (Node.js Workers: default) | redis (requires optional dependency: @socket.io/redis-adapter)
adapter: cluster
# cors origin allowed
corsOrigin: '*'
# redis adapter url
redis: redis://127.0.0.1:6379
mail:
host: smtp.server.com
port: 587
sender: 'Sync-in<notification@sync-in.com>'
auth:
user: user
pass: password
# secure: defines if the connection should use SSL (if true) or not (if false)
secure: false
# enable logger
logger: false
# set log level to debug
debug: false
auth:
# adapter : mysql (default) | ldap
method: mysql
# sameSite (cookie settings) : lax | strict
sameSite: strict
token:
access:
name: sync-in-access
# used for token & cookie signatures
secret: changeAccessWithStrongSecret
expiration: 30m
cookieMaxAge: 30m
refresh:
name: sync-in-refresh
# used for token & cookie signatures
secret: changeRefreshWithStrongSecret
expiration: 4h
cookieMaxAge: 4h
ldap:
# e.g: [ldap://localhost:389, ldaps://localhost:636] (array required)
servers: []
# baseDN: distinguished name, e.g: (ou=people,dc=ldap,dc=sync-in,dc=com)
baseDN:
# filter, e.g: (acl=admin)
filter:
# login attribute: uid (default) or mail
loginAttribute:
applications:
files:
dataPath: /home/sync-in
# Default to 5 GB if not specified
maxUploadSize: 5368709120
onlyoffice:
enabled: false
# for an external server (e.g: https://onlyoffice.domain.com), remember the url must be accessible from browser !
# if externalServer is empty (case of official docker compose), we use the local instance
externalServer:
# secret used for jwt tokens, it must be the same on the onlyoffice server
secret: onlyOfficeSecret
# if you use https, set to true
verifySSL: false
appStore:
# repository: public (default) | local
repository: public