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 update

Maintenant, 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-dev

Entrez ‘ Y ‘ pour confirmer l’installation.

installer les dépendances

Après l’installation, vérifiez le serveur MariaDB avec la commande ci-dessous.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

Dans la sortie suivante, vous pouvez voir que le serveur MariaDB est activé et en cours d’exécution.

vérifier le service mariadb

Maintenant, vérifiez le service Nginx en utilisant la commande suivante.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Vous pouvez voir ci-dessous que le serveur web Nginx est en cours d’exécution et activé.

vérifier l'état du service nginx

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

Vérifier le service 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-installation

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

Cré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;

créer une base de données et un utilisateur

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.

vérifier les privilèges de l'utilisateur et quitter

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

ajouter un utilisateur

Maintenant, créez un nouveau répertoire d’installation ‘ /opt/seafile ‘ et déplacez-vous dedans.

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

Exé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

configuration de venv

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

Installer les dépendances Python

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

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

Té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.gz

Maintenant, activez l’environnement virtuel ‘ venv ‘ avec ce qui suit :

source venv/bin/activate

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

Maintenant, 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.

installation de seafile avec MySQL/MariaDB

installation terminée

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

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

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

Démarrer Seafile et Seahub

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

Insé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 -t

Enfin, exécutez la commande ci-dessous pour redémarrer le serveur web Nginx et appliquer vos modifications.

sudo systemctl restart nginx

configuration de Nginx comme proxy inverse

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

installer certbot et ufw

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

activer ufw

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

Aprè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 ‘.

Connexion Seafile

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

tableau de bord

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

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.