Installation mit Node Package Manager
Installation des Sync-in-Servers über NPM und die Befehlszeilenschnittstelle (CLI).
Der Server ist für die Ausführung in Linux-basierten Umgebungen (Debian, Ubuntu, AlmaLinux, Rocky Linux usw.) sowie auf BSD-basierten Systemen (FreeBSD, macOS usw.) konzipiert.
⚠️ Windows-Umgebungen werden nicht offiziell unterstützt.
📋 Voraussetzungen
Stellen Sie vor der Installation von Sync-in sicher, dass Ihre Umgebung die folgenden Anforderungen erfüllt:
🟢 Node.js
Erforderliche Version: 22.12.0 oder höher – Installieren Sie Node.js: nodejs.org/download
✅ Überprüfen Sie die installierte Node.js-Version:
node -v
✅ Überprüfen Sie die installierte npm-Version (installieren Sie sie, falls sie noch nicht verfügbar ist):
npm -v
🛢️ MariaDB
Erforderliche Version: 11.x – MariaDB installieren: mariadb.org/download
✅ Überprüfen Sie die installierte Version:
mariadb --version
Die Binärdatei kann je nach System variieren: Verwenden Sie je nach Bedarf mysql oder mariadb.
Stellen Sie sicher, dass:
- Der MariaDB-Dienst läuft
- Port 3306 ist geöffnet, wenn die Datenbank remote ist
- Vor dem Start des Servers wurde manuell eine Datenbank erstellt
Erstellen Sie eine lokale Datenbank mit einem dedizierten Benutzer
Stellen Sie als Administrator (oder Root) eine Verbindung zu MariaDB her:
mariadb -u root -p
Führen Sie dann die folgenden Befehle aus:
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;
Wichtige Erinnerung an localhost in MariaDB
-
'sync_in_user'@'localhost'- ➡ Verbindung erlaubt nur von der Maschine, die MariaDB hostet (über Unix-Socket oder lokale TCP-Verbindung).
-
'sync_in_user'@'%'- ➡ Verbindung von jeder IP-Adresse möglich.
- ⚠ Höheres Risiko: sollte nur in bestimmten Fällen verwendet werden, mit einem sicheren Passwort und IP-Filterung auf Firewall-Ebene.
-
'sync_in_user'@'IP'oder'sync_in_user'@'hostname'- ➡ Verbindung beschränkt auf diese spezifische IP-Adresse oder Hostnamen.
- ✅ Empfohlene Option für sicheren Fernzugriff.
Tuning-Empfehlung
[mysqld]
innodb_ft_cache_size = 16000000 # 16MB
max_allowed_packet = 1G
Einzelheiten:
- innodb_ft_cache_size: Wird von InnoDB beim Erstellen oder Aktualisieren von FULLTEXT-Indizes verwendet. Höhere Werte beschleunigen die Indexerstellung, erhöhen jedoch den Arbeitsspeicherverbrauch.
- max_allowed_packet: Legt die maximale Paketgröße fest, die zwischen dem MariaDB-Client und dem Server ausgetauscht wird. Dies ist bei großen BLOBs oder umfangreichen SQL-Exporten relevant.
🚀 Installation
1. NPM-Paket
Sie können den Sync-in-Server mit der NPM-Option --prefix in einem dedizierten Ordner installieren:
FreeBSD-Installationshinweis
Stellen Sie sicher, dass die vips-Bibliothek (Version ≥ 8.17.2) verfügbar ist, bevor Sie fortfahren. Wechseln Sie bei Bedarf zum neuesten FreeBSD-Repository.
-
Befehl zum Überprüfen der verfügbaren Version:
pkg rquery '%v' vips -
Build-Abhängigkeiten installieren:
pkg install -y python3 gmake pkgconf llvm -
VIPs-Bibliothek installieren:
pkg install vips -
Sync-in-Server installieren:
npm install @sync-in/server node-addon-api node-gyp --prefix ./sync-in
npm install @sync-in/server --prefix ./sync-in
Dadurch wird das Serverpaket im Verzeichnis ./sync-in mit der folgenden Struktur installiert:
./sync-in/node_modules/→ installierte Abhängigkeiten./sync-in/package.json→ Paketmetadaten
2. Konfiguration
Die Serverkonfigurationsdatei environment.yaml muss sich in diesem Verzeichnis befinden.
Um eine minimale Konfiguration direkt in der Umgebung bereitzustellen, können Sie die CLI sync-in-server verwenden:
cd ./sync-in && npx sync-in-server init
oder mit dem Argument --prefix:
npx --prefix ./sync-in sync-in-server init
Verwenden Sie die Option --prefix, wenn Sie CLI-Befehle aus einem anderen Verzeichnis als sync-in ausführen (hier als Beispiel verwendet).
Bearbeiten Sie die Datei ./sync-in/environment.yaml:
server:
# Derzeit optional; in der nächsten Hauptversion erforderlich
publicUrl: 'https://sync-in.domain.com'
mysql:
# Den festgelegten Benutzernamen und das Passwort verwenden
url: 'mysql://sync_in_user:sync_in_user_password@localhost: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 muss mit der Adresse übereinstimmen, die Benutzern vom Server oder Reverse-Proxy angezeigt wird, einschließlich des Schemas und aller nicht standardmäßigen Ports. Die Angabe bleibt bis zur nächsten Hauptversion optional. Die URL muss über die Browser der Benutzer und für Office-Editoren, die mit Sync-in kommunizieren, über deren Dienste erreichbar sein. Wenn publicUrl weggelassen wird, verwenden Editoren den Ursprung der Anfrage als Kompatibilitätsfallback. Aus Sicherheitsgründen wird die Option in der nächsten Hauptversion erforderlich sein, sodass Editor-Endpunkte aus einem vertrauenswürdigen Ursprung erstellt werden, der vom Administrator kontrolliert wird, und nicht aus Anfrage-Headern.
Verwenden Sie lange und zufällig generierte Zeichenfolgen für Ihre Geheimnisse, um maximale Sicherheit zu gewährleisten.
Vergessen Sie nicht, Ihre Passwörter in einfache Anführungszeichen zu setzen, wenn sie Sonderzeichen enthalten.
Skalare Sync-in-Server-Konfigurationsparameter können mithilfe von Umgebungsvariablen mit dem Präfix SYNCIN_ festgelegt werden, siehe entsprechenden Abschnitt.
3. Datenbank
Initialisieren Sie im Verzeichnis sync-in nach der Konfiguration die Datenbank:
npx sync-in-server migrate-db
Erwartete Ausgabe:
🗄️ Running database migrations...
Load configuration → environment.yaml
✅ Database migrations completed successfully.
4. Datenspeicherung
Zum Speichern aller Anwendungsdaten ist ein Standardpfad konfiguriert.
Dieser Pfad kann durch Bearbeiten der Datei environment.yaml angepasst werden, wie unten gezeigt:
applications:
files:
dataPath: '/home/sync-in-data'
5. Erstellen Sie einen Administrator
npx sync-in-server create-user --role admin --login "userLogin" --password "userPassword"
Um einen Benutzer ohne Administratorrechte zu erstellen, ersetzen Sie --role admin durch --role user.
Beim Erstellen des Kontos stehen auch optionale Flags zur Verfügung: --email, --first-name, --last-name, --permissions und --storage-quota. Verwenden Sie --permissions all, um alle Benutzerberechtigungen zu erteilen. --storage-quota wird in Bytes ausgedrückt; verwenden Sie 0 für unbegrenzten Speicherplatz.
Wenn Sie diese Argumente nicht festlegen und einfach Folgendes ausführen:
npx sync-in-server create-user
Der Server verwendet die Standard-Administratoranmeldeinformationen:
- Login:
sync-in - Passwort:
sync-in
Wichtig: Aus Sicherheitsgründen wird dringend empfohlen, diese Anmeldeinformationen bei der ersten Anmeldung zu ändern.
6. Starten des Servers
Sie können den Server auf zwei Arten starten:
-
Im Vordergrundmodus (der Prozess bleibt mit Ihrem Terminal verbunden):
npx sync-in-server start -
Im Hintergrundmodus (Daemon):
npx sync-in-server start -dInfoIm Daemon-Modus ist der Prozess nicht mehr an das Terminal gebunden.
Protokolle werden automatisch inlogs/server.loggeschrieben.
Der Protokolldateipfad kann inenvironment.yamlangepasst werden.