Installation Seafile · 11 min read · Sep 14, 2025
Comment installer Seafile Cloud Storage auto-hébergé sur Debian 12

Seafile est un système d’hébergement de fichiers open-source écrit dans le framework web Django. C’est un logiciel multiplateforme qui offre un ensemble de fonctionnalités de stockage cloud et permet aux utilisateurs de stocker, gérer et partager des fichiers au sein de l’écosystème Seafile.
Dans Seafile, les fichiers sont stockés sur le serveur central et peuvent être synchronisés avec des clients sur plusieurs appareils et téléphones mobiles. Seafile est une alternative aux services d’hébergement de fichiers comme Google Drive, Dropbox et Mega.nz. Avec Seafile, vous pouvez construire une solution de partage de fichiers pour vos applications cloud privées.
Cet article vous guidera à travers l’installation de Seafile sur un serveur Debian 12 avec MariaDB comme base de données, Nginx comme proxy inverse, et HTTPS via Letsencrypt et UFW (Uncomplicated Firewall) pour sécuriser Seafile.
Prérequis
Pour commencer ce guide, assurez-vous d’avoir les exigences suivantes :
- Un serveur Debian 12
- Un utilisateur non-root avec des privilèges d’administrateur
- Un nom de domaine pointé vers l’adresse IP du serveur
Installation des dépendances
Seafile est écrit dans le framework web Django, qui est basé sur Python. Pour installer Seafile, vous devez vous assurer que Python est installé. De plus, vous aurez besoin de dépendances telles que MariaDB/MySQL comme base de données, Nginx comme proxy inverse, et Memcached ou Redis pour la gestion des sessions et du cache. Dans cette section, vous installerez ces paquets via le gestionnaire de paquets APT.
Tout d’abord, exécutez la commande ci-dessous pour mettre à jour l’index des paquets Debian.
sudo apt updateMaintenant, exécutez la commande suivante pour installer des dépendances telles que Python3, le serveur MariaDB, le serveur web Nginx, Memcached, et quelques bibliothèques supplémentaires sur votre système.
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-devEntrez ‘ Y ‘ pour confirmer l’installation.

Après l’installation, vérifiez le serveur MariaDB avec la commande ci-dessous.
sudo systemctl is-enabled mariadb
sudo systemctl status mariadbDans la sortie suivante, vous pouvez voir que le serveur MariaDB est activé et en cours d’exécution.

Maintenant, vérifiez le service Nginx en utilisant la commande suivante.
sudo systemctl is-enabled nginx
sudo systemctl status nginxVous pouvez voir ci-dessous que le serveur web Nginx est en cours d’exécution et activé.

Enfin, vérifiez le service Memcached pour vous assurer qu’il fonctionne. Le service Memcached doit être en cours d’exécution et activé.
sudo systemctl is-enabled memcached
sudo systemctl status memcached
Configuration du serveur MariaDB
Maintenant que vous avez installé MariaDB, l’étape suivante consiste à configurer et sécuriser le déploiement du serveur MariaDB. Ensuite, vous créerez un nouvel utilisateur MariaDB avec plusieurs bases de données qui seront utilisées par Seafile. Vous sécuriserez MariaDB avec la commande ‘ mariadb-secure-installation ‘, et utiliserez le client ‘ mariadb ‘ pour créer de nouveaux utilisateurs et bases de données.
Exécutez la commande ‘ mariadb-secure-installation ‘ ci-dessous pour sécuriser votre installation de serveur MariaDB.
sudo mariadb-secure-installationVous serez maintenant interrogé sur les configurations suivantes :
- Pour l’installation par défaut du serveur MariaDB sans mot de passe root, appuyez sur ENTER lorsqu’on vous demande le mot de passe.
- L’authentification locale pour les utilisateurs root de MariaDB est sécurisée par défaut, saisissez ‘ n ‘ lorsqu’on vous demande de changer la méthode d’authentification en ‘ unix_socket ‘.
- Saisissez ‘ Y ‘ pour créer un nouveau mot de passe root MariaDB. Ensuite, saisissez le mot de passe fort pour votre utilisateur root MariaDB et répétez.
- Lorsqu’on vous demande de désactiver l’authentification à distance pour l’utilisateur root de MariaDB, saisissez ‘ Y ‘ pour accepter.
- Saisissez ‘ Y ‘ pour supprimer la base de données par défaut ‘test’ et supprimer le privilège anonyme.
- Enfin, saisissez ‘ Y ‘ pour confirmer le rechargement des privilèges de table.
Maintenant que vous avez configuré le mot de passe root de MariaDB et sécurisé MariaDB, vous allez créer de nouvelles bases de données et un utilisateur pour l’installation de Seafile.
Exécutez la commande ‘ mariadb ‘ ci-dessous pour vous connecter au serveur MariaDB. Entrez votre mot de passe root MariaDB lorsque vous y êtes invité.
sudo mariadb -u root -pCréez un nouvel utilisateur ‘ seafile ‘ avec la requête suivante. Assurez-vous de changer le mot de passe suivant par un nouveau mot de passe sécurisé.
create user 'seafile'@'localhost' identified by 'password';Exécutez les requêtes suivantes pour créer de nouvelles bases de données ‘ ccnet_db ‘, ‘ seafile_db ‘, et ‘ seahub_db ‘.
create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';Ensuite, exécutez les requêtes ci-dessous pour permettre à l’utilisateur ‘ seafile ‘ d’accéder aux bases de données 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;
Vérifiez maintenant les privilèges pour l’utilisateur ‘ seafile ‘ pour vous assurer qu’il a accès et privilèges aux bases de données ‘ ccnet_db ‘, ‘ seafile_db ‘, et ‘ seahub_db ‘.
SHOW GRANTS FOR seafile@localhost;Enfin, tapez ‘ quit ‘ pour quitter le serveur MariaDB.

