Installazione con Docker Compose
Installazione di Sync-in con Docker Compose.
Sync-in viene distribuito come immagine Docker ufficiale, disponibile su Docker Hub: https://hub.docker.com/r/syncin/server
Questa immagine è progettata specificamente per la distribuzione e l'esecuzione in un ambiente Docker Compose.
📋 Prerequisiti
⚙️ Requisiti hardware minimi
- RAM: 1 GB
- CPU: 1 core/vCPU
- Spazio su disco: 2 GB
🐳 Docker Compose
Questa configurazione si basa su file Docker Compose che utilizzano l'estensione x-include.
Sono necessari:
- Docker Engine versione 24 o successiva
- Docker Compose versione 2.20 o successiva
✅ È possibile verificare le versioni installate con:
docker --version
docker compose version
🔗 Se Docker non è installato, seguire la guida ufficiale all'installazione di Docker.
📦 File di configurazione
Per scaricare i file Docker Compose di Sync-in (sync-in-docker) da https://github.com/Sync-in/server/releases, utilizzare uno dei metodi seguenti:
- Con
curleunzip: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 - Oppure con
curletar: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
Nella directory sync-in-docker si deve ottenere la struttura seguente:
├── config
│ ├── collabora
│ │ └── docker-compose.collabora.yaml
│ ├── drawio
│ │ └── docker-compose.drawio.yaml
│ ├── nginx
│ │ ├── collabora.conf
│ │ ├── docker-compose.nginx.yaml
│ │ ├── drawio.conf
│ │ ├── nginx.conf
│ │ ├── onlyoffice.conf
│ │ └── eurooffice.conf
│ ├── onlyoffice
│ │ └── docker-compose.onlyoffice.yaml
│ ├── eurooffice
│ │ └── docker-compose.eurooffice.yaml
│ └── sync-in-desktop-releases
│ ├── docker-compose.sync-in-desktop-releases.yaml
│ └── update.sh
├── docker-compose.yaml
└── environment.yaml
È possibile verificare la struttura e il contenuto nel repository GitHub.
🚀 Avvio rapido
1. Configurare i segreti obbligatori
Accedere alla directory Docker Compose:
cd sync-in-docker
Prima di avviare il server, definire i segreti obbligatori per i token di accesso e di rinnovo e configurare una chiave di cifratura dedicata.
Modificare il file environment.yaml:
server:
# Facoltativo per ora; obbligatorio nella prossima versione principale
publicUrl: 'https://sync-in.domain.com'
mysql:
# Utilizzare la password di root definita in docker-compose.yaml
url: 'mysql://root:MySQLRootPassword@mariadb:3306/sync_in'
auth:
encryptionKey: 'REPLACE_WITH_LONG_RANDOM_ENCRYPTION_KEY'
token:
access:
secret: 'REPLACE_WITH_LONG_RANDOM_ACCESS_SECRET'
refresh:
secret: 'REPLACE_WITH_LONG_RANDOM_REFRESH_SECRET'
publicUrl deve corrispondere all'indirizzo esposto agli utenti, includendo lo schema e l'eventuale porta non standard. Resta facoltativo fino alla prossima versione principale.
L'URL deve essere raggiungibile dai browser degli utenti e, per gli editor per ufficio che comunicano con Sync-in, dai relativi container. Quando publicUrl viene omesso, gli editor utilizzano l'origine della richiesta come soluzione di compatibilità. Per motivi di sicurezza, diventerà obbligatorio nella prossima versione principale: gli endpoint degli editor verranno così creati da un'origine attendibile controllata dall'amministratore anziché dalle intestazioni della richiesta.
Modificare quindi il file docker-compose.yaml per verificare che la password MySQL corrisponda:
services:
mariadb:
environment:
MYSQL_ROOT_PASSWORD: 'MySQLRootPassword'
Per garantire la massima sicurezza, utilizzare stringhe lunghe e generate casualmente per i segreti.
Nei file YAML, utilizzare virgolette singole per le password che contengono caratteri speciali.
È possibile utilizzare variabili d'ambiente per configurare i segreti definiti in precedenza. Per ulteriori dettagli, consultare la sezione Variabili d'ambiente.
2. Configurare l'archiviazione dei dati
I dati di Sync-in e MariaDB sono già memorizzati in volumi Docker denominati. Non è necessaria alcuna modifica per un'installazione di prova. In produzione, è possibile montare directory dell'host per controllare direttamente la posizione di archiviazione dei dati e le relative modalità di backup. Gli esempi seguenti mostrano come sostituire ciascun volume con una directory dell'host.
Sync-in
Il volume data, montato in /app/data, contiene i file gestiti da Sync-in.
services:
sync_in:
volumes:
# Volume Docker predefinito
# - data:/app/data
# Directory dell'host
- '/home/sync-in-data:/app/data'
L'entrypoint Docker imposta sempre applications.files.dataPath su /app/data. Non aggiungere dataPath a environment.yaml e non tentare di sostituirlo con SYNCIN_APPLICATIONS_FILES_DATAPATH: ogni valore fornito al container viene sostituito. Per scegliere dove archiviare i dati, configurare esclusivamente l'origine del volume montato in /app/data.
MariaDB
Il volume mariadb_data, montato in /var/lib/mysql, contiene i dati del database MariaDB.
services:
mariadb:
volumes:
# Volume Docker predefinito
# - mariadb_data:/var/lib/mysql
# Directory dell'host
- '/home/sync-in-mariadb:/var/lib/mysql'
3. Avviare il server Sync-in
Per impostare le proprie credenziali di amministratore al primo avvio, utilizzare:
INIT_ADMIN=true INIT_ADMIN_LOGIN='user' INIT_ADMIN_PASSWORD='password' docker compose up -d
Sostituire user e password con le credenziali desiderate.
Per esempi relativi ai file Compose e dettagli sulla gestione delle virgolette, consultare Variabili e segreti.
Se queste variabili non vengono impostate e si esegue semplicemente:
INIT_ADMIN=true docker compose up -d
Il server utilizzerà le credenziali di amministratore predefinite:
- Nome utente:
sync-in - Password:
sync-in
Importante: per motivi di sicurezza, si consiglia vivamente di modificare queste credenziali al primo accesso.
Per verificare lo stato dei container: docker compose ps
4. Accedere all'interfaccia web
Dopo l'avvio del server, aprire nel browser l'indirizzo seguente:
http://localhost:8080
Accedere con le credenziali di amministratore definite al passaggio 3.
Per esporre Sync-in tramite il servizio Nginx incluso sulle porte HTTP/HTTPS standard, consultare la configurazione del reverse proxy Docker.