SSD Nodes Learn 🎉 VPS desde $4.99/mês
Guias Matt ConnorPor Matt Connor · Atualizado 2026-08-07

Seafile ou Nextcloud: qual escolher para sincronizar

Compare Seafile e Nextcloud: blocos ou arquivos no disco, velocidade de sync, uso de RAM, backups e criptografia nas séries 13.0 e 34.

Seafile vs Nextcloud: a resposta curta

Seafile vs Nextcloud resume-se a uma diferença: o que é um ficheiro quando chega ao servidor. O Seafile divide cada ficheiro em blocos e armazena-os num object store que apenas o Seafile consegue ler. Por isso, a sincronização é rápida, mas as cópias de segurança passam a ser uma tarefa com duas partes. O Nextcloud grava o ficheiro no disco como um ficheiro e trata a sincronização como uma funcionalidade de uma plataforma que também fornece calendários, contactos, documentos e ligações de partilha. Tome essa diferença como base da decisão, porque o resto resulta dela.

Em agosto de 2026, o Seafile está na série 13.0 e o Nextcloud na série 34. Ambos são maduros, e nenhum deverá alterar o seu modelo de armazenamento em breve.

Como o Seafile armazena os seus ficheiros

O Seafile modela uma biblioteca da mesma forma que o git modela um repositório. O manual de administração apresenta o modelo interno como Repo, Commit, FS e Block e indica que um repo também é chamado biblioteca. Cada ficheiro é dividido em blocos de comprimento variável através de divisão definida pelo conteúdo (CDC, um algoritmo que escolhe os limites dos blocos a partir dos próprios dados), e o manual indica um tamanho médio de bloco de cerca de 8 MB. Os blocos recebem nomes baseados no seu conteúdo. Por isso, duas versões do mesmo ficheiro grande partilham todos os blocos que não foram alterados, e duas bibliotecas também partilham blocos idênticos.

A base de dados relacional guarda apenas uma pequena quantidade de metadados sobre as bibliotecas. Todo o restante, ou seja, os commits, os objetos de diretório e os blocos, fica no diretório de dados. No layout Docker utilizado pelas séries 12 e 13, esse diretório é /opt/seafile-data/seafile/seafile-data. Executar ls nesse local não fornece informação útil, porque verá diretórios cheios de nomes baseados em hashes, e não Invoices/2026/march.pdf.

A sincronização segue o mesmo modelo. O cliente pergunta ao servidor o que foi alterado, recebe uma lista de hashes de blocos e transfere apenas os blocos que ainda não tem. É por isso que o Seafile mantém um bom desempenho numa biblioteca grande: os bytes transferidos são proporcionais aos blocos alterados, e não ao tamanho do ficheiro que os contém.

Como o Nextcloud armazena os seus ficheiros

O Nextcloud coloca o ficheiro no disco no local esperado. O caminho data/<username>/files/ corresponde ao que o utilizador vê na interface web. Uma tabela da base de dados, oc_filecache, representa a mesma árvore, com tamanhos, datas de modificação e etags. O Nextcloud confia nessa tabela, e não no disco.

O cliente para computador comunica através de WebDAV (web distributed authoring and versioning) sobre HTTPS. Cada ficheiro requer pelo menos um pedido. Por isso, o Nextcloud adicionou uma API de carregamento em massa: o manual do programador explica que o carregamento de muitos ficheiros pequenos é mais lento do que poderia ser porque a largura de banda da rede não é totalmente utilizada. Os ficheiros pequenos são, por isso, agrupados. Os ficheiros grandes utilizam a API de fragmentação. O tamanho de fragmento predefinido do cliente para computador é 5 MiB (OWNCLOUD_CHUNK_SIZE assume o valor predefinido de 5242880 bytes).

