# Syncthing
## Descrizione [Sito ufficiale](https://syncthing.net/) - [Repo (Github)](https://github.com/linuxserver/docker-syncthing) - [Docs](https://docs.linuxserver.io/images/docker-syncthing) Syncthing è un dropbox ma decentralizzato e privato: - Solo interfaccia web multilingua e compatibile anche con tablet/smartphone - Basato su un [protocollo](https://docs.syncthing.net/specs/bep-v1.html#bep-v1) decentralizzato, crittografato e open source - Esistono [client](https://syncthing.net/downloads/) sia ufficiali che di terze parti ## Struttura file e cartelle ``` /home/ └── docker/ └── syncthing/ ├── config/ ├── data/ ├── .env └── docker-compose.yml ``` * `config/` - cartella dove risiedono i dati che servono a syncthing * `data/` - cartella dove risiedono e vengono condivisi i dati presenti * `.env` - file contenenti le variabili environment per il docker-compose * `docker-compose.yml` - file usato per creare il container **N.B. Tutti i file e le cartelle devono essere creati a mano.** ## Esempi Semplice esempio per iniziare ad usare subito il container ### docker-compose `docker-compose.yml` ```yml version: "3.5" services: syncthing: container_name: linuxserver-syncthing image: ghcr.io/linuxserver/syncthing security_opt: - no-new-privileges:true networks: - custom-bridge restart: unless-stopped ports: - ${SYNCTHING_WEBUI_PORT:-8384}:8384 - ${SYNCTHING_LST_TCP:-22000}:22000 - ${SYNCTHING_LST_UDP:-22000}/udp:22000/udp - ${SYNCTHING_PORT_DSC:-21027}/udp:21027/udp env_file: .env sysctls: - net.core.rmem_max=2097152 volumes: - ${SYNCTHING_CONFIG:-/home/docker/syncthing/config}:/config - ${SYNCTHING_DATA:-/home/docker/syncthing/data}:/data networks: custom-bridge: name: custom-bridge driver: bridge ``` `.env` ```bash # Generale SYNCTHING_CONFIG=/home/docker/syncthing/config SYNCTHING_DATA=/home/docker/syncthing/data SYNCTHING_WEBUI_PORT=8384 SYNCTHING_LST_TCP=22000 SYNCTHING_LST_UDP=22000 SYNCTHING_PORT_DSC=21027 # Syncthing TZ=Europe/Amsterdam ``` # Reverse proxy Ancora non ho previsto l'uso di un reverse proxy (Vedi [Todo](#Todo)) # Aggiornamento ### Automatico Usando [watchtower](../watchtower) il container si aggiorna automaticamente ### Manuale 1. `docker-compose pull` 2. `docker-compose up -d` 3. `docker image prune` ## Backup e ripristino ### Backup Usate [borg](../borg_backup) per fare i backup giornalieri dell'intera cartella `syncthing` ### Ripristino Per una maggiore spiegazione sui passaggi da fare, controllate [qua](../borg_backup#user-content-controllare-la-cartella-dei-backup) * fermare il container `docker-compose down` * cancellare l'intera cartella `syncthing` * dal backup copiare la cartella `syncthing` * far ripartire il container `docker-compose up -d` ## Todo Implementare: - reverse proxy: **[caddy](https://caddyserver.com/)** o **[traefik](https://doc.traefik.io/traefik/)**