Instalación Seafile · 11 min read · Sep 14, 2025
Cómo instalar Seafile de almacenamiento en la nube autohospedado en Debian 12

Seafile es un sistema de alojamiento de archivos de código abierto escrito en el marco web Django. Es un software multiplataforma que ofrece un conjunto de características de almacenamiento en la nube y permite a los usuarios almacenar, gestionar y compartir archivos dentro del ecosistema de Seafile.
En Seafile, los archivos se almacenan en el servidor central y se pueden sincronizar con clientes en múltiples dispositivos y teléfonos móviles. Seafile es una alternativa a servicios de alojamiento de archivos como Google Drive, Dropbox y Mega.nz. Con Seafile, puedes construir una solución de intercambio de archivos para tus aplicaciones de nube privada.
Este artículo te guiará a través de la instalación de Seafile en un servidor Debian 12 con MariaDB como base de datos, Nginx como proxy inverso y HTTPS a través de Letsencrypt y UFW (Firewall poco complicado) para asegurar Seafile.
Requisitos previos
Para comenzar con esta guía, asegúrate de tener los siguientes requisitos:
- Un servidor Debian 12
- Un usuario no root con privilegios de administrador
- Un nombre de dominio apuntado a la dirección IP del servidor
Instalando dependencias
Seafile está escrito en el marco web Django, que se basa en Python. Para instalar Seafile, debes asegurarte de que Python esté instalado. Además, necesitarás dependencias como MariaDB/MySQL como base de datos, Nginx como proxy inverso y Memcached o Redis para la gestión de sesiones y caché. En esta sección, instalarás esos paquetes a través del gestor de paquetes APT.
Primero, ejecuta el siguiente comando para actualizar el índice de paquetes de Debian.
sudo apt updateAhora ejecuta el siguiente comando para instalar dependencias como Python3, servidor MariaDB, servidor web Nginx, Memcached y algunas bibliotecas adicionales en tu sistema.
sudo apt install mariadb-server nginx python3 python3-dev python3-setuptools python3-pip libmariadb-dev-compat ldap-utils libldap2-dev libsasl2-dev python3.11-venv memcached libmemcached-devIngresa ‘ Y ‘ para confirmar la instalación.

Una vez que la instalación esté completa, verifica el servidor MariaDB con el siguiente comando.
sudo systemctl is-enabled mariadb
sudo systemctl status mariadbEn la salida siguiente, puedes ver que el servidor MariaDB está habilitado y en ejecución.

Ahora verifica el servicio Nginx usando el siguiente comando.
sudo systemctl is-enabled nginx
sudo systemctl status nginxPuedes ver que el servidor web Nginx está en ejecución y habilitado.

Por último, verifica el servicio Memcached para asegurarte de que esté en funcionamiento. El servicio Memcached debe estar en ejecución y habilitado.
sudo systemctl is-enabled memcached
sudo systemctl status memcached
Configurando el servidor MariaDB
Ahora que has instalado MariaDB, el siguiente paso será configurar y asegurar la implementación del servidor MariaDB. Luego, crearás un nuevo usuario de MariaDB con múltiples bases de datos que serán utilizadas por Seafile. Asegurarás MariaDB con el comando ‘ mariadb-secure-installation ‘ y usarás el cliente ‘ mariadb ‘ para crear nuevos usuarios y bases de datos.
Ejecuta el comando ‘ mariadb-secure-installation ‘ a continuación para asegurar tu instalación del servidor MariaDB.
sudo mariadb-secure-installationAhora se te preguntará sobre las siguientes configuraciones:
- Para la instalación predeterminada del servidor MariaDB sin una contraseña de root, presiona ENTER cuando se te pregunte sobre la contraseña.
- La autenticación local para los usuarios root de MariaDB está asegurada por defecto, ingresa ‘ n ‘ cuando se te pregunte si deseas cambiar el método de autenticación a ‘ unix_socket ‘.
- Ingresa ‘ Y ‘ para crear una nueva contraseña de root de MariaDB. Luego, ingresa la contraseña fuerte para tu usuario root de MariaDB y repítela.
- Cuando se te pregunte si deseas deshabilitar la autenticación remota para el usuario root de MariaDB, ingresa ‘ Y ‘ para aceptar.
- Ingresa ‘ Y ‘ para eliminar la base de datos predeterminada ‘test’ y eliminar el privilegio anónimo.
- Por último, ingresa ‘ Y ‘ para confirmar la recarga de los privilegios de las tablas.
Ahora que has configurado la contraseña de root de MariaDB y asegurado MariaDB, crearás nuevas bases de datos y un usuario para la instalación de Seafile.
Ejecuta el comando ‘ mariadb ‘ a continuación para iniciar sesión en el servidor MariaDB. Ingresa tu contraseña de root de MariaDB cuando se te solicite.
sudo mariadb -u root -pCrea un nuevo usuario ‘ seafile ‘ con la siguiente consulta. Asegúrate de cambiar la siguiente contraseña por una nueva contraseña segura.
create user 'seafile'@'localhost' identified by 'password';Ejecuta las siguientes consultas para crear nuevas bases de datos ‘ ccnet_db ‘, ‘ seafile_db ‘ y ‘ seahub_db ‘.
create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';A continuación, ejecuta las consultas a continuación para permitir que el usuario ‘ seafile ‘ acceda a las bases de datos de Seafile.
GRANT ALL PRIVILEGES ON ccnet_db.* to seafile@localhost;
GRANT ALL PRIVILEGES ON seafile_db.* to seafile@localhost;
GRANT ALL PRIVILEGES ON seahub_db.* to seafile@localhost;
Ahora verifica los privilegios para el usuario ‘ seafile ‘ para asegurar el acceso y privilegios a las bases de datos ‘ ccnet_db ‘, ‘ seafile_db ‘ y ‘ seahub_db ‘.
SHOW GRANTS FOR seafile@localhost;Por último, escribe ‘ quit ‘ para salir del servidor MariaDB.

