Skip to main content

Déploiement d'un serveur Sync-In

1. Contexte

Sync-in est une solution open-source qui permet de stocker, partager, collaborer et synchroniser des fichiers à travers différents OS.

La solution est déployée via Docker Compose puis exposé sur Internet via un paramétrage de domaine (sécurisé par Cloudflare) et un reverse proxy. Elle comporte différents éléments :

  • Sync-in : application principale
  • OnlyOffice : éditeur permettant l'édition en temps réel pour la suite Microsoft Office
  • Collabora : un éditeur similaire mais orienté pour les environments open standards / free software.

Ressources

https://sync-in.com/docs/

https://www.it-connect.fr/tuto-sync-in-plateforme-collaborative-open-source/#Configurer_OnlyOffice

https://sync-in.com/fr/docs/setup-guide/proxy

https://sync-in.com/docs/user-guide/collaborative_editors/

https://sync-in.com/docs/setup-guide/docker/optional-services/collabora/

https://sync-in.com/docs/setup-guide/docker/optional-services/onlyoffice/ 


2. Procédure d'installation de Sync-In

Sync-In est distribué sous forme d'image Docker officielle, spécifiquement conçue pour un environnement Docker Compose utilisant l'extension x-include.

2.1. Prérequis techniques

**Composant** **Configuration minimale requise**
**Mémoire (RAM)** 1 GB
**Processeur (CPU)** 1 cœur / vCPU
**Espace disque** 2 GB
**Docker Engine** Version 24 ou supérieure
**Docker Compose** Version 2.20 ou supérieure

2.2. Récupération des fichiers de configuration

Pour obtenir les fichiers de déploiement officiels depuis le dépôt GitHub de Sync-In, exécutez l'une des commandes suivantes pour télécharger et extraire l'archive.

zip tar.gz
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
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

2.3. Configuration de la sécurité et des secrets

Naviguez dans le répertoire extrait (cd sync-in-docker). Avant de lancer le serveur, il est impératif de modifier les mots de passe par défaut.

Éditez le fichier environment.yaml pour remplacer les clés de chiffrement et les secrets des tokens par de longues chaînes de caractères aléatoires :

auth:
  encryptionKey: "VOTRE_CLE_DE_CHIFFREMENT_FORTE"
  token:
    access:
      secret: "VOTRE_SECRET_ACCES_FORT"
    refresh:
      secret: "VOTRE_SECRET_RAFRAICHISSEMENT_FORT"
mysql:
  url: mysql://root:VOTRE_MOT_DE_PASSE_SQL@mariadb:3306/sync_in

Pour rajouter collabora à votre application intégrez les parametres suivants à votre fichier environnement :

applications:
  files:
    dataPath: /app/data
    collabora:
      enabled: true
      externalServer: https://sync-in.domaine.fr
    onlyoffice:
      enabled: false
      secret: <votre secret>

Note : Veillez à intégrer les options pour collabora si il se trouve aussi derrière un reverse proxy.

Éditez ensuite le fichier docker-compose.yaml pour synchroniser le mot de passe de la base de données MariaDB :

services:
  mariadb:
    environment:
      MYSQL_ROOT_PASSWORD: "VOTRE_MOT_DE_PASSE_SQL"

2.4. Configuration du stockage des données

Par défaut, l'application utilise un volume Docker géré automatiquement. Pour un usage en production, il est fortement recommandé d'utiliser un point de montage local (bind mount) afin de faciliter les sauvegardes.

Modifiez la section volumes du service sync_in dans le fichier docker-compose.yaml :

services:
  sync_in:
    volumes:
      # Remplacer le volume par défaut par un chemin absolu sur l'hôte
      - /chemin/vers/votre/dossier/sync-in/data:/app/data

2.5. Démarrage du serveur

Pour initialiser le serveur avec vos propres identifiants administrateur dès le premier lancement, exécutez la commande suivante en remplaçant les valeurs :

INIT_ADMIN=true INIT_ADMIN_LOGIN='votre_utilisateur' INIT_ADMIN_PASSWORD='votre_mot_de_passe' docker compose up -d

3. Mise en place des fonctionnalités supplémentaires

Il est possible d'utiliser Sync-in sans Collabora ni OnlyOffice. Il est également possible d'installation que l'un des deux composants additionnels

Accéder à Sync-in via http://localhost ou http://127.0.0.1 rendra l'utilisation de Collabora ou OnlyOffice impossible ⇒ les documents ne seront ni affichés ni modifiable

3.1 OnlyOffice

Modifiez ./config/nginx/nginx.confdécommentez la ligne suivante à la fin du fichier :

include onlyoffice.conf;

Dans docker-compose.yaml, les lignes suivantes doivent être décommentées :

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

exécuter docker compose up -d && docker compose restart nginx sync_in pour appliquer les changements

 

3.2 Collabora

 

Activer le service

Dans ./config/nginx/nginx.conf, décommenter la ligne suivante : 

include collabora.conf;

Il faut faire de même dans le docker-compose.yaml, avec les lignes suivantes :

include:
  - ./config/nginx/docker-compose.nginx.yaml
  - ./config/collabora/docker-compose.collabora.yaml

Enfin, activer l'intégration dans environment.yaml :

applications:
  files:
    collabora:
      # enable integration
      enabled: true

En cas d'utilisation d'un HTTPS avec reverse proxy 

Il faut editer ./config/collabora/docker-compose.collabora.yaml file afin de paramétrer la terminaison SSL sur true :

docker compose up -d && docker compose restart nginx sync_in to apply the changes

services:
  collabora:
    environment:
      extra_params: >-
       --o:ssl.enable=false
        # Passez ssl.termination en true pour dire a Collabora de communiquer en websocket avec un certificat ssl
        --o:ssl.termination=true
        # Possibilité d'activer les logs pour Collabora avec le paramètre suivant
        # --o:logging.level=trace

exécuter docker compose up -d && docker compose restart nginx sync_in pour appliquer les changements