A vantagem de os ficheiros estarem no disco é que qualquer ferramenta que já tenha pode ler os seus dados. O custo é que o Nextcloud não deteta alterações feitas sem o seu conhecimento. Copie ficheiros diretamente para o diretório de dados e eles permanecerão invisíveis na interface web até executar uma verificação:

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

O manual de administração identifica exatamente estes casos para uma nova verificação: depois de copiar ficheiros diretamente para o diretório de dados, depois de uma migração e quando estiver a investigar inconsistências na cache de ficheiros.

Qual sincroniza uma biblioteca grande mais depressa?

Seafile, nos dois casos mais exigentes: dezenas de milhares de ficheiros pequenos e edições repetidas em ficheiros grandes. O mecanismo é a desduplicação ao nível dos blocos. Assim, se o conteúdo central de uma imagem de disco de 4 GB for alterado, apenas alguns blocos são carregados. O Nextcloud reduz a diferença com ficheiros pequenos através do carregamento em massa, mas não consegue eliminar a diferença com ficheiros grandes, porque a unidade de transferência é o ficheiro completo.

Não aceite a minha palavra quanto à dimensão da diferença. Também não aceite um benchmark do fornecedor. Crie uma biblioteca semelhante à sua e meça o tempo:

mkdir -p ~/synctest && cd ~/synctest
for i in $(seq 1 20000); do head -c 4096 /dev/urandom > "file_$i.bin"; done
du -sh ~/synctest

Coloque esse diretório numa pasta sincronizada em cada servidor e monitorize até o cliente concluir. A fiabilidade é tão importante como a velocidade. Um cliente Seafile carrega primeiro os blocos e grava por último o commit que os referencia. Assim, se o carregamento for interrompido, a biblioteca permanece no commit anterior, em vez de ficar com uma árvore parcialmente gravada.

O que cada um requer num VPS pequeno

A documentação do Seafile pede "pelo menos 2G de RAM e uma CPU de 2 cores (> 2GHz)". O Nextcloud documenta a memória por processo PHP: um mínimo de 128 MB e 512 MB recomendados por processo. Multiplique esse valor pelo número de workers antes de adicionar a base de dados, a cache e a geração de pré-visualizações. Seguem os valores iniciais que eu usaria para uma equipa pequena. São pontos de partida, não medições.

ChartStarting point for about five users, and SQL databases per stack
The data behind this chart
[
  {
    "label": "Seafile CE 13",
    "start_ram_gb": 4,
    "start_cpu_cores": 2,
    "sql_databases": 3
  },
  {
    "label": "Nextcloud 34",
    "start_ram_gb": 4,
    "start_cpu_cores": 2,
    "sql_databases": 1
  },
  {
    "label": "Syncthing 2",
    "start_ram_gb": 1,
    "start_cpu_cores": 1,
    "sql_databases": 0
  }
]

Ambos ficam na mesma classe, com 4 GB de RAM e 2 cores. Por isso, a dimensão da infraestrutura não decide entre eles. O Syncthing funciona com 1 GB e 1 core, que é o motivo objetivo para o considerar. Os componentes variam mais do que o consumo de memória. O Seafile mantém 3 bases de dados SQL, enquanto o Nextcloud mantém 1. A implementação Docker predefinida do Seafile inicia o servidor, MariaDB, Memcached, SeaDoc e Caddy a partir de ficheiros que descarrega primeiro:

mkdir /opt/seafile
cd /opt/seafile
wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env
wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml
wget https://manual.seafile.com/13.0/repo/docker/caddy.yml
nano .env

Em .env defina SEAFILE_SERVER_HOSTNAME, as palavras-passe do root do MySQL e da base de dados, a conta de administrador inicial e JWT_PRIVATE_KEY. O manual exige uma cadeia aleatória com pelo menos 32 caracteres para essa chave. O valor é lido no primeiro arranque. Por isso, gere-o antes de iniciar a stack:

openssl rand -base64 40
docker compose up -d

