Zum Hauptinhalt springen

Installation

Installation des Sync-in-Servers über NPM und die Befehlszeilenschnittstelle (CLI).

Der Server ist für die Ausführung auf 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.x – 24.x – 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
Info

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;
Warnung

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 auf Kosten von mehr RAM Nutzung.
  • max_allowed_packet: Legt die maximale Paketgröße fest, die zwischen dem MariaDB-Client und dem Server ausgetauscht wird. Bei großen BLOBs oder massivem SQL Exporte.

🚀 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
Tipp

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:

auth:
encryptionKey: "changeEncryptionKeyWithStrongKey"
token:
access:
secret: "changeAccessWithStrongSecret"
refresh:
secret: "changeRefreshWithStrongSecret"
mysql:
# Use the username and password you defined
url: mysql://sync_in_user:sync_in_user_password@mariadb:3306/sync_in
Sicherheit

Verwenden Sie lange und zufällig generierte Zeichenfolgen für Ihre Geheimnisse, um maximale Sicherheit zu gewährleisten.

Info

Vergessen Sie nicht, Ihre Passwörter in Anführungszeichen zu setzen, wenn sie Sonderzeichen enthalten.

Tipp

Alle 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"
Tipp

Um einen Benutzer ohne Administratorrechte zu erstellen, ersetzen Sie --role admin durch --role user.

Wenn Sie diese Argumente nicht festlegen und einfach Folgendes ausführen:

npx sync-in-server create-user

Der Server verwendet die Standard-Administratoranmeldeinformationen:

  • Anmeldung: sync-in
  • Passwort: sync-in
Warnung

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 angeschlossenen Modus (der Prozess bleibt mit Ihrem Terminal verbunden):

    npx sync-in-server start
  • Im getrennten (Daemon-)Modus:

    npx sync-in-server start -d
    Info

    Im Daemon-Modus ist der Prozess nicht mehr an die Benutzerkonsole gebunden.
    Protokolle werden automatisch in logs/server.log geschrieben.
    Der Protokolldateipfad kann in environment.yaml angepasst werden.