Tropic Host

Syncthing: o que é e como configurar a sincronização de arquivos em um VPS

7 min de leitura
Tropic
Syncthing: o que é e como configurar a sincronização de arquivos em um VPS

Syncthing: sincronização de arquivos entre dispositivos sem depender da nuvem de terceiros

De manhã, você altera um documento no notebook e o desliga. À noite, abre o computador de casa e a versão mais recente já está lá. O arquivo não passou pelo Google Drive nem pelo Dropbox: ele foi recebido pelo seu próprio nó do Syncthing.

O Syncthing sincroniza diretamente as pastas selecionadas entre dispositivos confiáveis, enquanto o usuário mantém o controle sobre o local de armazenamento. Um servidor central não é obrigatório.

No entanto, se dois computadores raramente ficam online ao mesmo tempo, torna-se difícil trocar as alterações. Um VPS sempre ligado resolve esse problema: recebe os arquivos de um dispositivo e depois os transmite para outro.

É importante entender sua finalidade. O Syncthing não é uma unidade de rede nem um gerenciador de arquivos no navegador, mas uma ferramenta para replicar automaticamente as pastas selecionadas.

Syncthing em cinco etapas

A configuração mínima é a seguinte:

  1. Instalar o Syncthing nos computadores necessários.
  2. Executar outra instância do Syncthing em um VPS.
  3. Abrir o painel do servidor por um túnel SSH.
  4. Trocar os identificadores dos dispositivos e confirmar a conexão.
  5. Adicionar uma pasta compartilhada, escolher o modo de sincronização e ativar o histórico de versões.

O que é o Syncthing e como ele funciona

O Syncthing é um programa gratuito e de código aberto para sincronização contínua de arquivos. Ele funciona no Windows, macOS, Linux e em outros sistemas operacionais para computadores e servidores.

Cada instalação recebe um Device ID exclusivo, que é um identificador criptográfico. Para que dois nós comecem a trocar dados, eles precisam ser adicionados um ao outro e receber autorização explícita para acessar uma pasta específica. Não existe uma conta central do Syncthing na qual os dispositivos e arquivos sejam armazenados.

Quando um arquivo é alterado, o Syncthing o divide em blocos, compara as somas de verificação e transfere apenas as partes que faltam. Por isso, uma pequena alteração dentro de um arquivo grande nem sempre exige o reenvio do arquivo inteiro.

Os serviços de descoberta ajudam os dispositivos a se encontrar, mas não armazenam arquivos. Se uma conexão direta não for possível, o tráfego criptografado pode passar por um retransmissor mais lento.

O que muda ao usar um VPS

Sem um servidor, o notebook pode sincronizar diretamente com o computador de casa, mas os dois dispositivos precisam ficar online ao mesmo tempo, mesmo que por pouco tempo. Um VPS transforma a configuração em um ponto de troca sempre disponível.

Por exemplo, de manhã o notebook envia um projeto ao servidor e é desligado. À noite, o computador de casa recebe a nova versão pelo VPS.

O Syncthing é adequado para documentos, notas do Obsidian, código-fonte, fotos e pastas da família. É melhor excluir caches, node_modules e resultados de compilação com .stignore. Bancos de dados em execução e imagens de máquinas virtuais não devem ser sincronizados.

O VPS também cria uma cópia dos dados fora de casa. No entanto, ela só se torna um backup completo quando é combinada com versionamento e um arquivo de backup separado: uma exclusão acidental também pode se propagar para todos os dispositivos.

Syncthing ou Nextcloud: qual escolher

As duas ferramentas são frequentemente comparadas, embora resolvam problemas diferentes.

CritérioSyncthingNextcloud
ModeloAs pastas são copiadas entre os dispositivosOs arquivos ficam em um servidor central
Servidor necessárioNão, o VPS é opcionalSim
Acesso aos arquivos pelo navegadorNão há uma unidade web completaSim
Links públicosNãoSim
Edição colaborativaNão está disponívelPode ser adicionada
Melhor cenárioManter as mesmas pastas nos próprios dispositivosCriar uma nuvem pessoal ou para uma equipe

