Seafile frente a Nextcloud: cuál elegir para sincronizar
Compara Seafile y Nextcloud: bloques frente a archivos en disco, velocidad de sincronización, uso de RAM, copias de seguridad y cifrado.
Seafile frente a Nextcloud: respuesta breve
La diferencia entre Seafile y Nextcloud se reduce a una cuestión: qué es un archivo cuando llega al servidor. Seafile divide cada archivo en bloques y los almacena en un almacén de objetos que sólo Seafile puede leer, por lo que la sincronización es rápida y las copias de seguridad pasan a ser un proceso dividido en dos partes. Nextcloud escribe el archivo en el disco como un archivo y considera la sincronización una función más de una plataforma que también gestiona calendarios, contactos, documentos y enlaces compartidos. Tome la decisión basándose en esa diferencia, porque el resto se deriva de ella.
En agosto de 2026, Seafile está en la serie 13.0 y Nextcloud, en la serie 34. Ambos son productos consolidados y ninguno está a punto de cambiar su modelo de almacenamiento.
Cómo almacena Seafile los archivos
Seafile modela una biblioteca de la misma forma que git modela un repositorio. El manual de administración describe el modelo interno como Repo, Commit, FS y Block, y señala que un repo también se denomina biblioteca. Cada archivo se divide en bloques de longitud variable mediante chunking definido por el contenido (CDC, un algoritmo que determina los límites de los bloques a partir de los propios datos), y el manual indica un tamaño medio de bloque de aproximadamente 8 MB. Los bloques reciben nombres basados en su contenido. Por tanto, dos versiones de un archivo grande comparten todos los bloques que no hayan cambiado, y dos bibliotecas también comparten los bloques idénticos.
La base de datos relacional sólo contiene una pequeña cantidad de metadatos sobre las bibliotecas. Todo lo demás, es decir, los commits, los objetos de directorio y los bloques, se encuentra en el directorio de datos. En la distribución de Docker utilizada por las series 12 y 13, ese directorio es /opt/seafile-data/seafile/seafile-data. Ejecutar ls allí no muestra nada útil, porque sólo se ven directorios con nombres hash, no Invoices/2026/march.pdf.
La sincronización sigue el mismo modelo. El cliente pregunta al servidor qué ha cambiado, recibe una lista de hashes de bloques y descarga sólo los bloques que todavía no tiene. Por eso Seafile funciona bien con una biblioteca grande: los bytes transferidos son proporcionales a los bloques que han cambiado, no al tamaño del archivo que los contiene.
Cómo almacena Nextcloud sus archivos
Nextcloud coloca el archivo en el disco donde espera encontrarlo. La ruta data/<username>/files/ refleja lo que el usuario ve en la interfaz web. Una tabla de la base de datos, oc_filecache, refleja el mismo árbol con tamaños, fechas de modificación y etags. Nextcloud confía en la tabla y no en el disco.
El cliente de escritorio usa WebDAV (creación y versionado web distribuidos) sobre HTTPS. Cada archivo requiere al menos una petición. Por eso Nextcloud añadió una API de carga masiva: el manual del desarrollador explica que cargar muchos archivos pequeños es más lento de lo necesario porque no se aprovecha todo el ancho de banda de la red. Por ello, los archivos pequeños se agrupan. Los archivos grandes usan la API de fragmentación. El tamaño de fragmento predeterminado del cliente de escritorio es 5 MiB (OWNCLOUD_CHUNK_SIZE tiene como valor predeterminado 5242880 bytes).
La ventaja de almacenar los archivos en el disco es que cualquier herramienta que ya tenga puede leer sus datos. El inconveniente es que Nextcloud no detecta los cambios realizados fuera de su control. Si copia archivos directamente en el directorio de datos, permanecerán invisibles en la interfaz web hasta que ejecute un análisis:
sudo -E -u www-data php occ files:scan --all -vvEl manual del administrador indica exactamente estos casos para volver a analizar los archivos: después de copiarlos directamente en el directorio de datos, después de una migración y cuando investigue incoherencias en la caché de archivos.
¿Cuál sincroniza más rápido una biblioteca grande?
Seafile, en los dos casos más exigentes: decenas de miles de archivos pequeños y ediciones repetidas de archivos grandes. El mecanismo es la deduplicación a nivel de bloque. Por eso, si cambia la parte central de una imagen de disco de 4 GB, sólo se cargan unos pocos bloques. Nextcloud reduce la diferencia con archivos pequeños mediante la carga masiva, pero no puede eliminar la diferencia con archivos grandes, porque su unidad de transferencia es el archivo completo.
No dé por válida mi estimación de la diferencia ni la de una prueba comparativa del proveedor. Cree una biblioteca similar a la suya y mida el tiempo:
mkdir -p ~/synctest && cd ~/synctest
for i in $(seq 1 20000); do head -c 4096 /dev/urandom > "file_$i.bin"; done
du -sh ~/synctestCopie ese directorio en una carpeta sincronizada de cada servidor y supervise hasta que el cliente termine. La fiabilidad es tan importante como la velocidad. Un cliente de Seafile carga primero los bloques y escribe después la confirmación que los referencia. Por tanto, si la carga se interrumpe, la biblioteca conserva su confirmación anterior en lugar de quedar con un árbol escrito parcialmente.
Qué necesita cada uno en un VPS pequeño
La documentación de Seafile solicita «al menos 2G de RAM y una CPU de 2 núcleos (> 2GHz)». Nextcloud documenta la memoria por proceso de PHP: un mínimo de 128 MB y una recomendación de 512 MB por proceso. Debe multiplicar esa cantidad por el número de workers antes de añadir la base de datos, la caché y la generación de previsualizaciones. Estos son los valores iniciales que usaría para un equipo pequeño. Son valores iniciales, no mediciones.
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 pertenecen a la misma categoría: 4 GB de RAM con 2 núcleos. Por tanto, la huella de recursos no decide entre ellos. Syncthing funciona con 1 GB y 1 núcleo. Esa es la razón práctica para considerarlo. Los componentes que intervienen difieren más que el consumo de memoria. Seafile mantiene 3 bases de datos SQL, mientras que Nextcloud mantiene 1. Además, la implementación predeterminada de Seafile con Docker inicia el servidor, MariaDB, Memcached, SeaDoc y Caddy a partir de archivos que debe descargar primero:
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 .envEn .env establezca SEAFILE_SERVER_HOSTNAME, las contraseñas de root de MySQL y de la base de datos, la cuenta de administrador inicial y JWT_PRIVATE_KEY. El manual requiere una cadena aleatoria de al menos 32 caracteres para esa clave. La clave se lee durante el primer arranque, así que genérela antes de iniciar el stack:
openssl rand -base64 40
docker compose up -dEl primer arranque crea las tres bases de datos y el usuario administrador. Las decisiones equivalentes de Nextcloud, incluidos TLS y el reverse proxy, se explican en la guía de Nextcloud en un VPS con Docker, TLS y copias de seguridad.
¿En qué se diferencian las copias de seguridad?
Este es el aspecto que se suele subestimar y donde más difieren los dos productos.
En Seafile, el orden no es opcional. La regla del manual es hacer primero la copia de seguridad de SQL y después la del directorio de datos. De este modo, cada registro de la base de datos tiene un objeto válido al que hacer referencia y las bibliotecas no se corrompen. Si invierte el orden, una fila de la base de datos puede apuntar a un bloque que la instantánea nunca capturó.
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/Hay dos detalles en esas líneas. Use mariadb-dump, porque la serie de comandos mysql está obsoleta en la imagen de MariaDB que distribuye Seafile. Quite la opción -t de docker exec cuando redirija la salida a un archivo, porque una TTY reescribe los finales de línea y daña el volcado.
Las dos partes se capturan por separado, por lo que pueden dejar de estar sincronizadas. Después de cualquier restauración, compruebe el almacén antes de confiar en él:
docker exec -it seafile bash
cd /opt/seafile/seafile-server-latest
./seaf-fsck.shCuando falta algo, la herramienta identifica el objeto:
Block 650fb22495b0b199cff0f1e1ebf036e548fcb95a is missing.
Repo ca1a860d HEAD commit is corrupted, need to restore to an old version.Planifique también la recolección de basura. La deduplicación hace que los archivos y las bibliotecas eliminados conserven sus bloques hasta que ejecute ./seaf-gc.sh desde ese mismo directorio. La ejecución informa de lo que encontró, por ejemplo GC finished. 507 blocks total, about 507 reachable blocks, 0 blocks can be removed.. Si la omite durante un año, sus copias de seguridad seguirán ocupando espacio por datos que los usuarios eliminaron.
Nextcloud tiene el mismo problema de dos partes, pero con una estructura diferente, porque el directorio de datos y la base de datos deben describir el mismo árbol:
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 --offConserve la carpeta de configuración, la carpeta de datos, las aplicaciones personalizadas y el tema, además de ese volcado. Restaure las dos partes desde el mismo momento. Si el directorio de datos es más reciente que la base de datos, los usuarios ven archivos que la caché de archivos desconoce y occ files:scan --all los repara. Si la base de datos es más reciente, las filas de la caché apuntan a archivos que ya no existen y occ files:cleanup elimina las entradas de caché que no tienen una entrada correspondiente en la tabla de almacenamiento.
En ambos casos necesita un programa de copias de seguridad que gestione muchos archivos pequeños y conserve un historial. Eso es lo que hacen de forma diferente restic y BorgBackup.
Clientes en equipos de escritorio y dispositivos móviles
Seafile ofrece dos programas de escritorio. El cliente de sincronización mantiene una copia local de las bibliotecas que seleccione. El cliente Drive (SeaDrive) monta las bibliotecas como una unidad virtual y descarga los archivos cuando se accede a ellos: en Windows usa la API de archivos en la nube de Microsoft, en macOS la versión 3.0 es una extensión de Finder y en Linux se distribuye como un AppImage desde la versión 3.0.12 y monta las bibliotecas en ~/SeaDrive. Las bibliotecas cifradas funcionan en las tres plataformas de escritorio. Las aplicaciones móviles sirven para acceder a los archivos, y no intentan hacer nada más.
El cliente de escritorio de Nextcloud también ofrece archivos virtuales, y sus aplicaciones móviles incluyen el resto de la plataforma. Por tanto, el calendario, los contactos, Talk y las notas están disponibles junto con el acceso a los archivos. Si los usuarios trabajan principalmente desde sus teléfonos y necesitan algo más que archivos, esta es una diferencia real en el uso diario.
Un detalle de Seafile requiere planificación: la biblioteca es la unidad de uso compartido, sincronización, permisos y cifrado. Defina la estructura de las bibliotecas antes de cargar 500 GB en una sola, porque mover contenido entre bibliotecas implica copiarlo y eliminarlo, no cambiarle el nombre. Por tanto, el historial del archivo no se conserva.
Cifrado: qué protege realmente cada opción
Las bibliotecas cifradas de Seafile usan cifrado en el cliente. La contraseña nunca se almacena en el servidor. Con la biblioteca se almacena un token mágico derivado de la contraseña y del ID de la biblioteca, para que el cliente pueda comprobar la contraseña antes de sincronizar. La clave del archivo se cifra con una clave y un IV (vector de inicialización) derivados de la contraseña mediante AES 256/CBC, y los datos del archivo se cifran con esa clave.
Lea las limitaciones documentadas, porque suelen pasarse por alto. Una biblioteca cifrada cifra sólo el contenido de los archivos. Los nombres de carpetas y archivos no se cifran, ni tampoco los tamaños de los archivos ni el historial de edición. La navegación por una biblioteca cifrada desde un navegador web no es de extremo a extremo: se introduce la contraseña, el servidor la usa para descifrar la clave del archivo y la conserva en memoria durante una hora. El manual también indica claramente que una biblioteca cifrada no garantiza la integridad, porque un administrador del servidor puede modificar parte del contenido de un archivo y el cliente no puede detectarlo.
Nextcloud tiene dos funciones con nombres confusamente similares. El cifrado del lado del servidor cifra los archivos en reposo, pero conserva las claves en el mismo servidor. Por tanto, protege los datos almacenados en un almacenamiento externo mucho mejor de lo que protege frente a alguien con acceso root al equipo. La aplicación de cifrado de extremo a extremo cifra las carpetas seleccionadas en el cliente y, por diseño, el servidor no puede leerlas. Por eso, la interfaz web, la búsqueda del lado del servidor y las vistas previas tampoco pueden ver el contenido de esas carpetas.
El cifrado de ninguno de los dos productos sustituye a una copia de seguridad cifrada. Cifre la copia de seguridad por separado.
Calendarios, contactos, oficina y plataforma de aplicaciones
Este eje no está igualado. Nextcloud incluye CalDAV (calendario sobre WebDAV) y CardDAV (contactos sobre WebDAV) en el núcleo, se integra con Collabora u OnlyOffice para los documentos y tiene una tienda de aplicaciones para el resto. Seafile 13 incluye SeaDoc para documentos colaborativos y páginas wiki, y se detiene ahí. No tiene calendario ni libreta de direcciones.
La plataforma tiene un coste, y ese coste son las actualizaciones. Cada aplicación que instala es otro componente que puede bloquear una actualización de Nextcloud o comportarse mal después de ella. Por tanto, cuanto más dependan sus usuarios de estas aplicaciones, más cuidadosamente debe planificar la ventana de actualización. Seafile tiene menos componentes que puedan fallar porque ofrece menos funciones. Tenga en cuenta también que Seafile Professional, no Community Edition, añade la búsqueda de texto completo dentro de los documentos y los permisos a nivel de carpeta mediante una licencia de pago. Confirme que la función en la que basa su decisión está disponible en la edición que piensa ejecutar.
El modo de fallo por el que se conoce cada uno
Seafile falla cuando la base de datos y el almacén de objetos dejan de estar sincronizados. Aparece una biblioteca que no se puede abrir o desaparecen archivos, y seaf-fsck.sh muestra el bloque que falta. No existe un árbol de archivos que se pueda reparar manualmente. La recuperación consiste en restaurar el volcado de la base de datos y el almacén de objetos en el orden correcto. Pruebe esa restauración una vez en un VPS de reserva. Una copia de seguridad que nunca se ha restaurado es sólo una suposición.
Nextcloud falla cuando la caché de archivos y el disco no coinciden. Suele ocurrir porque algún proceso escribe en el directorio de datos sin informar a Nextcloud. Aparece un archivo en el disco que la interfaz web no muestra o una carpeta cuyo tamaño es incorrecto, y occ files:scan lo corrige. Sus otros dos puntos problemáticos son el rendimiento del protocolo con muchos archivos pequeños, que no se puede solucionar añadiendo CPU, y la memoria de PHP. Las vistas previas de imágenes y vídeos grandes suelen provocar el aumento de consumo. Reserve 512 MB por proceso y genere las vistas previas mediante una tarea programada, no durante las peticiones.
Ninguno de los dos: Syncthing, si sólo quiere sincronizar archivos
Si su requisito real es replicar una carpeta entre máquinas, ambos productos ofrecen más funciones de las que necesita. Syncthing no tiene servidor ni cuentas. Cada dispositivo es un peer, y un VPS se convierte en el peer que permanece activo cuando el portátil entra en suspensión. Syncthing 2 es la línea actual, y los paquetes proceden del repositorio del propio proyecto:
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 syncthingEjecútelo como un usuario normal, nunca como root, para que los archivos que escriba tengan una propiedad adecuada:
sudo systemctl enable --now syncthing@youruser
systemctl status syncthing@youruserLa interfaz web se enlaza a 127.0.0.1:8384 de forma predeterminada, por lo que no es accesible desde Internet. Ese es el valor predeterminado correcto. Acceda a ella mediante un túnel SSH desde el portátil:
ssh -L 8384:127.0.0.1:8384 youruser@your-serverDespués, abra http://127.0.0.1:8384 en el portátil. La sincronización usa el puerto 22000 mediante TCP y QUIC, y el descubrimiento local usa UDP 21027, que no funciona a través de Internet. En un VPS, abra 22000 y mantenga cerrada la interfaz:
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udpLo que pierde son todas las funciones de servidor: no hay enlaces para compartir con personas que no ejecuten Syncthing, explorador web de archivos, cuentas de usuario ni papelera del servidor, salvo que habilite el versionado de archivos para cada carpeta. La sorpresa habitual es el archivo de conflicto. Edite un archivo en dos dispositivos mientras no puedan comunicarse y obtendrá un archivo hermano con un nombre similar a notes.sync-conflict-20260806-142233-ABCD1EF.md. No aparece ningún aviso, así que busque sync-conflict de vez en cuando.
Si no quiere una carpeta sincronizada, sino un bucket en el que escriban las aplicaciones, necesita otra herramienta: consulte almacenamiento de objetos compatible con S3 autogestionado. Para conocer mejor las opciones disponibles, el resumen de alternativas autogestionadas a Dropbox incluye las que no aparecen en esta comparación.
La regla de decisión
- Elija Seafile si necesita sincronización a escala: muchos archivos, archivos grandes y varios dispositivos, y acepta un almacén de datos que sólo Seafile puede leer.
- Elija Nextcloud si necesita una plataforma: calendarios, contactos, documentos y enlaces compartidos, con archivos normales en disco que cualquier herramienta de copia de seguridad pueda leer.
- Elija Syncthing si sólo necesita una carpeta reflejada.
Elija ahora con cuidado, porque la migración entre Seafile y Nextcloud es lo que realmente genera dependencia del proveedor. No existe ningún conversor. Debe sincronizar todo con un cliente, cargarlo en el otro servidor y asumir el coste de ancho de banda y tiempo, mientras el historial de versiones y los enlaces compartidos se quedan atrás. Dimensionar la opción actual para los próximos tres años cuesta menos que cambiar en el segundo año.
FAQ
¿Seafile es más rápido que Nextcloud para sincronizar bibliotecas grandes?
Sí, en los dos casos que suelen causar problemas, y por una razón que puede comprobar. Seafile divide los archivos en bloques de unos 8 MB de media y transfiere sólo los bloques modificados. Por eso, una edición dentro de un archivo grande mueve pocos bloques. La unidad de transferencia de Nextcloud es el archivo completo. Por tanto, la misma edición vuelve a cargarlo entero. Además, muchos archivos pequeños requieren al menos una solicitud WebDAV cada uno. Por eso su API de carga masiva agrupa los archivos pequeños. Mida el tiempo en su propio VPS antes de decidir, porque la CPU, el disco y el enlace de red importan tanto como el protocolo.
¿Puedo hacer una copia de seguridad de Seafile ejecutando rsync en el directorio de datos?
Sólo junto con las bases de datos y en el orden documentado. El manual de Seafile indica que primero se debe hacer una copia de seguridad de SQL y después del directorio de datos. Así, cada registro de la base de datos hace referencia a un objeto que existe en la copia de seguridad. El comando rsync -az /opt/seafile-data/seafile /backup/data/ copia conf, seafile-data y seahub-data, pero por sí solo no se puede restaurar. El almacén de objetos no contiene un árbol de archivos legible y la base de datos es su índice. Después de restaurar ambas partes, ejecute seaf-fsck.sh y revise su salida antes de dar por válido el resultado.
¿Necesito Nextcloud si sólo quiero sincronizar archivos?
No. Nextcloud es una plataforma. El calendario, los contactos y la tienda de aplicaciones consumen memoria y requieren atención durante las actualizaciones, aunque no los use. Para sincronizar archivos sin más, Seafile es el producto más ligero y tiene el protocolo más rápido. Syncthing es aún más ligero porque no requiere un componente de servidor. Elija Nextcloud cuando necesite las aplicaciones adicionales, no como opción predeterminada.
¿Una biblioteca cifrada de Seafile oculta los nombres de mis archivos?
No. Una biblioteca cifrada cifra el contenido de los archivos en el cliente y la contraseña nunca llega al servidor. Sin embargo, los nombres de las carpetas, los nombres de los archivos, los tamaños y el historial de ediciones permanecen visibles en el servidor. Al abrir una biblioteca cifrada en la interfaz web, la contraseña también se envía al servidor. El servidor descifra la clave del archivo y mantiene la contraseña en memoria durante una hora. Si los nombres también son confidenciales, no use esa biblioteca desde la interfaz web y aplique el cifrado en otra capa.
¿Cuánta RAM debo asignar a Seafile o Nextcloud en un VPS?
Empiece con 4 GB y 2 núcleos para cualquiera de los dos cuando tenga pocos usuarios. Después, supervise la memoria durante la generación de vistas previas y las búsquedas. La documentación de Seafile establece un mínimo de 2 GB de RAM y una CPU de 2 núcleos por encima de 2 GHz. Nextcloud recomienda 512 MB por proceso PHP. Multiplique esa cantidad por el número de workers antes de añadir la base de datos y la caché. Syncthing funciona correctamente con 1 GB.