Installation des dépendances Python
Dans cette section, vous allez créer un nouvel utilisateur système pour exécuter Seafile, créer un répertoire d’installation et un environnement virtuel Python, puis installer les dépendances Python en utilisant la commande ‘ pip ‘.
Tout d’abord, ajoutez un nouvel utilisateur ‘ seafile ‘ avec la commande suivante.
sudo adduser seafile
Maintenant, créez un nouveau répertoire d’installation ‘ /opt/seafile ‘ et déplacez-vous dedans.
mkdir -p /opt/seafile; cd /opt/seafileExécutez la commande ci-dessous pour créer un environnement virtuel Python ‘ venv ‘ et l’activer. Une fois activé, votre shell devrait devenir comme ‘ (venv) user@hostname # ‘.
python3 -m venv venv
source venv/bin/activate
Ensuite, exécutez la commande ‘ pip3 ‘ ci-dessous pour installer les dépendances Python pour Seafile. Ces paquets doivent être installés à l’intérieur de l’environnement virtuel ‘ 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
Après l’installation, changez la propriété du répertoire ‘ /opt/seafile ‘ à l’utilisateur ‘ seafile ‘ en utilisant la commande ci-dessous.
sudo chown -R seafile: /opt/seafileTéléchargement et installation de Seafile
À ce stade, vous êtes prêt à installer Seafile. Vous allez maintenant télécharger le code source de Seafile, l’installer avec MariaDB et Memcached, ajouter le nom de domaine de Seafile via la configuration par défaut, puis démarrer le processus Seafile manuellement.
Exécutez la commande suivante pour vous connecter en tant qu’utilisateur ‘ seafile ‘ et aller dans le répertoire ‘ /opt/seafile ‘.
su seafile
cd /opt/seafileTéléchargez le code source de Seafile et extrayez-le en utilisant la commande suivante. Dans cet exemple, vous allez installer Seafile 11, assurez-vous de vérifier la page de téléchargement de Seafile pour obtenir la dernière version.
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.gzMaintenant, activez l’environnement virtuel ‘ venv ‘ avec ce qui suit :
source venv/bin/activateAllez dans le répertoire ‘ seafile-server-11.0.12 ‘ et exécutez le script ‘ setup-seafile-mysql.sh ‘. Avec cela, vous allez installer Seafile sur votre système avec MariaDB comme base de données.
cd seafile-server-11.0.12
./setup-seafile-mysql.shMaintenant, vous serez interrogé sur les configurations suivantes de Seafile :
- Entrez le nom de votre serveur Seafile.
- Entrez votre domaine pour l’installation de Seafile.
- Saisissez ‘ 2 ‘ pour intégrer Seafile avec les bases de données et l’utilisateur MySQL/MariaDB existants.
- Entrez les détails de l’hôte MariaDB, du port, de l’utilisateur et du mot de passe.
- Entrez la base de données pour ccnet comme ‘ ccnet_db ‘, seafile comme ‘ seafile_db ‘, et seahub comme ‘ seahub_db ‘.
- Appuyez sur ENTER pour confirmer l’installation et terminer la configuration.


Après la configuration, vous allez modifier la configuration de Seafile pour l’exécuter sous le proxy inverse Nginx.
Allez dans le répertoire ‘ /opt/seafile/conf ‘ et ouvrez le fichier ‘ seahub_settings.py ‘ avec l’éditeur ‘ nano ‘.
cd /opt/seafile/conf
nano seahub_settings.pyAjoutez votre nom de domaine à l’option ‘ SERVICE_URL ‘ et assurez-vous d’inclure le ‘ https ‘ au début.
SERVICE_URL = 'https://seafile.howtoforge.local'Ajoutez l’option ‘ FILE_SERVER_ROOT ‘ comme suit avec votre nom de domaine.
FILE_SERVER_ROOT = 'https://seafile.howtoforge.local/seafhttp'Enfin, ajoutez le paramètre ‘ CACHES ‘ pour intégrer Seafile avec le système de cache Memcached.
CACHES = {
'default': {
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
'LOCATION': '127.0.0.1:11211',
},
}Lorsque vous avez terminé, enregistrez le fichier et quittez l’éditeur.
Maintenant, revenez au répertoire ‘ /opt/seafile/seafile-server-latest/ ‘ et exécutez les scripts ‘ seafile.sh ‘ et ‘ seahub.sh ‘ pour exécuter Seafile.
cd /opt/seafile/seafile-server-latest/
./seafile.sh start
./seahub.sh startLorsque Seafile démarre, vous verrez une sortie ‘ Serveur Seafile démarré ‘. On vous demandera également de configurer un utilisateur administrateur pour Seafile, alors assurez-vous de saisir votre nom d’utilisateur, votre e-mail et votre mot de passe.

