SSD Nodes Learn 🎉 VPS desde $4.99/mês
Guias Matt ConnorPor Matt Connor

Syncthing ou Nextcloud: qual usar no VPS?

Compare Syncthing e Nextcloud no VPS: entenda a sincronização ponto a ponto, o servidor com contas e links, e por que nenhuma opção substitui um backup.

Syncthing vs Nextcloud: a diferença que decide

A comparação entre Syncthing e Nextcloud resume-se a uma diferença estrutural, e tudo o resto resulta dela. Syncthing funciona ponto a ponto. Cada dispositivo mantém a pasta completa, e nenhuma cópia é a versão de referência. Nextcloud é um servidor. Uma máquina mantém os ficheiros, as contas de utilizador controlam o acesso e os clientes transferem cópias.

É por isso que o Syncthing não tem ligação de partilha nem visualização dos documentos na Web. Não existe uma cópia central para disponibilizar, por isso não há nada que um navegador possa solicitar. O Nextcloud oferece ambas as opções, mas para isso precisa de um runtime PHP, um servidor de bases de dados, um servidor Web e um reverse proxy para TLS (segurança da camada de transporte).

Escolha o Syncthing quando todos os dispositivos envolvidos lhe pertencem. Escolha o Nextcloud quando um navegador ou outra pessoa precisar de aceder aos ficheiros.

O que o VPS faz efetivamente em cada configuração

Um VPS que executa o Nextcloud é o local onde os seus dados ficam armazenados. Se eliminar a cópia local no seu portátil, o ficheiro continua no servidor, porque o servidor sempre foi a origem dos dados.

Um VPS que executa o Syncthing tem uma função diferente: é um peer sempre disponível. O Syncthing transfere dados diretamente entre dois dispositivos que estejam online ao mesmo tempo. Por isso, dois portáteis que nunca estejam ligados simultaneamente nunca poderão sincronizar, por mais tempo que espere. Adicione um terceiro peer num VPS que nunca entra em suspensão e o problema desaparece. O portátil A envia os dados às 09:00, o portátil B recebe-os às 22:00 e o VPS mantém a pasta disponível nesse intervalo.

Esta é uma função realmente útil e representa uma exigência menor do que ser uma "alternativa ao Dropbox". O Syncthing nunca irá gerar uma ligação para enviar a um cliente. Se essa for a sua necessidade, pare aqui e leia o resumo das alternativas self-hosted ao Dropbox.

O custo de cada opção num VPS pequeno

O Syncthing é um único binário Go. Escuta num socket, mantém um índice dos seus ficheiros numa base de dados local e essa é toda a stack. Desde a versão 2.0, esse índice usa SQLite em vez de LevelDB. Por isso, atualizar uma instalação 1.x executa uma migração única no primeiro arranque. Num conjunto grande de pastas, essa migração pode demorar bastante. Deixe-a terminar. Não é necessário instalar mais nada nem aplicar patches a mais nada.

O Nextcloud precisa de mais componentes. Em agosto de 2026, o Nextcloud 35 suporta PHP 8.3 a 8.5 com MariaDB ou PostgreSQL, servido por Apache 2.4 ou nginx com php-fpm. O manual de administração recomenda "um mínimo de 512MB de RAM por processo", e o php-fpm executa vários processos worker em simultâneo.

Num VPS com 1 GB de RAM, o Syncthing funciona confortavelmente e o Nextcloud fica apertado. Isso não significa que o Nextcloud seja a opção errada. Significa que exige um compromisso maior, com quatro componentes para manter atualizados em vez de um. A opção com contentor apresentada em o guia do Nextcloud num VPS, que cobre Docker, TLS e cópias de segurança é a forma menos problemática de suportar essa carga.

Instalar o Syncthing no VPS

O Ubuntu inclui um pacote syncthing, mas este está muito atrasado em relação à versão upstream. Utilize o repositório do próprio projeto.

sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
sudo apt-get install syncthing
syncthing --version

syncthing --version deve apresentar uma linha que começa por syncthing v2. A presença de v1 nessa linha significa que o apt ainda deu prioridade ao pacote da distribuição. Atribua uma prioridade superior ao repositório upstream e instale novamente.

printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing.pref

Execute-o como um serviço do sistema com uma conta de utilizador normal. Assim, inicia no boot sem ser necessário que alguém tenha sessão iniciada.