Instalando dependencias de Python
En esta sección, crearás un nuevo usuario del sistema para ejecutar Seafile, crearás un directorio de instalación y un entorno virtual de Python, y luego instalarás las dependencias de Python usando el comando ‘ pip ‘.
Primero, agrega un nuevo usuario ‘ seafile ‘ con el siguiente comando.
sudo adduser seafile
Ahora crea un nuevo directorio de instalación ‘ /opt/seafile ‘ y muévete a él.
mkdir -p /opt/seafile; cd /opt/seafileEjecuta el comando a continuación para crear un entorno virtual de Python ‘ venv ‘ y activarlo. Una vez activado, tu shell debería verse como ‘ (venv) user@hostname # ‘.
python3 -m venv venv
source venv/bin/activate
A continuación, ejecuta el comando ‘ pip3 ‘ a continuación para instalar las dependencias de Python para Seafile. Estos paquetes deben instalarse dentro del entorno virtual ‘ venv ‘.
pip3 install --timeout=3600 django==4.2.* future==0.18.* mysqlclient==2.1.* pymysql pillow==10.0.* pylibmc captcha==0.4 markupsafe==2.0.1 jinja2 sqlalchemy==2.0.18 psd-tools django-pylibmc django_simple_captcha==0.5.* djangosaml2==1.5.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 lxml python-ldap==3.4.3
Una vez que la instalación esté completa, cambia la propiedad del directorio ‘ /opt/seafile ‘ al usuario ‘ seafile ‘ usando el siguiente comando.
sudo chown -R seafile: /opt/seafileDescargando e instalando Seafile
En este punto, estás listo para instalar Seafile. Ahora descargarás el código fuente de Seafile, lo instalarás con MariaDB y Memcached, agregarás el nombre de dominio de Seafile a través de la configuración predeterminada y luego iniciarás el proceso de Seafile manualmente.
Ejecuta el siguiente comando para iniciar sesión como usuario ‘ seafile ‘ y ve al directorio ‘ /opt/seafile ‘.
su seafile
cd /opt/seafileDescarga el código fuente de Seafile y extráelo usando el siguiente comando. En este ejemplo, estarás instalando Seafile 11, asegúrate de verificar la página de descarga de Seafile para obtener la última versión.
wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_11.0.12_x86-64.tar.gz
tar xf seafile-server_11.0.12_x86-64.tar.gzAhora activa el entorno virtual ‘ venv ‘ con lo siguiente:
source venv/bin/activateVe al directorio ‘ seafile-server-11.0.12 ‘ y ejecuta el script ‘ setup-seafile-mysql.sh ‘. Con esto, estarás instalando Seafile en tu sistema con MariaDB como base de datos.
cd seafile-server-11.0.12
./setup-seafile-mysql.shAhora se te preguntará sobre las siguientes configuraciones de Seafile:
- Ingresa el nombre de tu servidor Seafile.
- Ingresa tu dominio para la instalación de Seafile.
- Ingresa ‘ 2 ‘ para integrar Seafile con bases de datos y usuarios MySQL/MariaDB existentes.
- Ingresa los detalles del host de MariaDB, puerto, usuario y contraseña.
- Ingresa la base de datos para ccnet como ‘ ccnet_db ‘, seafile como ‘ seafile_db ‘ y seahub como ‘ seahub_db ‘.
- Presiona ENTER para confirmar la instalación y completar la configuración.


Después de que la configuración esté terminada, modificarás la configuración de Seafile para ejecutarlo bajo el proxy inverso de Nginx.
Ve al directorio ‘ /opt/seafile/conf ‘ y abre el archivo ‘ seahub_settings.py ‘ con el editor ‘ nano ‘.
cd /opt/seafile/conf
nano seahub_settings.pyAgrega tu nombre de dominio a la opción ‘ SERVICE_URL ‘ y asegúrate de incluir el ‘ https ‘ al principio.
SERVICE_URL = 'https://seafile.howtoforge.local'Agrega la opción ‘ FILE_SERVER_ROOT ‘ como la siguiente con tu nombre de dominio.
FILE_SERVER_ROOT = 'https://seafile.howtoforge.local/seafhttp'Por último, agrega la configuración ‘ CACHES ‘ para integrar Seafile con el sistema de caché Memcached.
CACHES = {
'default': {
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
'LOCATION': '127.0.0.1:11211',
},
}Cuando termines, guarda el archivo y sal del editor.
Ahora vuelve al directorio ‘ /opt/seafile/seafile-server-latest/ ‘ y ejecuta los scripts ‘ seafile.sh ‘ y ‘ seahub.sh ‘ para ejecutar Seafile.
cd /opt/seafile/seafile-server-latest/
./seafile.sh start
./seahub.sh startCuando Seafile se inicie, verás una salida ‘ Seafile server started ‘. También se te pedirá que configures un usuario administrador para Seafile, así que asegúrate de ingresar tu nombre de usuario, correo electrónico y contraseña.