Configuration de Nginx comme proxy inverse
Maintenant que Seafile est opérationnel avec MariaDB et Memcached, l’étape suivante consiste à configurer Nginx comme proxy inverse pour Seafile. Assurez-vous donc d’avoir un nom de domaine prêt et pointé vers l’adresse IP de votre serveur.
Créez une nouvelle configuration de bloc serveur Nginx ‘ /etc/nginx/sites-available/seafile ‘ avec l’éditeur ‘ nano ‘.
sudo nano /etc/nginx/sites-available/seafileInsérez la configuration ci-dessous et assurez-vous de changer l’option ‘ server_name ‘ avec votre nom de domaine.
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;
# utilisé pour voir/éditer des fichiers Office via 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;
}
}Enregistrez et quittez le fichier une fois terminé.
Exécutez maintenant la commande ci-dessous pour activer le bloc serveur ‘seafile’ et vérifier votre syntaxe Nginx. Vous verrez une sortie ‘ la syntaxe est correcte - le test est réussi ‘ lorsque vous avez une configuration Nginx correcte.
sudo ln -s /etc/nginx/sites-available/seafile /etc/nginx/sites-enabled/
sudo nginx -tEnfin, exécutez la commande ci-dessous pour redémarrer le serveur web Nginx et appliquer vos modifications.
sudo systemctl restart nginx
Sécuriser Seafile avec UFW et HTTPS
Après avoir configuré Nginx comme proxy inverse, vous allez sécuriser Seafile avec HTTPS et UFW (Uncomplicated Firewall). Vous allez installer UFW et Certbot, ouvrir des services tels que SSH, HTTP et HTTPS, puis générer de nouveaux certificats SSL avec Certbot de Letsencrypt.
Tout d’abord, exécutez la commande ci-dessous pour installer les paquets ‘ ufw ‘ et ‘ certbot ‘.
sudo apt install ufw certbot -y
Maintenant, exécutez la commande ci-dessous pour activer les profils ‘ OpenSSH ‘ et ‘ Nginx Full ‘. Le profil ‘ OpenSSH ‘ ouvrira le port SSH par défaut ‘ 22 ‘, et le profil ‘ Nginx Full ‘ permettra les connexions HTTP et HTTPS au serveur.
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'Ensuite, exécutez la commande suivante pour démarrer et activer UFW. Entrez ‘ y ‘ pour confirmer, et vous verrez une sortie ‘ Le pare-feu est actif et activé au démarrage du système ‘.
sudo ufw enable
Enfin, vous pouvez maintenant générer des certificats SSL et sécuriser votre installation Seafile avec la commande ‘ certbot ‘ ci-dessous. Assurez-vous de changer le nom de domaine et l’adresse e-mail avec vos informations.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d seafile.howtoforge.localAprès le processus, votre Seafile devrait être sécurisé avec HTTPS et vos certificats seront disponibles dans le répertoire ‘ /etc/letsencrypt/live/domain.com ‘.
Accéder à Seafile
Ouvrez votre navigateur web et visitez votre nom de domaine Seafile tel que https://seafile.howtoforge.local. Si l’installation est réussie, vous serez invité à la page de connexion Seafile.
Entrez votre adresse e-mail administrateur et votre mot de passe, puis cliquez sur ‘ Se connecter ‘.

Si vous avez les bonnes informations d’identification administratives, vous pouvez voir le tableau de bord Seafile suivant.

Vous pouvez maintenant essayer de télécharger des fichiers sur Seafile pour vous assurer que l’installation est réussie.
Conclusion
Félicitations ! Vous avez terminé l’installation de Seafile Cloud Storage auto-hébergé sur le serveur Debian 12. Vous avez Seafile opérationnel avec le serveur de base de données MariDB et Nginx comme proxy inverse. Vous avez également sécurisé Seafile avec UFW (Uncomplicated Firewall) et SSL via Certbot et Letsencrypt. Maintenant que Seafile est installé, vous pouvez intégrer Seafile avec d’autres applications telles que ONLYOFFICE Document Server ou LibreOffice Online (Collabora Online).
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.