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 update

Ahora 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-dev

Ingresa ‘ Y ‘ para confirmar la instalación.

instalar dependencias

Una vez que la instalación esté completa, verifica el servidor MariaDB con el siguiente comando.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

En la salida siguiente, puedes ver que el servidor MariaDB está habilitado y en ejecución.

verificar servicio mariadb

Ahora verifica el servicio Nginx usando el siguiente comando.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Puedes ver que el servidor web Nginx está en ejecución y habilitado.

verificar estado del servicio nginx

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

Verificar servicio 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-installation

Ahora 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 -p

Crea 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;

crear base de datos y usuario

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.

verificar privilegios de usuario y salir

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

agregar usuario

Ahora crea un nuevo directorio de instalación ‘ /opt/seafile ‘ y muévete a él.

mkdir -p /opt/seafile; cd /opt/seafile

Ejecuta 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

configurando venv

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

Instalar dependencias de Python

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/seafile

Descargando 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/seafile

Descarga 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.gz

Ahora activa el entorno virtual ‘ venv ‘ con lo siguiente:

source venv/bin/activate

Ve 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.sh

Ahora 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.

instalando seafile con MySQL/MariaDB

instalación completa

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.py

Agrega 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 start

Cuando 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.

Iniciar Seafile y Seahub

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/seafile

Inserta 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 -t

Por último, ejecuta el siguiente comando para reiniciar el servidor web Nginx y aplicar tus cambios.

sudo systemctl restart nginx

configurar Nginx como un proxy inverso

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

instalar certbot y ufw

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

habilitar ufw

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.local

Despué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 ‘.

Iniciar sesión en Seafile

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

panel de control

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).

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.