# Installation & Konfiguration

Es werden verschiedene Installation gezeigt und wie diese beim 1. Start konfiguriert werden.

# Docker

### Installation

Im folgenden wird die Installation mit einem Docker Container auf einem Raspberry Pi gezeigt. Es wird der offizielle Container der Entwickler verwendet.

Folgende Docker Compose Konfiguration kann dazu angepasst werden. Diese wird offiziell von den Entwicklern empfohlen: [https://github.com/syncthing/syncthing/blob/main/README-Docker.md](https://github.com/syncthing/syncthing/blob/main/README-Docker.md)

```yaml
services:
  syncthing:
    image: syncthing/syncthing
    container_name: syncthing
    hostname: syncthing #optional
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
    volumes:
      - /path/to/syncthing/config:/var/syncthing
    ports:
      - 8384:8384
      - 22000:22000/tcp
      - 22000:22000/udp
      - 21027:21027/udp
    restart: unless-stopped
```

<p class="callout warning">Durch die Anpassung des Dienst-Benutzers (`PUID=1000`), kann dieser natürlich nicht mehr auf die bereits vorhandenen Dateien zugreifen. Deswegen müssen die Berechtigungen/Eigentümer der Verzeichnisse, die in der Docker Config angegeben sind, geändert werden.  
Dazu kann der folgende Befehl angepasst und verwendet werden: `sudo chown -r 1000 ./bookstack_app_data`</p>

Außerdem ist das Volume `/path/to/syncthing/config` anzupassen, sodass ein existierender Order auf dem Raspberry Pi verwendet wird.

{{@48#bkmrk-Compose-Run}}

### Konfiguration

Nach wenigen Sekunden ist der Container gestartet und Syncthing kann über eine Weboberfläche angesteuert werden. Diese kann von jedem beliebigen Gerät im Heimnetzwerk aufgerufen werden: [http://Raspberry-IP:8384](http://Raspberry-IP:8384)

[![grafik.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/dN6grafik.png)](https://jaeckel.one/uploads/images/gallery/2024-03/dN6grafik.png)

Als erstes muss entschieden werden, ob anonyme Nutzungsberichte versendet werden dürfen. Danach öffnet sich das Dashboard.

[![grafik.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/pWHgrafik.png)](https://jaeckel.one/uploads/images/gallery/2024-03/pWHgrafik.png)

Hier sehen wir nun einige wichtige Hinweise, denn da der Docker Container seine Dienste publiziert, können alle Einstellungen angepasst werden. Es sollte also dringendst ein User mit einem Passwort vergeben werden. Dazu einfach auf die Schaltfläche *Einstellungen* klicken. Daraufhin öffnet sich ein Menü, in dem dann auf den Reiter *GUI* zu wechseln ist, um einen User und ein Passwort anzugeben.

[![grafik.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/vKLgrafik.png)](https://jaeckel.one/uploads/images/gallery/2024-03/vKLgrafik.png)

Sobald auf Speichern geklickt wird, ist der Zugang angelegt und es erfolgt eine Weiterleitung auf die Login Seite.

[![grafik.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/R0Jgrafik.png)](https://jaeckel.one/uploads/images/gallery/2024-03/R0Jgrafik.png)

Zum Schluss noch einmal die Logindaten eingeben und anschließend ist wieder das Dashboard zu sehen, doch diesmal ohne Warnhinweise. Nun ist die Erstkonfiguration abgeschlossen und es können Ordner hinzugefügt und geteilt oder neue Geräte hinzugefügt werden.

# Debian/Ubuntu basierte Distributionen

Für Debian oder Ubuntu basierte Distributionen stehen mehrere Clients zur Auswahl.

<details id="bkmrk-docker-%7B%7B%40102%7D%7D"><summary>Docker</summary>

{{@102}}

</details><details id="bkmrk-cli-%2B-web-%C2%A0"><summary>CLI + Web</summary>

Am einfachsten geht es über die folgenden beiden Befehle: *sudo apt update &amp;&amp; sudo apt install -y syncthing*

Oder natürlich über den installierten grafischen Paketmanager, einfach nach Syncthing suchen und installieren.

Anschließend am besten den Dienst von Syncthing für den aktuellen User aktivieren und starten:

```bash
systemctl --user enable syncthing.service
systemctl --user start syncthing.service
```

Danach ist auf dem lokalen Gerät die Weboberfläche erreichbar (im Gegensatz zur Docker Installation nicht für andere Geräte im Heimnetzwerk): [http://localhost:8080](http://localhost:8080)

Die anschließende Konfiguration erfolgt genauso wie bei Docker.

</details><details id="bkmrk-gui-%2B-web-%C2%A0"><summary>GUI + Web</summary>

Es gibt mehrere GUIs, die von den Entwicklern empfohlene ist: *Syncthing GTK*

Diese steht z. B. auch als Flathub Paket zur Installation bereit.

Sobald *Syncthing GTK* installiert ist, kann es auch direkt gestartet werden.

Nach dem Start wird automatisch ein Setup Dialog geöffnet, der durch die ersten Konfigurationsschritte leitet.

[![grafik.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/phografik.png)](https://jaeckel.one/uploads/images/gallery/2024-03/phografik.png)

Nach einem Klick auf *Weiter* öffnet sich die Konfiguration des WebUI. Hier empfiehlt sich die bereits vorausgewählte Variante mit *localhost*, sodass das WebUI nur vom aktuellen Host aus geöffnet werden kann.

[![grafik.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/Sgsgrafik.png)](https://jaeckel.one/uploads/images/gallery/2024-03/Sgsgrafik.png)

Das war es dann auch schon, nach dem Klick auf Schließen, wird die UI des Clients geöffnet.

[![grafik.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/iCBgrafik.png)](https://jaeckel.one/uploads/images/gallery/2024-03/iCBgrafik.png)

Auch im Client wird wieder gefragt, ob anonyme Daten übermittelt werden dürfen. Anschließend können wie in der WebUI Ordner hinzugefügt und synchronisiert und Geräte hinzugefügt werden.

[![grafik.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/GrHgrafik.png)](https://jaeckel.one/uploads/images/gallery/2024-03/GrHgrafik.png)

</details><details id="bkmrk-autostart-gui-%7B%7B%40112"><summary>Autostart GUI</summary>

{{@112}}</details>

# Windows/Android/macOS

Auch für Windows, Android und macOS gibt es Installationsdateien: [https://syncthing.net/downloads/](https://syncthing.net/downloads/)

Da die Einrichtung ähnlich wie bei Linux abläuft, wird diese hier nicht nochmal erklärt.

<p class="callout info">Es gibt keine offizielle App für iOS. Die Entwickler empfinden Apples mobiles Betriebssystem als zu nervig, da keine Dienste als Hintergrundprozesse laufen dürfen, somit funktioniert die Synchronisation dann nicht zuverlässig, nur beim Öffnen der App. Eine inoffizielle empfohlene Lösung ist: [App Store - Möbius Sync](https://apps.apple.com/us/app/m%C3%B6bius-sync/id1539203216) (kostenpflichtig).</p>

<p class="callout info">Bei der Windows Installation gibt es eine Besonderheit, deswegen wird diese folgend erklärt.</p>

<details id="bkmrk-windows-installation"><summary>Windows Installation</summary>

Unter Windows wird ein Dienst installiert, keine UI. Stattdessen gibt es nur eine Weboberfläche. Außerdem bietet die Installation unter Windows eine Installation als Admin oder User an. Aufgrund der Berechtigungen, die synchronisierten Ordner werden bei der Admin-Installation werden als Admin abgelegt und sind nur für diesen nutzbar. Deswegen wäre die User-Installation einfacher, da keine Berechtigungen angepasst werden müssen. Also beim Ausühren des Installers bitte *Install for current user only* auswählen.

[![1.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/1.png)](https://jaeckel.one/uploads/images/gallery/2024-03/1.png)

Anschließend wird erstmal die Lizenzinformation angezeigt und mit *Next* abgesegnet.

[![2.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/2.png)](https://jaeckel.one/uploads/images/gallery/2024-03/2.png)

Danach ist das Installationsverzeichnis auszuwählen (hat nichts mit der später angelegten Verzeichnissen für die Synchronisation zu tun). Kann ruhig unverändert bleiben.

[![3.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/3.png)](https://jaeckel.one/uploads/images/gallery/2024-03/3.png)

Standardmäßg wird ein Eintrag im Startmenü angeboten, kann ruhig so gelassen werden.

[![4.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/4.png)](https://jaeckel.one/uploads/images/gallery/2024-03/4.png)

Nun wird der Webserver konfiguriert, bei Bedarf kann z. B. der Port angepasst werden. Die *listen address 127.0.0.1* also *localhost* sollte so gelassen werden, sonst können andere Geräte im Heimnetzwerk auf die WebUI ebenfalls zugreifen, so ist dies nur vom Windows Rechner selbst aus möglich.

[![5.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/5.png)](https://jaeckel.one/uploads/images/gallery/2024-03/5.png)

Auch hier kann ruhig alles auf Standard gelassen werden, damit Syncthing auch permanent läuft und die Daten synchronisiert.

[![6.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/6.png)](https://jaeckel.one/uploads/images/gallery/2024-03/6.png)

Danach wird noch eine Übersicht mit allen konfigurierten Einstellungen angezeigt und mit einem Klick auf *Install* wird alles installiert und eingerichtet.

[![7.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/7.png)](https://jaeckel.one/uploads/images/gallery/2024-03/7.png)

Während der Konfiguration wird das Hinzufügen von Firewall Regeln angeboten, damit der Client auch im lokalen LAN ordnungsgemäß und mit Direktverbindungen (schneller) funktioniert, sollten diese hinzugefügt werden.

<p class="callout warning">Für die automatische Konfiguration der Firewall Regeln sind Adminrechte notwendig, diese werden im Dialog abgefragt, falls der ausführende Benutzer kein Admin ist.</p>

[![8.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/8.png)](https://jaeckel.one/uploads/images/gallery/2024-03/8.png)

Zum Schluss wird die Installation abgeschlossen und den Haken gesetzt lassen, dann wird direkt die Weboberfläche geöffnet, sodass mit der Einstellung der zu synchronisierenden Geräte und Ordner begonnen werden kann.

[![9.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/9.png)](https://jaeckel.one/uploads/images/gallery/2024-03/9.png)

</details>