Installation via Docker
Sync-in peut être installé à l'aide de l’image Docker officielle disponible ici : https://hub.docker.com/r/syncin/server.
Cette image est conçue pour être utilisée dans une configuration avec Docker Compose.
📋 Prérequis
⚙️ Configuration matérielle minimale
- RAM : 4 Go
- CPU : 2 cores/vCPU
- Espace disque : 2 Go
🐳 Docker
Cette configuration repose sur des fichiers Docker Compose utilisant l’extension x-include
.
Vous aurez besoin de :
- Docker Engine version 24 ou supérieure
- Docker Compose version 2.20 ou supérieure
✅ Vous pouvez vérifier les versions installées avec :
docker --version
docker compose version
🔗 Si Docker n’est pas installé, suivez le guide d'installation officiel de Docker.
📦 Fichiers de configuration
Pour obtenir le paquet sync-in-docker depuis https://github.com/Sync-in/server/releases, utilisez l’une des méthodes suivantes :
curl
etunzip
:curl -L -o sync-in-docker.zip \
https://github.com/Sync-in/server/releases/latest/download/sync-in-docker.zip && \
unzip sync-in-docker.zip- ou avec
curl
ettar
:curl -L -o sync-in-docker.tar.gz \
https://github.com/Sync-in/server/releases/latest/download/sync-in-docker.tar.gz && \
tar zxvf sync-in-docker.tar.gz
Vous devriez obtenir la structure suivante dans le répertoire sync-in-docker
:
├── config
│ ├── nginx
│ │ ├── docker-compose.nginx.yaml
│ │ └── nginx.conf
│ │ └── onlyoffice.conf
│ ├── onlyoffice
│ │ └── docker-compose.onlyoffice.yaml
│ └── sync-in-desktop-releases
│ └── docker-compose.sync-in-desktop-releases.yaml
│ └── update.sh
├── docker-compose.yaml
└── environment.yaml
Vous pouvez vérifier la structure et le contenu depuis le dépôt GitHub.
🚀 Démarrage rapide
1. Secrets par défaut
Accédez au répertoire Docker Compose :
cd sync-in-docker
Avant de démarrer le serveur, veillez à remplacer les secrets par défaut pour des raisons de sécurité.
Modifiez le fichier environment.yaml
:
auth:
token:
access:
secret: "changeAccessWithStrongSecret"
refresh:
secret: "changeRefreshWithStrongSecret"
mysql:
# Utilisez le mot de passe root défini dans docker-compose.yaml
url: mysql://root:MySQLRootPassword@mariadb:3306/sync_in
Puis, modifiez le fichier docker-compose.yaml
pour vous assurer que le mot de passe MySQL correspond :
services:
mariadb:
environment:
MYSQL_ROOT_PASSWORD: "MySQLRootPassword"
Utilisez des chaînes longues et générées aléatoirement pour vos secrets afin de garantir une sécurité maximale.
N’oubliez pas d’ajouter des guillemets si vos mots de passe contiennent des caractères spéciaux.
Vous pouvez utiliser des variables d’environnement pour configurer les secrets précédemment définis.
Consultez la section Variables d’environnement pour plus de détails
2. Lancer le serveur Sync-in
Pour définir vos propres identifiants administrateur au premier lancement, utilisez :
INIT_ADMIN=true INIT_ADMIN_LOGIN='user' INIT_ADMIN_PASSWORD='password' docker compose up -d
Remplacez user
et password
par les identifiants souhaités.
Si vous ne définissez pas ces variables et lancez simplement :
INIT_ADMIN=true docker compose up -d
Le serveur utilisera les identifiants administrateur par défaut :
- Login :
sync-in
- Mot de passe :
sync-in
Important : Pour des raisons de sécurité, il est fortement recommandé de modifier ces identifiants dès votre première connexion.
Pour vérifier le statut des conteneurs : docker compose ps
3. Accéder à l’interface Web
Une fois le serveur lancé, ouvrez votre navigateur à l’adresse suivante :
http://localhost:8080
Connectez-vous en utilisant les identifiants administrateur définis à l’étape 2.
🛠️ Configuration
Nginx (recommandé)
Dans un environnement de production, un reverse proxy permet un accès sécurisé et performant à votre instance Sync-in.
L’image officielle nginx est utilisée, et une configuration dédiée à Sync-in est incluse dans ce dépôt.
Pour l’activer, éditez le fichier docker-compose.yaml
et décommentez les lignes suivantes en haut du fichier :
include:
- ./config/nginx/docker-compose.nginx.yaml
Pour configurer HTTPS, modifiez le fichier ./config/nginx/nginx.conf
et ajoutez vos certificats SSL.
docker compose up -d
pour appliquer les modifications
Nginx est maintenant activé le port 80, rendant Sync-in accessible via http://localhost
.
OnlyOffice (optionnel)
⚠️ Pour activer l’intégration OnlyOffice, assurez-vous d’abord que la configuration Nginx est correctement configurée.
Modifiez ./config/nginx/nginx.conf
, décommentez la ligne suivante à la fin du fichier :
include onlyoffice.conf;
Ensuite, dans docker-compose.yaml
, décommentez les lignes suivantes :
include:
- ./config/nginx/docker-compose.nginx.yaml
- ./config/onlyoffice/docker-compose.onlyoffice.yaml
Modifiez environment.yaml
pour activer l’intégration :
applications:
files:
onlyoffice:
# activer l’intégration
enabled: true
# utiliser le même secret que dans docker-compose.yaml
secret: onlyOfficeSecret
Remplacez onlyOfficeSecret
par une valeur sécurisée, et assurez-vous qu’elle correspond à celle définie dans
./config/onlyoffice/docker-compose.onlyoffice.yaml
:
services:
onlyoffice:
environment:
- JWT_SECRET=onlyOfficeSecret
docker compose up -d && docker compose restart nginx sync_in
pour appliquer les changements
Sync-in et OnlyOffice s’exécutent dans des conteneurs Docker et communiquent via Nginx.
Il est essentiel d’accéder à l’interface en utilisant soit l’adresse IP du serveur, soit un nom de domaine correctement configuré.
Accéder à Sync-in via http://localhost
ou http://127.0.0.1
empêchera le bon fonctionnement d’OnlyOffice (les documents ne pourront ni être
affichés ni édités).
Dépôt de clients (optionnel)
Si les applications de bureau ne disposent pas d’un accès à internet, le serveur Sync-in peut faire office de dépôt local
pour les releases des clients applicatifs.
Les utilisateurs peuvent ainsi télécharger les applications directement depuis leur compte et bénéficier des mises à jour automatiques.
Pour activer cette fonctionnalité, éditez docker-compose.yaml
et décommentez :
include:
- ./config/sync-in-desktop-releases/docker-compose.sync-in-desktop-releases.yaml
Puis, dans environment.yaml
, ajoutez la section suivante :
applications:
files:
appStore:
repository: local
Pour activer ou mettre à jour les versions des clients, exécutez les commandes suivantes :
chmod +x ./config/sync-in-desktop-releases/update.sh
./config/sync-in-desktop-releases/update.sh
🌱 Variables d’environnement
Lors de l’initialisation
- SKIP_INIT : Ignore l’étape d’initialisation (migration de la base de données, création du compte administrateur, mise à jour des droits, etc.)
- INIT_ADMIN : Si défini (à
true
ou toute autre valeur non vide), force la création du compte administrateur lors de l’initialisation. - INIT_ADMIN_LOGIN : Nom d’utilisateur du compte administrateur à créer lors de l’initialisation.
- INIT_ADMIN_PASSWORD : Mot de passe du compte administrateur à créer lors de l’initialisation.
- PUID : Définit l’identifiant utilisateur (UID) utilisé par le conteneur (utile pour les droits sur les fichiers).
- PGID : Définit l’identifiant de groupe (GID) utilisé par le conteneur (utile pour l’accès aux volumes partagés).
Lors de l’exécution
Tous les paramètres de configuration du serveur Sync-in peuvent être définis via des variables
d’environnement préfixées par SYNCIN_
, voir la section correspondante.
🔐 Gestion des secrets Docker
Docker Secrets (notamment dans un environnement Swarm ou Compose) permettent de stocker en toute sécurité des données sensibles (comme des
mots de passe, clés API…) en les montant dans les conteneurs sous forme de fichiers, typiquement dans le dossier /run/secrets/<nom_du_secret>
.
Par design, Docker ne transforme jamais directement ces secrets en variables d’environnement, afin de limiter les risques de fuite (par exemple via
docker inspect ou les variables d’environnement accessibles dans le processus).
L'image Docker de Sync-in, ainsi que de nombreuses images officielles (MySQL, PostgreSQL ...), adopte et supporte cette convention *_FILE
.
Par exemple, plutôt que de définir directement la variable d’environnement SYNCIN_MYSQL_URL
, il est recommandé d’utiliser
SYNCIN_MYSQL_URL_FILE=/run/secrets/mysql_password
. Le serveur Sync-in se chargera alors de lire le contenu du fichier spécifié pour initialiser la
variable en interne.
Cette approche garantit une gestion sécurisée des secrets tout en maintenant la compatibilité avec les mécanismes de configuration existants.
Pour plus d'informations, consulter la documentation officielle Docker concernant la gestion des secrets.
🧾 Commandes utiles
Ces commandes sont à exécuter depuis la racine du répertoire sync-in-docker
, dans l’environnement Docker Compose de Sync-in.
Conteneur Sync-in
👤 Créer un utilisateur
Une fois le conteneur Sync-in démarré, vous pouvez créer de nouveaux comptes directement à l’intérieur du conteneur.
Remplacez "user"
et "password"
par les identifiants que vous souhaitez attribuer.
docker compose exec -it sync_in sh -c 'node server/infrastructure/database/scripts/create-user.js --role user --login "user" --password "password"'
Remplacez --role user
par --role admin
pour créer un compte administrateur.
🔄 Mettre à jour le conteneur
Télécharge la dernière image de Sync-in, recrée/redémarre le conteneur puis supprime les images devenues inutilisées.
docker compose pull sync_in && docker compose up -d && docker image prune -f
Docker Compose
🚀 Démarrer les services
Lance les services définis dans le docker-compose.yml
en arrière-plan.
docker compose up -d
🛑 Arrêter et nettoyer les services
Arrête les services, supprime les conteneurs et les réseaux.
docker compose down
⚠️ Nettoyage complet (inclut la suppression des données des volumes !)
Arrête les services, supprime les conteneurs, les réseaux, les images, les volumes et les conteneurs orphelins.
docker compose down --rmi all --volumes --remove-orphans
📜 Voir les logs
Affiche les logs en temps réel de tous les services.
docker compose logs -f --tail 100
Voir les logs d’un service spécifique (ex. Sync-in)
docker compose logs -f --tail 100 sync_in