O primeiro arranque cria as três bases de dados e o utilizador administrador. As decisões equivalentes no Nextcloud, incluindo TLS e o reverse proxy, são explicadas em o guia do Nextcloud num VPS com Docker, TLS e cópias de segurança.

Como os backups diferem?

Este é o aspeto que as pessoas subestimam, e é onde os dois produtos mais diferem.

No Seafile, a ordem não é opcional. A regra do manual é fazer primeiro o backup do SQL e depois do diretório de dados. Assim, cada registo da base de dados tem um objeto válido para referenciar e as bibliotecas não ficam corrompidas. Se inverter a ordem, uma linha da base de dados pode apontar para um bloco que o snapshot não capturou.

docker exec -i seafile-mysql mariadb-dump -uroot -p"$MYSQL_ROOT_PASSWORD" --opt ccnet_db > ccnet_db.sql
docker exec -i seafile-mysql mariadb-dump -uroot -p"$MYSQL_ROOT_PASSWORD" --opt seafile_db > seafile_db.sql
docker exec -i seafile-mysql mariadb-dump -uroot -p"$MYSQL_ROOT_PASSWORD" --opt seahub_db > seahub_db.sql
rsync -az /opt/seafile-data/seafile /backup/data/

Há dois detalhes nessas linhas. Use mariadb-dump, porque a série mysql de comandos está obsoleta na imagem MariaDB que o Seafile lança. Remova a opção -t de docker exec quando redirecionar a saída para um ficheiro, porque um TTY reescreve as terminações de linha e danifica o dump.

As duas partes são capturadas separadamente, por isso podem divergir. Depois de qualquer restauro, verifique o armazenamento antes de confiar nele:

docker exec -it seafile bash
cd /opt/seafile/seafile-server-latest
./seaf-fsck.sh

Quando falta alguma coisa, a ferramenta identifica o objeto:

Block 650fb22495b0b199cff0f1e1ebf036e548fcb95a is missing.
Repo ca1a860d HEAD commit is corrupted, need to restore to an old version.

Planeie também a recolha de lixo. A deduplicação faz com que os ficheiros e as bibliotecas eliminados mantenham os respetivos blocos até executar ./seaf-gc.sh a partir desse mesmo diretório. A execução indica o que encontrou, por exemplo, GC finished. 507 blocks total, about 507 reachable blocks, 0 blocks can be removed.. Se ignorar isto durante um ano, os seus backups continuarão a ocupar espaço com dados que os utilizadores eliminaram.

O Nextcloud tem o mesmo problema de duas partes, mas com uma configuração diferente, porque o diretório de dados e a base de dados têm de descrever a mesma árvore:

sudo -E -u www-data php occ maintenance:mode --on
rsync -Aavx /srv/nextcloud/ /backup/nextcloud-dirbkp/
mariadb-dump --single-transaction --default-character-set=utf8mb4 -u nextcloud -p"$DB_PASS" nextcloud > /backup/nextcloud-sqlbkp.bak
sudo -E -u www-data php occ maintenance:mode --off

Mantenha a pasta de configuração, a pasta de dados, quaisquer aplicações personalizadas e o seu tema, além desse dump. Restaure as duas partes a partir do mesmo momento. Se o diretório de dados for mais recente do que a base de dados, os utilizadores verão ficheiros que a cache de ficheiros desconhece, e occ files:scan --all corrige essa situação. Se a base de dados for mais recente, as linhas da cache apontarão para ficheiros que já não existem, e occ files:cleanup removerá as entradas da cache sem uma entrada correspondente na tabela de armazenamento.

Em qualquer dos casos, precisa de um programa de backup que lide bem com muitos ficheiros pequenos e mantenha um histórico. É isso que restic e BorgBackup fazem de forma diferente.

Clientes em desktop e dispositivos móveis