sudo systemctl enable --now syncthing@youruser.service
systemctl status syncthing@youruser.service

systemctl status deve apresentar active (running). Os ficheiros de configuração e de índice ficam em /home/youruser/.local/state/syncthing, e o ficheiro de configuração é config.xml. As instalações criadas antes do Syncthing 1.27 mantêm estes ficheiros em ~/.config/syncthing. Verifique ambos os caminhos antes de copiar qualquer conteúdo entre máquinas.

Em seguida, abra as portas. O Syncthing utiliza 22000/TCP para o protocolo de sincronização, 22000/UDP para o transporte QUIC e 21027/UDP para a descoberta local. A descoberta utiliza broadcast e multicast, que não atravessam a Internet. Num VPS, precisa apenas das duas primeiras portas.

sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw status

ufw status deve apresentar as duas regras. Se apresentar Status: inactive, o ufw não está a filtrar nada e a firewall de rede do seu fornecedor é a única em utilização. Verifique também esse painel, porque na maioria dos hosts se trata de um controlo separado. Um dispositivo remoto preso em Disconnected enquanto o serviço está em execução normalmente indica que uma dessas duas firewalls continua fechada.

Aceder à interface GUI do Syncthing sem a publicar

A interface web GUI (graphical user interface) escuta em 127.0.0.1:8384 por predefinição, por isso responde apenas a partir do próprio servidor. Esta predefinição é protetora, porque a GUI contém uma chave de API (application programming interface) que pode reescrever todos os caminhos de pastas no sistema.

Não a abra para a Internet como primeiro passo. A documentação explica claramente o que a associação a um endereço de rede permite: "especificar o endereço LAN do seu computador NÃO restringe o acesso apenas aos dispositivos na sua rede local!" Em vez disso, encaminhe a porta através de SSH a partir do seu portátil.

ssh -L 8384:127.0.0.1:8384 youruser@your.vps.example

Abra http://127.0.0.1:8384 no navegador local enquanto essa sessão estiver ativa. O túnel é fechado com a sessão SSH, por isso não fica nada a escutar depois.

Se precisar de aceder diretamente à GUI, defina primeiro as credenciais. Como não há um navegador no servidor, faça isso a partir da linha de comandos.

sudo systemctl stop syncthing@youruser.service
sudo -H -u youruser syncthing generate --gui-user=admin --gui-password=-
sudo systemctl start syncthing@youruser.service

-H é importante, porque, sem ele, sudo mantém o diretório pessoal de root e edita o config.xml errado. Um hífen isolado como valor da palavra-passe faz com que syncthing generate leia a palavra-passe da entrada padrão, evitando que fique no histórico da shell; o valor é convertido em hash antes de ser escrito no ficheiro. Ative HTTPS nas definições da GUI depois de conseguir iniciar sessão.

Por que o Syncthing propaga os seus erros

A própria FAQ do Syncthing responde à questão das cópias de segurança: "O Syncthing não é uma boa aplicação de cópias de segurança porque todas as alterações aos seus ficheiros (modificações, eliminações, etc.) serão propagadas para todos os seus dispositivos."

Elimine acidentalmente uma pasta no portátil e o Syncthing funciona exatamente como foi concebido. Elimina essa pasta em todo o lado, em segundos. Sincronizar significa manter a concordância, e isso inclui concordar que um ficheiro deixou de existir.

O versionamento de ficheiros é a forma de mitigar este problema e está desativado até o ativar. A documentação afirma que o versionamento "por predefinição é 'sem versionamento de ficheiros', ou seja, não são mantidas cópias antigas dos ficheiros". Estão disponíveis quatro estratégias por pasta. Trash Can mantém uma cópia de cada ficheiro eliminado ou substituído devido a uma alteração remota. Simple mantém um número definido de versões antigas por ficheiro. Staggered reduz gradualmente o histórico à medida que este envelhece, mantendo cópias horárias durante um dia, cópias diárias durante um mês e assim por diante. External delega cada decisão num comando escrito por si. As cópias antigas são colocadas num diretório .stversions dentro da pasta partilhada.

Configure Staggered no peer VPS e deixe o versionamento desativado nos portáteis. O peer sempre ligado passa a manter o histórico, enquanto os portáteis permanecem leves.