Escolha o Syncthing para uma sincronização discreta em segundo plano. O Nextcloud é mais adequado quando você precisa de acesso web, links de compartilhamento, contas de usuário, calendário e colaboração.

Como instalar o Syncthing em um VPS com Docker Compose

As etapas abaixo são destinadas a um VPS com Ubuntu 24.04. O painel continuará vinculado ao endereço local do servidor, e o acesso será feito por um túnel SSH.

1. Instale o Docker

sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker

2. Crie o diretório e o arquivo Compose

sudo mkdir -p /opt/syncthing/data
sudo chown -R 1000:1000 /opt/syncthing/data
cd /opt/syncthing
sudo nano compose.yaml

Cole o conteúdo abaixo:

services:
  syncthing:
    image: syncthing/syncthing:latest
    container_name: syncthing
    hostname: syncthing-vps
    environment:
      - PUID=1000
      - PGID=1000
      - STGUIADDRESS=
    volumes:
      - ./data:/var/syncthing
    network_mode: host
    restart: unless-stopped

Esta configuração usa a imagem oficial do Syncthing. O modo de rede host facilita as conexões diretas, enquanto o valor vazio de STGUIADDRESS mantém o painel em 127.0.0.1:8384.

Inicie o contêiner:

sudo docker compose up -d
sudo docker compose ps

3. Permita as conexões

Primeiro, permita o SSH para não perder o acesso ao servidor:

sudo ufw allow OpenSSH
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw enable

22000/TCP é usado pelo protocolo principal de sincronização, enquanto 22000/UDP é usado pelo QUIC. Não é necessário abrir a porta 8384 do painel. A porta de descoberta local 21027/UDP normalmente também não é necessária em um VPS público.

4. Abra o painel por SSH

No seu computador, execute:

ssh -L 9999:127.0.0.1:8384 root@SERVER_IP

Sem fechar o terminal, abra:

http://127.0.0.1:9999

No painel, acesse Actions → Settings → GUI e defina um nome de usuário e uma senha. Se depois você quiser acessar o painel por um domínio, coloque-o atrás de um proxy reverso com HTTPS e mantenha a autenticação ativada.

5. Adicione os dispositivos e a pasta

Instale o Syncthing no computador e siga estas etapas:

  1. No computador e no VPS, selecione Actions → Show ID.
  2. Adicione o Device ID de cada nó ao outro dispositivo.
  3. No computador, clique em Add Folder, selecione um diretório e autorize o acesso do servidor.
  4. No VPS, aceite a pasta e defina um caminho, como /var/syncthing/Files.

Nos computadores, mantenha Send & Receive para a sincronização bidirecional. No VPS, costuma ser conveniente escolher Receive Only: o servidor continua recebendo e transmitindo alterações entre os nós, mas modificações locais acidentais feitas diretamente no VPS não se espalham por toda a rede.

Por que o Syncthing não substitui um backup

Se um arquivo for excluído ou criptografado em um dispositivo, essa alteração poderá se propagar para os demais. Por isso, abra as configurações da pasta no VPS e ative File Versioning.

Uma opção prática é o Staggered File Versioning, com retenção de 30 a 90 dias. Quando um nó remoto substitui ou exclui um arquivo, a versão anterior é movida para .stversions. As cópias antigas ocupam espaço em disco, portanto limite o período de retenção.

Uma configuração confiável tem três níveis:

  1. O Syncthing mantém as cópias de trabalho atualizadas.
  2. O versionamento ajuda a desfazer alguns erros.
  3. Um backup separado e agendado é armazenado de forma independente do Syncthing.

Um VPS pode armazenar os arquivos sem ver o conteúdo?

O Syncthing possui um modo para dispositivo não confiável. No computador principal, você define uma senha para a pasta e, no VPS, seleciona Receive Encrypted. O servidor armazena os dados criptografados e pode transmiti-los a outro dispositivo confiável que use a mesma senha.