O Seafile disponibiliza dois programas para desktop. O cliente de sincronização mantém uma cópia local das bibliotecas selecionadas. O cliente Drive (SeaDrive) monta as bibliotecas como uma unidade virtual e descarrega os ficheiros quando são acedidos: no Windows, utiliza a API cloud files da Microsoft; no macOS, a versão 3.0 é uma extensão do Finder; e no Linux, é disponibilizado como AppImage desde a versão 3.0.12 e monta as bibliotecas em ~/SeaDrive. As bibliotecas encriptadas funcionam nas três plataformas de desktop. As aplicações móveis servem para aceder aos ficheiros, e é apenas isso que fazem.

O cliente de desktop do Nextcloud também disponibiliza ficheiros virtuais, e as aplicações móveis incluem o restante da plataforma. Assim, o calendário, os contactos, o Talk e as notas ficam disponíveis juntamente com o acesso aos ficheiros. Se os utilizadores trabalham principalmente em telemóveis e precisam de mais do que ficheiros, essa é uma diferença real no uso diário.

Um detalhe do Seafile exige planeamento: a biblioteca é a unidade de partilha, sincronização, permissões e encriptação. Defina a organização das bibliotecas antes de carregar 500 GB para uma única biblioteca, porque mover ficheiros entre bibliotecas implica copiar e apagar, e não mudar o nome. Por isso, o histórico do ficheiro não é transferido.

Criptografia: o que cada opção realmente protege

As bibliotecas encriptadas do Seafile usam encriptação no cliente. A palavra-passe nunca é armazenada no servidor. Um token mágico derivado da palavra-passe e do ID da biblioteca é armazenado com a biblioteca, para que um cliente possa validar a palavra-passe antes de sincronizar. A chave do ficheiro é encriptada com uma chave e um IV (vetor de inicialização) derivados da sua palavra-passe através de AES 256/CBC, e os dados do ficheiro são encriptados com essa chave do ficheiro.

Leia as limitações documentadas, porque são frequentemente ignoradas. Uma biblioteca encriptada encripta apenas o conteúdo dos ficheiros. Os nomes das pastas e dos ficheiros não são encriptados, nem os tamanhos dos ficheiros ou o histórico de edições. Consultar uma biblioteca encriptada num navegador web não é uma operação de ponta a ponta: introduz a palavra-passe, o servidor usa-a para desencriptar a chave do ficheiro e mantém a palavra-passe em cache na memória durante uma hora. O manual também indica claramente que uma biblioteca encriptada não garante a integridade, porque um administrador do servidor pode alterar parte do conteúdo de um ficheiro e o cliente não consegue detetar essa alteração.

O Nextcloud tem duas funcionalidades com nomes muito semelhantes. A encriptação no lado do servidor encripta os ficheiros em repouso, mas mantém as chaves no mesmo servidor. Por isso, protege muito melhor os dados armazenados em armazenamento externo do que protege contra alguém com acesso root ao servidor. A aplicação de encriptação de ponta a ponta encripta pastas selecionadas no cliente. Por definição, o servidor não consegue lê-las. Por isso, a interface web, a pesquisa no lado do servidor e as pré-visualizações também não conseguem ver o conteúdo dessas pastas.

A encriptação de nenhum dos produtos substitui uma cópia de segurança encriptada. Encripte a cópia de segurança separadamente.

Calendários, contactos, escritório e plataforma de aplicações

Este eixo não é equilibrado. O Nextcloud inclui CalDAV (calendário através de WebDAV) e CardDAV (contactos através de WebDAV) no núcleo, integra o Collabora ou o OnlyOffice para documentos e tem uma loja de aplicações para tudo o resto. O Seafile 13 inclui o SeaDoc para documentos colaborativos e páginas wiki, e fica por aí. Não tem calendário nem livro de endereços.