O Nextcloud gere isto melhor, mas continua a não ser uma cópia de segurança. Os ficheiros eliminados vão para uma reciclagem e as edições são mantidas pela aplicação Versions, mas ambos são limpos automaticamente à medida que o disco fica cheio. Um processo no portátil que encripte ficheiros sincroniza essas versões encriptadas, e as cópias corretas acabam por ser eliminadas segundo a sua própria política.

Qualquer uma das ferramentas precisa de uma cópia de segurança real por baixo: snapshots criados por um programa separado, gravados num local que o cliente de sincronização não consiga alcançar e restaurados pelo menos uma vez, para confirmar que o restauro funciona. A comparação entre restic e BorgBackup explica qual deve apontar para o diretório de dados.

Como diferem os conflitos entre as duas

Ambas as ferramentas criam um ficheiro de conflito quando os dois lados alteram o mesmo ficheiro entre sincronizações. A diferença está em quem o vê.

O Syncthing muda o nome da cópia que perdeu para <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext>. Perde a cópia com a data de modificação mais antiga. Quando as datas são iguais, perde o dispositivo com o maior valor nos primeiros 63 bits do respetivo ID de dispositivo. A escolha é arbitrária, mas produz o mesmo resultado em todos os peers. Depois vem a parte que pode não ser óbvia: esses ficheiros «são tratados como ficheiros normais depois de serem criados, pelo que são propagados entre dispositivos». Todos os peers recebem a cópia em conflito. Eliminá-la é uma única operação de eliminação que é sincronizada, mas primeiro verá o ficheiro em todas as suas máquinas.

O cliente de ambiente de trabalho do Nextcloud cria <name> (conflicted copy YYYY-MM-DD HHMMSS).<ext>, por exemplo mydata (conflicted copy 2018-04-10 093612).txt, e, por predefinição, não carrega esse ficheiro. O manual do cliente explica o motivo: o autor da alteração é a pessoa mais indicada para resolver o conflito, e mostrar o conflito a outros utilizadores apenas cria confusão. Defina OWNCLOUD_UPLOAD_CONFLICT_FILES=1 no ambiente do cliente se quiser o comportamento oposto.

Assim, um conflito do Syncthing é um evento em todo o cluster, enquanto um conflito do Nextcloud permanece num único ambiente de trabalho.

Os tipos de pasta tornam o Syncthing mais seguro num servidor

O Syncthing tem três tipos de pasta. Escolher o tipo correto no VPS elimina uma classe inteira de acidentes.

  • Send & Receive é o padrão. As alterações são sincronizadas nas duas direções.
  • Send Only ignora tudo o que o cluster envia. Use este tipo quando um dispositivo deve apenas publicar dados. Quando fica dessincronizado, a GUI mostra um botão vermelho "Override Changes", que envia o estado local para todos os dispositivos.
  • Receive Only aplica as alterações do cluster e nunca envia as edições locais de volta. Use este tipo num VPS que funcione como arquivo. As edições locais nesse dispositivo mostram, em vez disso, um botão vermelho "Revert Local Changes".

Uma pasta Receive Only no VPS, com o versionamento Staggered ativado, cria um mirror com versões. Uma eliminação num portátil continua a ser aplicada, porque uma eliminação é uma alteração legítima do cluster, mas a cópia antiga é guardada em .stversions em vez de desaparecer.

Qual deve escolher

As 7 linhas abaixo abrangem os motivos pelos quais as pessoas fazem esta pergunta.

ChartWhich tool fits which job
The data behind this chart
[
  {
    "label": "Keep two of my own laptops in sync",
    "pick": "Syncthing",
    "notes": "No accounts to manage. The VPS is the peer that is always awake."
  },
  {
    "label": "Send a download link to a client",
    "pick": "Nextcloud",
    "notes": "Syncthing has no public link sharing at all."
  },
  {
    "label": "Open a file from a borrowed browser",
    "pick": "Nextcloud",
    "notes": "The Syncthing GUI shows sync state, never file contents."
  },
  {
    "label": "Sync 200 GB between machines I own",
    "pick": "Syncthing",
    "notes": "Peers transfer directly. The VPS copy is optional."
  },
  {
    "label": "Phone photo upload with a store app",
    "pick": "Nextcloud",
    "notes": "The official Syncthing Android app ended in December 2024."
  },
  {
    "label": "Calendar and contacts alongside files",
    "pick": "Nextcloud",
    "notes": "Syncthing syncs files. That is the entire feature set."
  },
  {
    "label": "1 GB VPS with nothing else to spare",
    "pick": "Syncthing",
    "notes": "One Go binary against PHP plus a database plus a web server."
  }
]

