Syncthing

Server-side (Linux)

1. Create systemd service file: /etc/systemd/system/syncthing.service

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
 
[Service]
User=wolfo
ExecStart=/usr/bin/syncthing -no-browser -gui-address="127.0.0.1:8384" -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
 
[Install]
WantedBy=multi-user.target

systemctl daemon-reload

systemctl start syncthing

systemctl enable syncthing

2. nginx reverse proxy setup:

        location /syncthing/ {
                proxy_pass              http://localhost:8384/;
                proxy_set_header        Host $http_host;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-Proto $scheme;
                proxy_read_timeout      600s;
                proxy_send_timeout      600s;
        }

3. Settings (in the web interface)

4. Add Remote Device (use Device ID or wait for automatic discovery)

5. Add Folder to sync and share with other remote devices

macOS client setup

1. brew install syncthing

2. brew services start syncthing

3. Access interface at http://localhost:8384/