SSD Nodes Learn Hosting plans →
Guías Matt ConnorPor Matt Connor · Actualizado 2026-10-19

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

Seafile frente a Nextcloud se reduce a una diferencia: 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 se convierten en una tarea de dos partes. Nextcloud escribe el archivo en el disco como un archivo y trata la sincronización como una función de una plataforma que también ejecuta calendarios, contactos, documentos y enlaces para compartir. Tome la decisión basándose en esta diferencia, porque el resto se deriva de ella.

En octubre de 2026, Seafile está en la serie 13.0 y Nextcloud, en la serie 35. Ambos son productos maduros y ninguno está a punto de cambiar su modelo de almacenamiento.

Cómo almacena Seafile los archivos

Seafile modela una biblioteca del mismo modo 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 segmentación definida 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. Las cargas mediante la interfaz web son la excepción: en ese caso, el servidor de archivos divide los archivos en bloques de tamaño fijo, de 8 MB de forma predeterminada. Los bloques reciben nombres basados en su contenido, por lo que dos versiones de un archivo grande comparten todos los bloques que no cambiaron, 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 bajo el directorio de datos. En la disposición de Docker utilizada por las series 12 y 13, ese directorio es /opt/seafile-data/seafile/seafile-data. Ejecutar ls allí no aporta información útil, porque se ven directorios llenos de nombres hash, no Invoices/2026/march.pdf.

La sincronización sigue el mismo modelo. El cliente pregunta al servidor qué cambió, recibe una lista de hashes de bloques y obtiene sólo los bloques que aún no tiene. Por eso Seafile funciona bien con una biblioteca grande: los bytes transferidos son proporcionales a los bloques que cambiaron, no al tamaño del archivo que los contiene.

Cómo almacena Nextcloud los archivos

Nextcloud guarda el archivo en el disco donde espera encontrarlo. La ruta data/<username>/files/ refleja lo que ve el usuario en la interfaz web. La tabla de la base de datos oc_filecache refleja el mismo árbol con tamaños, fechas de modificación y etags, y Nextcloud confía en la tabla, 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 para desarrolladores explica que cargar muchos archivos pequeños es más lento de lo que podría ser porque el ancho de banda de red no se utiliza por completo, así que los archivos pequeños se agrupan. Los archivos grandes usan en su lugar la API de fragmentación. El cliente de escritorio comienza con fragmentos de 100 MiB (chunkSize tiene 104857600 bytes de forma predeterminada) y puede ajustar dinámicamente el tamaño entre un mínimo de 5 MiB y un máximo de 100 MiB.

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. Copie archivos directamente en el directorio de datos y permanecerán invisibles en la interfaz web hasta que ejecute un análisis:

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

El manual del administrador indica exactamente estos casos para volver a analizar: después de copiar archivos 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 ~/synctest

Copie 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 512 MB recomendados por proceso. Debe multiplicar esa cifra 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 puntos de partida que usaría para un equipo pequeño. Son puntos de partida, no mediciones.

GráficoStarting point for about five users, and SQL databases per stack
Los datos de este gráfico
[
  {
    "label": "Seafile CE 13",
    "start_ram_gb": 4,
    "start_cpu_cores": 2,
    "sql_databases": 3
  },
  {
    "label": "Nextcloud 35",
    "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 y 2 núcleos. Por tanto, el consumo de recursos no permite decidir entre ellos. Syncthing funciona con 1 GB y 1 núcleo. Esa es la razón real para considerarlo. Los componentes y las dependencias cambian más que el consumo de memoria. Seafile mantiene 3 bases de datos SQL, mientras que Nextcloud mantiene 1. Además, el despliegue predeterminado de Seafile con Docker inicia el servidor, MariaDB, Redis, 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 .env

En .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 -d

El primer arranque crea las tres bases de datos y el usuario administrador. Las decisiones equivalentes de Nextcloud, incluido 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 más se subestima y en el que más se diferencian los dos productos.

En Seafile, el orden no es opcional. La regla del manual es hacer primero una copia de seguridad de SQL y después del directorio de datos, porque así cada registro de la base de datos tiene un objeto válido al que referenciar 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 el manual de Seafile recomienda la serie de comandos mariadb: los nombres mysql se están retirando en versiones recientes de MariaDB y, desde MariaDB 11.0, la imagen oficial de Docker ya no incluye el nombre mysqldump. El archivo Compose de Seafile 13 sigue usando MariaDB 10.11 de forma predeterminada, por lo que esto es especialmente importante al cambiar a una imagen de base de datos más reciente. 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 quedar desincronizadas. 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.sh

Cuando falta algo, la herramienta indica 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ó, como GC finished. 507 blocks total, about 507 reachable blocks, 0 blocks can be removed.. Si lo omite durante un año, las copias de seguridad seguirán ocupando espacio para datos que los usuarios ya 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 --off

Conserve la carpeta de configuración, la carpeta de datos, las aplicaciones personalizadas y el tema, además de ese volcado. Restaure ambas partes correspondientes al mismo momento. Si el directorio de datos es más reciente que la base de datos, los usuarios verán archivos que la caché de archivos no conoce, y occ files:scan --all lo corrige. 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 de escritorio y móviles

Seafile publica 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 AppImage desde la versión 3.0.12 y monta las bibliotecas en ~/SeaDrive. En Windows y macOS, las bibliotecas cifradas permanecen ocultas en el cliente Drive hasta que las selecciona desde el menú de la bandeja e introduce la contraseña. Las aplicaciones móviles sirven para acceder a los archivos, y no intentan hacer 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 eso, el calendario, los contactos, Talk y las notas están disponibles junto con el acceso a los archivos. Si sus usuarios trabajan principalmente desde teléfonos y necesitan algo más que archivos, esta es una diferencia real en el uso diario.

Hay un detalle de Seafile que debe planificar: 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 la plataforma de aplicaciones

Este eje no está cerrado. Nextcloud incluye CalDAV (calendario sobre WebDAV) y CardDAV (contactos sobre WebDAV) en el núcleo, integra Collabora u OnlyOffice para documentos y dispone de una tienda de aplicaciones para todo lo demás. Seafile 13 incluye SeaDoc para documentos colaborativos y páginas wiki, puede abrir y editar archivos de Office mediante un servidor OnlyOffice que usted despliegue por separado, y ahí termina. No dispone de calendario ni libreta de direcciones.

La plataforma tiene un precio, y ese precio son las actualizaciones. Cada aplicación que instala es un elemento más que puede bloquear una actualización de Nextcloud o funcionar incorrectamente después de ella, por lo que cuanto más dependan sus usuarios de ella, más cuidadosa debe ser su ventana de actualización. Seafile tiene menos elementos que puedan fallar porque hace menos cosas. Tenga en cuenta también que Seafile Professional, no la Community Edition, es la que añade la búsqueda de texto completo dentro de los documentos y los permisos a nivel de carpeta. La versión Professional funciona sin licencia de pago para un máximo de tres usuarios y requiere una licencia si se supera esa cantidad, así que confirme que la función con la que cuenta está en la edición que planea 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 syncthing

Ejecú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@youruser

La 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-server

Despué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/udp

Lo 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

  1. 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.
  2. 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.
  3. 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.

¿Te resultó útil este artículo?