Veja a primeira linha. Manter dois dos seus próprios laptops sincronizados aponta para Syncthing, e esse é o caso em que um VPS se justifica como o par que nunca dorme. Todas as linhas que envolvem um navegador, uma ligação ou outra pessoa apontam no sentido oposto.

Se o Nextcloud continuar a ser a melhor opção, mas o espaço ocupado o preocupar, a comparação entre Seafile e Nextcloud é o próximo conteúdo a ler, porque o Seafile mantém o modelo de servidor, mas utiliza outro motor de sincronização.

Executar os dois no mesmo VPS

Eles não são exclusivos. Usar o Syncthing para transferir ficheiros entre as suas próprias máquinas, enquanto o Nextcloud trata da partilha e dos calendários, é uma configuração comum.

Se fizer isso, siga uma regra: nunca aponte o Syncthing para o diretório de dados do Nextcloud. O Nextcloud regista cada ficheiro na sua base de dados. Por isso, os ficheiros que aparecem no disco a partir de fora permanecem invisíveis na interface web até a base de dados ser atualizada. A partir do diretório de instalação do Nextcloud:

sudo -u www-data php occ files:scan --all

Esse comando mostra o número de ficheiros e diretórios que analisou. Executá-lo periodicamente é uma solução provisória, não uma arquitetura adequada. Dê a cada ferramenta o seu próprio diretório. Se ainda está a decidir o que deve alojar no servidor, o guia sobre o que alojar por conta própria em 2026 é um ponto de partida melhor do que escolher primeiro uma ferramenta de sincronização.

FAQ

O Syncthing pode substituir o Dropbox?

Apenas na parte em que os seus próprios dispositivos permanecem sincronizados. O Syncthing não tem links públicos de partilha nem contas de utilizador, e a sua interface Web nunca mostra o conteúdo dos ficheiros, porque não existe uma cópia central que um navegador possa solicitar. A aplicação oficial para Android foi descontinuada depois do lançamento de December 2024 e deixou de estar disponível na Play Store, pelo que o suporte para telemóveis depende agora de um fork da comunidade. Se precisar de enviar um link a alguém, precisa de um servidor, o que significa usar Nextcloud ou algo semelhante.

O Syncthing é uma cópia de segurança?

Não, e o projeto afirma-o diretamente. As eliminações e modificações propagam-se para todos os dispositivos, pelo que uma eliminação acidental desaparece de todo o lado em poucos segundos. Ativar o versionamento de ficheiros por pasta, especialmente Staggered num peer sempre ligado, proporciona uma janela de recuperação através do diretório .stversions. Isto não substitui os snapshots criados por uma ferramenta separada noutro armazenamento.

Porque não consigo ver os meus ficheiros na GUI Web do Syncthing?

Porque a GUI é um painel de controlo do estado da sincronização, não um navegador de ficheiros. Mostra pastas, dispositivos, o progresso das transferências e o número de conflitos, mas nunca lista nem abre o conteúdo dos ficheiros. Isto resulta do desenho peer to peer: os seus ficheiros estão nos seus dispositivos, e a GUI no VPS apenas gere o processo que os move entre eles.

Que portas o Syncthing precisa de ter abertas num VPS?

A porta 22000/TCP para o protocolo de sincronização e a porta 22000/UDP para o transporte QUIC. A porta 21027/UDP transporta a descoberta local através de broadcast e multicast, que não atravessam a Internet, pelo que deve mantê-la fechada num servidor público. Mantenha a GUI na porta 8384 ligada a 127.0.0.1 e aceda-lhe através de um túnel SSH. Verifique também a firewall de rede do seu fornecedor e ufw, porque são controlos separados.

Posso executar o Syncthing e o Nextcloud no mesmo VPS?

Sim, e isso é razoável num servidor com 2 GB de RAM ou mais. Mantenha os diretórios de ambos separados. O Nextcloud indexa os ficheiros na sua base de dados, pelo que tudo o que o Syncthing escrever no armazenamento do Nextcloud permanecerá invisível na interface Web até occ files:scan ser executado. Além disso, duas ferramentas a escrever no mesmo diretório produzem ficheiros de conflito que nenhuma delas espera.