Installazione
Installazione del server Sync-in tramite NPM e l'interfaccia a riga di comando (CLI).
Il server è progettato per funzionare in ambienti basati su Linux (Debian, Ubuntu, AlmaLinux, Rocky Linux ecc.) e in sistemi basati su BSD (FreeBSD, macOS ecc.).
⚠️ Gli ambienti Windows non sono supportati ufficialmente.
📋 Prerequisiti
Prima di installare Sync-in, verifica che l'ambiente soddisfi i requisiti seguenti.
🟢 Node.js
Versione richiesta: 22.x – 24.x – Installa Node.js: nodejs.org/download
✅ Verifica la versione di Node.js installata:
node -v
✅ Verifica la versione di npm installata; installalo se non è già disponibile:
npm -v
🛢️ MariaDB
Versione richiesta: 11.x – Installa MariaDB: mariadb.org/download
✅ Verifica la versione installata:
mariadb --version
Il nome del programma può variare a seconda del sistema: utilizza mysql o mariadb, secondo necessità.
Verifica che:
- il servizio MariaDB sia in esecuzione;
- la porta 3306 sia aperta se il database è remoto;
- sia stato creato manualmente un database prima di avviare il server.
Creare un database locale con un utente dedicato
Connettiti a MariaDB come amministratore (o root):
mariadb -u root -p
Esegui quindi i comandi seguenti:
CREATE DATABASE sync_in CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci;
CREATE USER 'sync_in_user'@'localhost' IDENTIFIED BY 'sync_in_user_password';
GRANT ALL PRIVILEGES ON sync_in.* TO 'sync_in_user'@'localhost';
FLUSH PRIVILEGES;
Promemoria importante relativo a localhost in MariaDB
-
'sync_in_user'@'localhost'- ➡ Connessione consentita soltanto dal computer che ospita MariaDB, tramite socket Unix o connessione TCP locale.
-
'sync_in_user'@'%'- ➡ Connessione possibile da qualsiasi indirizzo IP.
- ⚠ Rischio maggiore: utilizzare soltanto in casi specifici, con una password robusta e un filtro degli indirizzi IP nel firewall.
-
'sync_in_user'@'IP'o'sync_in_user'@'hostname'- ➡ Connessione limitata a questo specifico indirizzo IP o nome host.
- ✅ Opzione consigliata per un accesso remoto sicuro.
Configurazione consigliata
[mysqld]
innodb_ft_cache_size = 16000000 # 16MB
max_allowed_packet = 1G
Dettagli:
- innodb_ft_cache_size: utilizzato da InnoDB durante la creazione o l'aggiornamento degli indici FULLTEXT. Valori più elevati velocizzano la creazione degli indici, aumentando però l'uso della RAM.
- max_allowed_packet: definisce la dimensione massima dei pacchetti scambiati tra il client e il server MariaDB, ad esempio in presenza di BLOB di grandi dimensioni o esportazioni SQL voluminose.
🚀 Installazione
1. Pacchetto NPM
Puoi installare il server Sync-in in una cartella dedicata mediante l'opzione --prefix di NPM:
Nota per l'installazione su FreeBSD
Prima di continuare, verifica che sia disponibile la libreria vips (versione ≥ 8.17.2). Se necessario, passa al repository latest di FreeBSD.
-
Verifica la versione disponibile:
pkg rquery '%v' vips -
Installa le dipendenze di compilazione:
pkg install -y python3 gmake pkgconf llvm -
Installa la libreria vips:
pkg install vips -
Installa il server Sync-in:
npm install @sync-in/server node-addon-api node-gyp --prefix ./sync-in
npm install @sync-in/server --prefix ./sync-in
Il pacchetto del server viene installato nella directory ./sync-in, con la struttura seguente:
./sync-in/node_modules/→ dipendenze installate./sync-in/package.json→ metadati del pacchetto
2. Configurazione
Il file di configurazione del server environment.yaml deve trovarsi in questa directory.
Per distribuire direttamente nell'ambiente una configurazione minima, puoi utilizzare la CLI sync-in-server:
cd ./sync-in && npx sync-in-server init
oppure utilizzare l'argomento --prefix:
npx --prefix ./sync-in sync-in-server init
Utilizza l'opzione --prefix se esegui i comandi della CLI da una directory diversa da sync-in, usata qui come esempio.
Modifica il file ./sync-in/environment.yaml:
auth:
encryptionKey: "changeEncryptionKeyWithStrongKey"
token:
access:
secret: "changeAccessWithStrongSecret"
refresh:
secret: "changeRefreshWithStrongSecret"
mysql:
# Usa il nome utente e la password definiti in precedenza
url: mysql://sync_in_user:sync_in_user_password@mariadb:3306/sync_in
Utilizza stringhe lunghe e generate casualmente per i segreti, così da garantire la massima sicurezza.
Racchiudi le password tra virgolette se contengono caratteri speciali.
Tutti i parametri di configurazione del server Sync-in possono essere definiti mediante variabili d'ambiente con il prefisso SYNCIN_; consulta la sezione dedicata.
3. Database
Dopo aver completato la configurazione, inizializza il database dalla directory sync-in:
npx sync-in-server migrate-db
Output previsto:
🗄️ Running database migrations...
Load configuration → environment.yaml
✅ Database migrations completed successfully.
4. Archiviazione dei dati
Per impostazione predefinita è configurato un percorso in cui vengono archiviati tutti i dati dell'applicazione.
Puoi personalizzarlo modificando il file environment.yaml, come nell'esempio seguente:
applications:
files:
dataPath: /home/sync-in/data
5. Creare un amministratore
npx sync-in-server create-user --role admin --login "userLogin" --password "userPassword"
Per creare un utente senza privilegi di amministratore, sostituisci --role admin con --role user.
Se non specifichi questi argomenti ed esegui semplicemente:
npx sync-in-server create-user
il server utilizzerà le credenziali predefinite dell'amministratore:
- Nome utente:
sync-in - Password:
sync-in
Importante: per motivi di sicurezza, è fortemente consigliato modificare queste credenziali al primo accesso.
6. Avviare il server
Puoi avviare il server in due modi:
-
In modalità collegata, mantenendo il processo collegato al terminale:
npx sync-in-server start -
In modalità scollegata (daemon):
npx sync-in-server start -dinformazioniIn modalità daemon, il processo non è più collegato alla console dell'utente.
I log vengono scritti automaticamente inlogs/server.log.
Il percorso del file di log può essere personalizzato inenvironment.yaml.