O conteúdo, os nomes dos arquivos, os registros de data e hora e a estrutura de diretórios ficam ocultos. As informações sobre a pasta compartilhada e os tamanhos aproximados dos arquivos continuam visíveis.

Os desenvolvedores ainda consideram esse recurso experimental. Guarde a senha e o Folder ID separadamente: sem eles, pode ser impossível recuperar a pasta criptografada.

Qual VPS é necessário para o Syncthing

O consumo de recursos depende não apenas do volume de dados, mas também da quantidade de arquivos, da frequência das alterações e da indexação inicial. Para um nó pessoal com documentos e algumas dezenas de gigabytes, uma configuração inicial costuma ser suficiente:

  • 1 vCPU;
  • 1 GB de RAM;
  • armazenamento SSD ou NVMe;
  • espaço em disco suficiente para os arquivos e .stversions;
  • conexão de rede estável.

Uma grande coleção de fotos ou centenas de milhares de arquivos exigirão mais recursos. A maior carga costuma ocorrer durante a primeira verificação e o cálculo dos hashes.

Um VPS básico com Ubuntu da tropic.host é adequado para essa tarefa. Você pode começar com uma configuração pequena e aumentar os recursos conforme a coleção cresce. Ao escolher o tamanho do disco, considere não apenas as pastas atuais, mas também arquivos futuros, dados temporários e o histórico de versões.

Cinco erros que devem ser evitados

  • Expor a porta 8384 para toda a internet. Use um túnel SSH na configuração e, para acesso web permanente, HTTPS, senha e proxy reverso.
  • Considerar a cópia do servidor um backup completo. Ative o versionamento e crie arquivos de backup separados.
  • Sincronizar caches e dependências. Exclua diretórios desnecessários com .stignore.
  • Não acompanhar o uso do disco. O diretório .stversions pode ocupar um espaço considerável com o tempo.
  • Manter um dispositivo perdido como confiável. Remova-o dos outros nós e proteja a configuração do Syncthing que contém as chaves do dispositivo.

O que é importante saber sobre smartphones

O aplicativo oficial para Android foi descontinuado no fim de 2024, mas existem clientes mantidos pela comunidade. Também não há um cliente oficial para iOS: as restrições de execução em segundo plano dificultam a sincronização contínua. Antes de conectar sua principal biblioteca de fotos, teste o aplicativo móvel escolhido com uma pasta pequena.

Conclusão

O Syncthing é adequado para quem precisa manter as mesmas pastas em vários dispositivos sem depender obrigatoriamente de um intermediário na nuvem. Um VPS torna o sistema mais conveniente: os computadores não precisam mais ficar online ao mesmo tempo, e você passa a ter uma cópia sempre disponível fora de casa.

Para uma configuração segura, não exponha diretamente o painel administrativo, ative o versionamento e complemente a sincronização com um backup independente.

FAQ

É necessário ter um VPS para usar o Syncthing?

Não. Os dispositivos podem sincronizar diretamente. O VPS funciona como um nó sempre ligado para que eles troquem alterações em momentos diferentes.

É possível abrir os arquivos do Syncthing pelo navegador?

O painel web serve para configuração, e não para navegar por documentos como no Google Drive. Se você precisa de uma unidade web, o Nextcloud é mais adequado.

O Syncthing é uma solução de backup?

Não. Exclusões e danos podem se propagar para outros dispositivos. O versionamento ajuda, mas não substitui um backup independente.

É preciso abrir a porta 8384?

Não. Mantenha o painel em 127.0.0.1:8384 e conecte-se por um túnel SSH. Para a sincronização, abra 22000/TCP e 22000/UDP.

O proprietário do VPS pode ler os arquivos?

Em uma configuração comum, potencialmente sim. Receive Encrypted os armazena de forma criptografada, mas o recurso ainda é considerado experimental e exige que a senha e o Folder ID sejam guardados com segurança.