Configurando Nginx como un proxy inverso
Ahora que Seafile está en funcionamiento con MariaDB y Memcached, el siguiente paso es configurar Nginx como un proxy inverso para Seafile. Así que asegúrate de que tengas un nombre de dominio listo y apuntado a la dirección IP de tu servidor.
Crea una nueva configuración de bloque de servidor Nginx ‘ /etc/nginx/sites-available/seafile ‘ con el siguiente editor ‘ nano ‘.
sudo nano /etc/nginx/sites-available/seafileInserta la configuración a continuación y asegúrate de cambiar la opción ‘ server_name ‘ con tu nombre de dominio.
log_format seafileformat '$http_x_forwarded_for $remote_addr [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $upstream_response_time';
server {
listen 80;
server_name seafile.howtoforge.local;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_read_timeout 1200s;
# usado para ver/editar archivos de oficina a través de Office Online Server
client_max_body_size 0;
access_log /var/log/nginx/seahub.access.log seafileformat;
error_log /var/log/nginx/seahub.error.log;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
access_log /var/log/nginx/seafhttp.access.log seafileformat;
error_log /var/log/nginx/seafhttp.error.log;
}
location /media {
root /opt/seafile/seafile-server-latest/seahub;
}
}Guarda y sal del archivo cuando termines.
Ahora ejecuta el siguiente comando para activar el bloque de servidor ‘seafile’ y verificar la sintaxis de Nginx. Verás una salida ‘ syntax is ok - test is successful ‘ cuando tengas una configuración de Nginx adecuada.
sudo ln -s /etc/nginx/sites-available/seafile /etc/nginx/sites-enabled/
sudo nginx -tPor último, ejecuta el siguiente comando para reiniciar el servidor web Nginx y aplicar tus cambios.
sudo systemctl restart nginx
Asegurando Seafile con UFW y HTTPS
Después de haber configurado Nginx como un proxy inverso, asegurarás Seafile con HTTPS y UFW (Firewall poco complicado). Estarás instalando UFW y Certbot, abriendo servicios como SSH, HTTP y HTTPS, y luego generando nuevos certificados SSL con Certbot de Letsencrypt.
Primero, ejecuta el siguiente comando para instalar los paquetes ‘ ufw ‘ y ‘ certbot ‘.
sudo apt install ufw certbot -y
Ahora ejecuta el siguiente comando para habilitar los perfiles ‘ OpenSSH ‘ y ‘ Nginx Full ‘. El perfil ‘ OpenSSH ‘ abrirá el puerto SSH predeterminado ‘ 22 ‘, y el perfil ‘ Nginx Full ‘ permitirá conexiones HTTP y HTTPS al servidor.
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'A continuación, ejecuta el siguiente comando para iniciar y habilitar UFW. Ingresa ‘ y ‘ para confirmar, y verás una salida ‘ Firewall is active and enabled at system startup ‘.
sudo ufw enable
Finalmente, ahora puedes generar certificados SSL y asegurar tu instalación de Seafile con el comando ‘ certbot ‘ a continuación. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico con tu información.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d seafile.howtoforge.localDespués de que el proceso esté completo, tu Seafile debería estar asegurado con HTTPS y tus certificados estarán disponibles en el directorio ‘ /etc/letsencrypt/live/domain.com ‘.
Accediendo a Seafile
Abre tu navegador web y visita tu nombre de dominio de Seafile como https://seafile.howtoforge.local. Si la instalación es exitosa, se te pedirá la página de inicio de sesión de Seafile.
Ingresa tu dirección de correo electrónico de administrador y contraseña, luego haz clic en ‘ Iniciar sesión ‘.

Si tienes las credenciales de administrador correctas, podrás ver el siguiente panel de control de Seafile.

Ahora puedes intentar subir archivos a Seafile para asegurarte de que la instalación sea exitosa.
Conclusión
¡Felicidades! Has completado la instalación de Seafile de almacenamiento en la nube autohospedado en el servidor Debian 12. Tienes Seafile funcionando con el servidor de base de datos MariDB y Nginx como proxy inverso. También has asegurado Seafile con UFW (Firewall poco complicado) y SSL a través de Certbot y Letsencrypt. Ahora que Seafile está instalado, puedes integrar Seafile con otras aplicaciones como ONLYOFFICE Document Server o LibreOffice Online (Collabora Online).
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.