Alternativas ao Dropbox auto-hospedadas: comparação
Compare Nextcloud, Seafile, Syncthing e object storage por topologia, custo em um VPS pequeno e limites reais. Sincronização não substitui backup.
Que alternativa autoalojada ao Dropbox deve executar?
Quatro alternativas autoalojadas ao Dropbox merecem atenção: Nextcloud, Seafile, Syncthing e armazenamento de objetos com um cliente por cima. Não são intercambiáveis. O Nextcloud é adequado para uma casa ou uma equipa pequena em que outras pessoas precisam de receber ficheiros. O Seafile é adequado para uma pessoa ou uma equipa que sincroniza um número muito elevado de ficheiros pequenos, quando a velocidade de sincronização é mais importante do que a forma como os dados ficam armazenados no disco. O Syncthing é adequado para uma pessoa que sincroniza os próprios dispositivos, quando ninguém de fora precisa de uma ligação. O armazenamento de objetos é adequado para um arquivo: bytes baratos que raramente abre.
Escolha primeiro com base no funcionamento da sincronização e só depois compare as funcionalidades. As listas de funcionalidades parecem todas iguais. A topologia, ou seja, qual é a máquina que mantém a cópia com a qual todas as outras máquinas concordam, é o que determina se continuará satisfeito daqui a seis meses.
Topologia de sincronização: um servidor de referência ou pares sem servidor
Há dois modelos em análise, e a maior parte do que se segue depende da escolha feita.
Um servidor de referência. Nextcloud, Seafile e o armazenamento de objetos funcionam desta forma. Uma máquina, normalmente um VPS (virtual private server), mantém a cópia autoritativa. Todos os dispositivos comunicam com essa máquina. O portátil pode ficar desligado durante um mês e, quando voltar a estar online, sincroniza as alterações automaticamente. Um telefone com 6 GB livres pode manter um subconjunto dos dados, enquanto o servidor mantém tudo. Um navegador pode aceder aos ficheiros, razão pela qual é possível criar links de partilha.
Pares sem servidor. O Syncthing funciona desta forma. Os dispositivos encontram-se e trocam diretamente as listas de ficheiros através de uma ligação encriptada. Nenhuma cópia é autoritativa: um ficheiro existe nos dispositivos que o contêm e em nenhum outro local. Dois dispositivos têm de estar online ao mesmo tempo para que uma alteração seja transferida entre eles. Não existe um URL para fornecer a outras pessoas, porque nenhuma máquina está a servir uma página.
Daqui resultam quatro consequências. São estas que normalmente só se tornam evidentes mais tarde.
- Enviar um ficheiro a uma pessoa que não vai instalar software requer um servidor de referência. Um link é um URL, e um URL requer um processo a escutar numa porta.
- Aceder aos seus ficheiros a partir de uma máquina que não controla, como um portátil de trabalho, requer um servidor de referência.
- Um dispositivo que esteve desligado durante várias semanas sincroniza as alterações a partir de um servidor assim que volta a estar online. Numa configuração entre pares, só sincroniza enquanto outro dispositivo que contenha esses dados também estiver online. É por isso que muitos utilizadores do Syncthing executam uma instância num VPS como par permanentemente online.
- O armazenamento é contabilizado de forma diferente. Um servidor de referência mantém uma cópia completa, além dos dados que cada dispositivo mantém localmente. Quatro pares a partilhar uma pasta mantêm quatro cópias completas, porque cada par mantém a pasta inteira.
Nextcloud: utilizadores, grupos e ligações públicas
O Nextcloud é uma aplicação web PHP. Armazena os seus ficheiros como ficheiros normais num diretório de dados e regista-os numa base de dados. Pode partilhar uma pasta com um utilizador, com um grupo ou através de uma ligação pública protegida por palavra-passe e com data de expiração. O histórico de versões está ativado por predefinição e os ficheiros eliminados são primeiro enviados para a reciclagem. Existem clientes para Linux, macOS e Windows, e as aplicações para iOS e Android são oficiais. Se o motivo para sair do Dropbox é a necessidade de permitir que outras pessoas recebam os seus ficheiros, esta é a resposta honesta.
O custo é a complexidade da infraestrutura. Uma instalação normal executa um servidor web, PHP-FPM (o gestor de processos PHP), uma base de dados como MariaDB ou PostgreSQL e Redis para o bloqueio de ficheiros. Uma tarefa em segundo plano é executada a cada cinco minutos através do cron ou de um temporizador systemd. Num VPS com 1 GB, o serviço arranca, mas depois um upload grande ou um comando de manutenção occ demorado encontra o terminador de processos por falta de memória. Considere 2 GB como o mínimo para alguns utilizadores e espere precisar de 4 GB quando ativar mais aplicações. O outro custo são as atualizações: as aplicações da loja são compiladas para uma versão específica do core, por isso confirme se as aplicações de que depende suportam a próxima versão principal antes de atualizar.
O Nextcloud fica mais lento quando uma conta contém centenas de milhares de ficheiros pequenos, porque cada ficheiro corresponde a uma linha na tabela de cache de ficheiros e a um ficheiro real no disco, e o cliente de ambiente de trabalho percorre-os um a um. Num ambiente doméstico, isto nunca é um problema. O dimensionamento, o TLS (segurança da camada de transporte) e as cópias de segurança são abordados em uma instalação do Nextcloud baseada em Docker com TLS e cópias de segurança, que é o guia a consultar depois de tomar a decisão.
Um aviso sobre o âmbito. O Nextcloud também pode gerir o calendário, os contactos, as notas e a biblioteca de fotografias, e cada aplicação ativada acrescenta trabalho em segundo plano e mais um componente que pode bloquear uma atualização. Se o problema real são as fotografias, uma ferramenta dedicada trata-as melhor: consulte Immich como alternativa autoalojada ao Google Photos. Se o problema real são documentos e wikis, consulte as alternativas autoalojadas ao Notion em vez de acumular aplicações no servidor de ficheiros. Editar esses documentos no navegador é uma tarefa que requer outro servidor, não uma aplicação do Nextcloud, por isso compare OnlyOffice com Collabora antes de assumir que o mínimo de 2 GB continua a ser suficiente.
Seafile: criado para um número muito elevado de ficheiros pequenos
O Seafile divide cada ficheiro em blocos e armazena-os num object store interno endereçado por hash do conteúdo, seguindo a mesma ideia que o git usa para os seus objetos. A unidade de sincronização e partilha é uma biblioteca, não uma árvore de diretórios. Como o cliente carrega blocos e um commit, em vez de fazer um pedido por ficheiro, a sincronização de um diretório com 100,000 ficheiros pequenos termina muito mais depressa do que um protocolo por ficheiro consegue. Os blocos idênticos são armazenados uma única vez, por isso uma segunda cópia de um ficheiro grande quase não ocupa espaço adicional.
A desvantagem é que os seus ficheiros no servidor deixam de ser ficheiros normais. Ao abrir o diretório de armazenamento, encontra ficheiros de objetos com nomes hexadecimais. Para extrair os dados, precisa do cliente Seafile ou das próprias ferramentas de exportação e fsck do Seafile. As cópias de segurança continuam a funcionar, porque esses objetos são ficheiros normais, mas não pode restaurar uma única folha de cálculo com cp. Decida agora se isto é aceitável, porque é esta a característica de que as pessoas se arrependem mais tarde.
O Seafile disponibiliza uma edição comunitária e uma edição profissional paga. A divisão de funcionalidades entre ambas muda de uma release para outra, por isso leia os termos atuais no site antes de planear uma equipa com base numa funcionalidade específica. Existem clientes oficiais para desktop e dispositivos móveis. As bibliotecas encriptadas são encriptadas no cliente, por isso o servidor armazena texto cifrado que não consegue ler. Se perder a frase-senha, a biblioteca fica ilegível, incluindo para si. Abrir uma biblioteca encriptada no browser implica fornecer essa frase-senha à sessão web, por isso a versão mais forte dessa garantia aplica-se aos clientes para desktop e dispositivos móveis.
O consumo de recursos é semelhante ao do Nextcloud. Está a executar uma base de dados, uma cache de memória e dois processos da aplicação, por isso 2 GB continua a ser o mínimo sensato.
Syncthing: não há nada em que iniciar sessão
O Syncthing é um único binário Go. Monitoriza pastas, encontra os seus pares através de um servidor de descoberta ou de um relay e sincroniza diretamente entre dispositivos. Não existem contas nem página de início de sessão para as pessoas com quem sincroniza. Emparelha dois dispositivos pelo ID e aceita a pasta em cada lado. É o serviço mais simples de executar entre os apresentados, porque há muito pouco para gerir.
O que perde é toda a funcionalidade de partilha. A respetiva entrada é Device pairing only, no links. Não pode enviar um link a um cliente, contabilista ou familiar. O suporte móvel é outra lacuna: Android app, no official iOS. A própria FAQ do projeto é clara: "There are no plans by the current Syncthing team to officially support iOS in the foreseeable future", porque o iOS restringe suficientemente o processamento em segundo plano para dificultar uma sincronização fiável. Os utilizadores de iOS ficam dependentes de aplicações de terceiros.
O consumo de recursos é reduzido, mas há um aspeto importante. O Syncthing mantém uma entrada de índice para cada ficheiro que sincroniza, por isso o consumo de memória e a primeira análise aumentam com o número de ficheiros, não com o tamanho total. Calcular os hashes de uma pasta grande pela primeira vez utilizará a CPU durante algum tempo e depois estabilizará. Num plano VPS mais pequeno, funciona sem problemas.
Os conflitos são tratados mantendo os dois lados. Quando dois dispositivos alteram o mesmo ficheiro enquanto não conseguem comunicar entre si, o Syncthing muda o nome de uma cópia e mantém-na junto da outra, para que encontre ficheiros como notes.sync-conflict-20260802-141530-K7MB3QT.md. Nada é perdido. Também nada é combinado, e a resolução tem de ser feita manualmente.
Armazenamento de objetos com um cliente: bytes baratos, não uma pasta de sincronização
Armazenamento de objetos significa um bucket compatível com S3 (simple storage service), alojado pelo próprio utilizador com MinIO ou alugado a um fornecedor. O acesso é feito com uma ferramenta: rclone na linha de comandos ou um cliente para desktop que apresenta o bucket como uma unidade. Se preferir consultar o bucket numa página Web em vez de usar uma shell, várias ferramentas em esta comparação de gestores de ficheiros self-hosted usam um bucket S3 como backend e acrescentam as suas próprias ligações de partilha. A partilha é feita através de um URL pré-assinado, uma ligação que gera e que contém o seu próprio prazo de validade. O versionamento é uma definição do bucket: Bucket versioning, off by default, por isso ative-o quando criar o bucket, porque não se aplica aos objetos carregados anteriormente.
É quando trata um bucket como uma pasta de sincronização que surgem os problemas. Por predefinição, nada monitoriza o diretório Documents. rclone bisync faz sincronização bidirecional, e a própria documentação do rclone explica claramente os cuidados necessários. O armazenamento de objetos é particularmente adequado como camada inferior: um destino de backup ou a camada de armazenamento por trás de uma aplicação. Armazenamento de objetos compatível com S3 e self-hosted com MinIO aborda o lado do servidor.
O custo de recursos é diferente neste caso. O MinIO é um único binário e consome poucos recursos quando está inativo. O custo efetivo é o disco e, num VPS, isso significa um volume de blocos alugado por gigabyte, além da largura de banda usada para transferir objetos de e para o serviço. Nenhum desses custos aparece em free -h, por isso leia quanto custa realmente um VPS por mês antes de dimensionar um arquivo.
Partilha, clientes móveis e controlo de versões em comparação
The data behind this chart
[
{
"tool": "Nextcloud",
"sharing": "Public links, users and groups",
"mobile": "Official iOS and Android apps",
"versioning": "On by default, plus trash"
},
{
"tool": "Seafile",
"sharing": "Public links with password and expiry",
"mobile": "Official iOS and Android apps",
"versioning": "Library history and snapshots"
},
{
"tool": "Syncthing",
"sharing": "Device pairing only, no links",
"mobile": "Android app, no official iOS",
"versioning": "Optional per folder, off by default"
},
{
"tool": "Object storage",
"sharing": "Presigned URLs you generate",
"mobile": "Third party clients only",
"versioning": "Bucket versioning, off by default"
}
]As 4 opções distribuem-se por uma única linha. Três delas permitem entregar um ficheiro a um desconhecido que tenha apenas um navegador. Uma delas comunica apenas com dispositivos que já possui. A opção de controlo de versões do Seafile, Library history and snapshots, merece uma nota: o histórico é mantido por biblioteca, por isso, ao eliminar uma biblioteca, elimina também o respetivo histórico.
Obter novamente os seus dados
O custo de saída é barato de verificar agora e caro de descobrir mais tarde, por isso verifique-o antes de se comprometer.
O Nextcloud armazena ficheiros reais em diretórios reais, por isso um tar do diretório de dados permite recuperar os seus documentos mesmo que a aplicação nunca mais arranque. O Syncthing faz o mesmo em cada peer, o que proporciona a melhor possibilidade de saída neste caso: os ficheiros estão simplesmente presentes em cada dispositivo. O armazenamento de objetos do Seafile precisa do Seafile ou das respetivas ferramentas de exportação para voltar a reunir os blocos em ficheiros. O armazenamento de objetos precisa do rclone ou de uma ferramenta equivalente, que está à distância de um comando.
A sincronização não é um backup, e essa diferença é onde as pessoas perdem dados
Todas as ferramentas aqui copiam alterações entre máquinas. Uma eliminação é uma alteração. Remova uma pasta no seu portátil e o cliente informa o servidor, o servidor aplica a alteração e todos os outros dispositivos também a removem. O ransomware usa o mesmo caminho: encripta os ficheiros localmente, o cliente deteta os ficheiros modificados e carrega as versões encriptadas. A sincronização funcionou corretamente. Os seus dados continuam perdidos.
As reciclagens e o histórico de versões reduzem o impacto. Também expiram, podem ser esvaziados pela mesma conta que cometeu o erro e ficam no mesmo disco que a cópia ativa. Uma falha no volume elimina os ficheiros e o respetivo histórico em conjunto.
Um backup é uma cópia separada, em hardware separado, criada segundo um agendamento e que restaurou pelo menos uma vez. Faça o backup da base de dados na mesma execução que os ficheiros. Restaurar um diretório de dados do Nextcloud sem a respetiva base de dados produz uma instância que não sabe que esses ficheiros existem, e um occ files:scan posterior recupera os ficheiros, mas perde as partilhas e o histórico de versões armazenados nessas tabelas. Backups agendados do restic a partir de um VPS aborda a versão encriptada e deduplicada deste processo, incluindo como testar uma restauração em vez de presumir que ela funciona.
O que eu escolheria
Nextcloud, para a maioria das pessoas que está a ler isto. Depois de deixarem o Dropbox, o que faz falta é poder enviar um link a alguém que nunca vai instalar nada e abrir um ficheiro num telemóvel. O Nextcloud faz as duas coisas com clientes oficiais e sem um plano pago, e 2 GB de RAM é um preço razoável por isso. Faço duas exceções. Se a pasta for exclusivamente sua e estiver sempre em hardware que lhe pertence, use Syncthing e aproveite não ter nenhum servidor para atualizar nem nenhum login Web para proteger. Se sincronizar um diretório de trabalho com centenas de milhares de ficheiros, use Seafile e aceite o armazenamento opaco em troca da velocidade. O armazenamento de objetos deve ficar por baixo da solução escolhida, como destino das cópias de segurança, e não à frente dela como ferramenta de sincronização.
FAQ
O Syncthing é um backup para o meu laptop?
Não. O Syncthing copia alterações entre dispositivos, e uma eliminação é uma alteração como qualquer outra. Por isso, um ficheiro eliminado por engano desaparece de todos os dispositivos emparelhados em poucos segundos. O versionamento de ficheiros por pasta ajuda, mas fica desativado até o ativar em cada pasta. Mantenha um backup real num hardware separado, feito segundo um agendamento, e faça uma restauração uma vez para confirmar que funciona.
Posso executar o Nextcloud e o Syncthing no mesmo VPS?
Sim. Escutam em portas diferentes e não entram em conflito. Não aponte uma pasta do Syncthing para o diretório de dados do Nextcloud. O Nextcloud regista todos os ficheiros numa base de dados. Por isso, os ficheiros que aparecem no disco dentro desse diretório ficam invisíveis até executar occ files:scan, e os ficheiros removidos nesse diretório deixam linhas na base de dados a apontar para nada. Dê ao Syncthing o seu próprio diretório ou associe esse diretório ao Nextcloud como armazenamento externo, para que o Nextcloud saiba que deve consultá-lo.
Qual deles permite partilhar um link com alguém que não tem uma conta?
O Nextcloud e o Seafile criam links públicos, com uma palavra-passe opcional e uma data de expiração. O armazenamento de objetos fornece um URL pré-assinado que deixa de funcionar automaticamente depois do período definido. O Syncthing não oferece essa opção. O seu modelo de partilha baseia-se no emparelhamento de dispositivos. A outra pessoa tem de instalar o Syncthing, fornecer um ID de dispositivo e aceitar a pasta.
De quanto espaço em disco o servidor precisa?
Para um servidor de referência, planeie o tamanho total dos dados partilhados, mais espaço para o histórico de versões e a reciclagem, além do espaço de trabalho necessário para carregamentos em curso. O histórico de versões é a parte que costuma ser subestimada. Manter todas as versões de um ficheiro de 2 GB que muda diariamente faz o espaço crescer rapidamente. Defina uma política de retenção desde cedo. Colocar os dados num volume separado mantém esse crescimento afastado do sistema de ficheiros root. Quando o disco fica cheio, todo o servidor pode parar, em vez de apenas um carregamento.