A plataforma tem um custo, e esse custo são as atualizações. Cada aplicação instalada é mais um componente que pode bloquear uma atualização do Nextcloud ou comportar-se de forma incorreta depois dela. Quanto mais os seus utilizadores dependerem da plataforma, mais cuidadosamente terá de planear a janela de atualização. O Seafile tem menos componentes que possam falhar porque oferece menos funcionalidades. Tenha também em atenção que é o Seafile Professional, e não a Community Edition, que adiciona a pesquisa de texto completo em documentos e as permissões ao nível das pastas sob uma licença paga. Confirme, portanto, se a funcionalidade de que depende está incluída na edição que pretende executar.

A falha típica de cada um

O Seafile falha quando a base de dados e o armazenamento de objetos ficam dessincronizados. É apresentada uma biblioteca que não abre ou ficheiros que desaparecem, e seaf-fsck.sh mostra o bloco em falta. Não existe uma árvore de ficheiros para reparar manualmente. A recuperação exige o dump da base de dados e o armazenamento de objetos, restaurados pela ordem correta. Teste essa restauração uma vez numa VPS sobressalente, porque uma cópia de segurança que nunca foi restaurada é apenas uma suposição.

O Nextcloud falha quando a cache de ficheiros e o disco divergem, normalmente porque algo escreveu no diretório de dados sem informar o Nextcloud. É apresentado um ficheiro no disco que a interface Web não lista ou uma pasta com um tamanho incorreto, e occ files:scan é a correção. Os outros dois pontos problemáticos são a velocidade do protocolo com muitos ficheiros pequenos, que nenhuma quantidade de CPU resolve, e a memória do PHP. As pré-visualizações de imagens e vídeos grandes costumam causar o pico de utilização. Por isso, reserve 512 MB por processo e gere as pré-visualizações numa tarefa agendada, em vez de as gerar durante os pedidos.

Nenhum dos dois: Syncthing, se só pretende sincronizar ficheiros

Se o requisito real for ter uma pasta replicada entre máquinas, ambos os produtos oferecem mais funcionalidades do que precisa. O Syncthing não tem servidor nem contas. Cada dispositivo é um peer, e um VPS torna-se o peer que permanece ligado quando o portátil entra em suspensão. Syncthing 2 é a versão atualmente mantida, e os pacotes vêm do 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

Execute-o com um utilizador normal, nunca como root, para que os ficheiros que cria tenham uma propriedade adequada:

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

A interface web fica associada a 127.0.0.1:8384 por predefinição. Por isso, não fica acessível a partir da internet, que é a predefinição correta. Aceda-lhe através de um túnel SSH a partir do portátil:

ssh -L 8384:127.0.0.1:8384 youruser@your-server

Depois, abra http://127.0.0.1:8384 no portátil. A sincronização utiliza a porta 22000 sobre TCP e QUIC, e a descoberta local utiliza UDP 21027, que não funciona através da internet. Num VPS, abra 22000 e mantenha a interface fechada:

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

O que perde são todas as funcionalidades de servidor: não há links de partilha para pessoas que não executem Syncthing, navegador de ficheiros web, contas de utilizador nem lixo do lado do servidor, exceto se ativar o versionamento de ficheiros por pasta. A surpresa clássica é o ficheiro de conflito. Edite o mesmo ficheiro em dois dispositivos enquanto estes não conseguem comunicar entre si e obterá um ficheiro irmão com um nome semelhante a notes.sync-conflict-20260806-142233-ABCD1EF.md. Nada o avisa, por isso procure periodicamente por sync-conflict.

Se o que pretende não é uma pasta sincronizada, mas sim um bucket onde as aplicações escrevem, precisa de outra ferramenta: consulte armazenamento de objetos self-hosted compatível com S3. Para uma visão mais ampla, o resumo das alternativas self-hosted ao Dropbox aborda as opções que não foram incluídas nesta comparação.

A regra de decisão

  1. Escolha Seafile se a necessidade for sincronizar em escala: muitos ficheiros, ficheiros grandes, vários dispositivos e aceitação de um armazenamento de dados que apenas o Seafile consegue ler.
  2. Escolha Nextcloud se a necessidade for uma plataforma: calendários, contactos, documentos e ligações de partilha, com ficheiros simples no disco que qualquer ferramenta de backup consegue ler.
  3. Escolha Syncthing se a necessidade for apenas uma pasta espelhada.

Escolha com cuidado agora, porque a migração entre Seafile e Nextcloud é o verdadeiro fator de dependência. Não existe conversor. Terá de sincronizar tudo para um cliente e carregá-lo para o outro servidor, consumindo largura de banda e tempo, enquanto o histórico de versões e as ligações de partilha ficam para trás. Dimensionar a escolha atual para os próximos três anos fica mais barato do que mudar no segundo ano.

FAQ

O Seafile é mais rápido que o Nextcloud para sincronizar bibliotecas grandes?

Sim nos dois casos que normalmente causam problemas, e por uma razão que pode verificar. O Seafile divide os ficheiros em blocos com uma média de cerca de 8 MB e transfere apenas os blocos alterados. Assim, uma edição dentro de um ficheiro grande transfere apenas alguns blocos. A unidade de transferência do Nextcloud é o ficheiro inteiro. A mesma edição volta a carregar todo o ficheiro. Além disso, cada ficheiro pequeno custa pelo menos um pedido WebDAV. Por isso, a API de carregamento em massa agrupa os ficheiros pequenos. Meça o tempo nos seus próprios VPS antes de decidir, porque o CPU, o disco e a ligação de rede têm tanta importância como o protocolo.

Posso fazer backup do Seafile executando rsync no diretório de dados?

Apenas em conjunto com as bases de dados e pela ordem documentada. O manual do Seafile recomenda fazer primeiro o backup do SQL e depois do diretório de dados. Assim, cada registo da base de dados refere-se a um objeto existente no backup. O comando rsync -az /opt/seafile-data/seafile /backup/data/ copia conf, seafile-data e seahub-data, mas não pode ser restaurado sozinho. O armazenamento de objetos não contém uma árvore de ficheiros legível, e a base de dados funciona como o seu índice. Depois de restaurar as duas partes, execute seaf-fsck.sh e leia a respetiva saída antes de confiar no resultado.

Preciso do Nextcloud se quiser apenas sincronização de ficheiros?

Não. O Nextcloud é uma plataforma. O calendário, os contactos e a loja de aplicações consomem memória e exigem manutenção nas atualizações, quer os utilize quer não. Para sincronização simples de ficheiros, o Seafile é o produto mais leve e tem o protocolo mais rápido. O Syncthing é ainda mais leve, porque não exige um componente de servidor. Escolha o Nextcloud quando precisar das aplicações adicionais, e não como opção predefinida.

Uma biblioteca Seafile encriptada oculta os nomes dos meus ficheiros?

Não. Uma biblioteca encriptada encripta o conteúdo dos ficheiros no cliente, e a palavra-passe nunca chega ao servidor. No entanto, os nomes das pastas, os nomes dos ficheiros, os tamanhos dos ficheiros e o histórico de edições permanecem visíveis no servidor. Abrir uma biblioteca encriptada na interface web também envia a palavra-passe para o servidor. O servidor desencripta a chave do ficheiro e mantém a palavra-passe na memória durante uma hora. Se os próprios nomes forem sensíveis, não utilize essa biblioteca na interface web e aplique encriptação noutra camada.

Quanta RAM devo atribuir ao Seafile ou ao Nextcloud num VPS?

Comece com 4 GB e 2 cores para qualquer um dos dois, com poucos utilizadores. Depois, monitorize a memória durante a geração de pré-visualizações e as pesquisas. A documentação do Seafile define como mínimo 2 GB de RAM e um CPU com 2 cores acima de 2 GHz. A documentação do Nextcloud recomenda 512 MB por processo PHP. Multiplique esse valor pelo número de workers antes de adicionar a base de dados e a cache. O Syncthing funciona confortavelmente com 1 GB.