Installation Seafile · 17 min read · Dec 14, 2025

Comment installer Seafile Cloud Storage auto-hébergé avec Nginx sur Ubuntu 22.04

Seafile est une plateforme de synchronisation et de partage de fichiers auto-hébergée et open-source. Elle permet aux utilisateurs de stocker et de chiffrer des données sur leurs serveurs sans dépendre de fournisseurs de cloud tiers. Seafile vous permet de partager des fichiers et des dossiers en utilisant la synchronisation multiplateforme et des liens protégés par mot de passe avec des dates d’expiration. Seafile versionne également les fichiers, ce qui permet à un utilisateur de restaurer des fichiers ou des dossiers supprimés ou modifiés.

Dans ce tutoriel, vous apprendrez à installer Seafile sur un serveur Ubuntu 22.04, MySQL, et Nginx en tant que serveur proxy inverse.

Prérequis

  • Un serveur exécutant Ubuntu 22.04 avec un minimum de 2 cœurs CPU et 2 Go de RAM.
  • Un utilisateur non-root avec des privilèges sudo.
  • Un nom de domaine entièrement qualifié (FQDN) comme seafile.example.com.
  • Assurez-vous que tout est à jour. $ sudo apt update $ sudo apt upgrade
  • Quelques paquets dont votre système a besoin. $ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y Certains de ces paquets peuvent déjà être installés sur votre système.

Étape 1 - Configurer le pare-feu

La première étape consiste à configurer le pare-feu. Ubuntu est livré par défaut avec ufw (Uncomplicated Firewall).

Vérifiez si le pare-feu est en cours d’exécution.

$ sudo ufw status

Vous devriez obtenir la sortie suivante.

Status: inactive

Autorisez le port SSH afin que le pare-feu ne rompe pas la connexion actuelle lors de son activation.

$ sudo ufw allow OpenSSH

Autorisez également les ports HTTP et HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Activez le pare-feu

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Vérifiez à nouveau l’état du pare-feu.

$ sudo ufw status

Vous devriez voir une sortie similaire.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Étape 2 - Installer les dépendances de Seafile

Puisque Seafile est écrit dans le framework Python Django, vous devez installer ses dépendances et les paquets Python pour le faire fonctionner.

Exécutez la commande suivante pour installer les outils Python, le gestionnaire de paquets Pip, les bibliothèques SQL et Memcached.

$ sudo apt install -y python3 python3-setuptools python3-pip libmysqlclient-dev memcached libmemcached-dev

Exécutez la commande suivante pour installer les dépendances Python.

$ sudo pip3 install --timeout=3600 django==3.2.* future==0.18.* mysqlclient==2.1.* \
    pymysql pillow==9.3.* pylibmc captcha==0.4 markupsafe==2.0.1 jinja2 sqlalchemy==1.4.3 \
    psd-tools django-pylibmc django_simple_captcha==0.5.* djangosaml2==1.5.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 lxml

Étape 3 - Installer MySQL

Ubuntu 22.04 est livré avec la dernière version de MySQL. Vous pouvez l’installer avec une seule commande.

$ sudo apt install -y mysql-server

Vérifiez la version de MySQL.

$ mysql --version
mysql  Ver 8.0.32-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))

Cette étape est nécessaire pour les versions de MySQL 8.0.28 et supérieures. Entrez dans le shell MySQL.

$ sudo mysql

Exécutez la commande suivante pour définir le mot de passe de votre utilisateur root. Assurez-vous qu’il contient un mélange de chiffres, de lettres majuscules, de lettres minuscules et de caractères spéciaux.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';

Quittez le shell.

mysql> exit

Exécutez le script d’installation sécurisée de MySQL.

$ sudo mysql_secure_installation

Tout d’abord, on vous demandera votre mot de passe root. Entrez-le. Ensuite, on vous demandera d’installer le composant de validation des mots de passe. Il vérifie la force des mots de passe utilisés dans MySQL. Appuyez sur Y pour l’installer. Ensuite, on vous demandera de définir le niveau de la politique de validation des mots de passe. Choisissez 2 car c’est le plus fort.

Securing the MySQL server deployment.

Enter password for user root:

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Using existing password for root.

Estimated strength of the password: 100

Ensuite, entrez N pour refuser de changer votre mot de passe root. Entrez également Y pour supprimer les utilisateurs anonymes, interdire les connexions root à distance, supprimer la base de données de test et recharger les tables de privilèges.

Change the password for root ? ((Press y|Y for Yes, any other key for No) : N

 ... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.

All done!

Étape 4 - Configurer MySQL

Connectez-vous au shell MySQL. Entrez votre mot de passe root lorsqu’on vous le demande.

$ sudo mysql -u root -p

Créez les trois bases de données suivantes.

mysql> CREATE DATABASE ccnet_db CHARACTER SET utf8;
mysql> CREATE DATABASE seafile_db CHARACTER SET utf8;
mysql> CREATE DATABASE seahub_db CHARACTER SET utf8;

Créez un compte utilisateur SQL pour accéder à ces bases de données. Seafile ne fonctionne qu’avec le plugin d’authentification mysql_native_password et comme MySQL 8 ne l’utilise pas par défaut, vous devez donc le spécifier lors de la création.

mysql> CREATE USER 'seafile'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Your_password2';

Accordez tous les privilèges sur les trois bases de données à l’utilisateur.

mysql> GRANT ALL PRIVILEGES ON `ccnet_db`.* to `seafile`@localhost;
mysql> GRANT ALL PRIVILEGES ON `seafile_db`.* to `seafile`@localhost;
mysql> GRANT ALL PRIVILEGES ON `seahub_db`.* to `seafile`@localhost;

Rafraîchissez les privilèges de l’utilisateur.

mysql> FLUSH PRIVILEGES;

Quittez le shell.

mysql> exit

Étape 5 - Créer un répertoire et un utilisateur Seafile

Créez le répertoire pour les fichiers du programme Seafile.

$ sudo mkdir /opt/seafile

Créez l’utilisateur pour Seafile.

$ sudo adduser --home /opt/seafile --shell /bin/bash seafile

Changez la propriété du répertoire au nouvel utilisateur.

$ sudo chown -R seafile: /opt/seafile

Étape 6 - Télécharger et installer Seafile

Connectez-vous en tant qu’utilisateur Seafile. Entrez votre mot de passe utilisateur lorsqu’on vous le demande.

$ su seafile

Visitez la page de téléchargement de Seafile et récupérez le lien de téléchargement pour la dernière version de Seafile. Au moment de la rédaction de ce tutoriel, la dernière version est 10.0.1.

Téléchargez l’archive du serveur Seafile.

$ wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_10.0.1_x86-64.tar.gz

Extrayez l’archive.

$ tar xf seafile-server_10.0.1_x86-64.tar.gz

Accédez au répertoire Seafile.

$ cd seafile-server-10.0.1/

Exécutez le script d’installation de Seafile.

$ ./setup-seafile-mysql.sh

Le script d’installation va démarrer. Appuyez sur la touche ENTER pour continuer.

Checking python on this machine ...

-----------------------------------------------------------------
This script will guide you to setup your seafile server using MySQL.
Make sure you have read seafile server manual at

        https://download.seafile.com/published/seafile-manual/home.md

Press ENTER to continue
-----------------------------------------------------------------

Ensuite, configurez votre serveur Seafile en fournissant un nom pour votre serveur, un nom de domaine (seafile.example.com), et le port. Vous pouvez laisser le champ du port vide pour que Seafile utilise le port 8082 par défaut. Une fois configuré, appuyez sur la touche ENTER pour continuer.

What is the name of the server? It will be displayed on the client.
3 - 15 letters or digits
[ server name ] Howtoforge

What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server's ip or domain ] seafile.example.com

Which port do you want to use for the seafile fileserver?
[ default "8082" ]

Ensuite, on vous demandera de choisir un moyen d’initialiser les bases de données Seafile. Puisque nous avons déjà créé la base de données, choisissez la 2ème option.

-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------

[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases

[ 1 or 2 ] 2

Ensuite, on vous demandera d’entrer les détails de la base de données pour Seafile. Laissez les champs hôte et port vides pour que Seafile sélectionne les valeurs par défaut. Entrez les autres valeurs comme configuré à l’Étape 4.

What is the host of mysql server?
[ default "localhost" ]

What is the port of mysql server?
[ default "3306" ]

Which mysql user to use for seafile?
[ mysql user for seafile ] seafile

What is the password for mysql user "seafile"?
[ password for seafile ]

verifying password of user seafile ...  done

Enter the existing database name for ccnet:
[ ccnet database ] ccnet_db

verifying user "seafile" access to database ccnet_db ...  done

Enter the existing database name for seafile:
[ seafile database ] seafile_db

verifying user "seafile" access to database seafile_db ...  done

Enter the existing database name for seahub:
[ seahub database ] seahub_db

verifying user "seafile" access to database seahub_db ...  done

Ensuite, vous verrez vos configurations Seafile. Appuyez sur la touche ENTER pour continuer l’installation.

---------------------------------
This is your configuration
---------------------------------

    server name:            Howtoforge
    server ip/domain:       seafile.example.com

    seafile data dir:       /opt/seafile/seafile-data
    fileserver port:        8082

    database:               use existing
    ccnet database:         ccnet_db
    seafile database:       seafile_db
    seahub database:        seahub_db
    database user:          seafile


---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------

Vous verrez l’écran suivant si l’installation a réussi.

Generating ccnet configuration ...

Generating seafile configuration ...

done
Generating seahub configuration ...

----------------------------------------
Now creating ccnet database tables ...

----------------------------------------
----------------------------------------
Now creating seafile database tables ...

----------------------------------------
----------------------------------------
Now creating seahub database tables ...

----------------------------------------

creating seafile-server-latest symbolic link ...  done


-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------

run seafile server:     ./seafile.sh { start | stop | restart }
run seahub  server:     ./seahub.sh  { start  | stop | restart  }

-----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
-----------------------------------------------------------------

port of seafile fileserver:   8082
port of seahub:               8000

When problems occur, Refer to

        https://download.seafile.com/published/seafile-manual/home.md

for information.

Étape 7 - Démarrer le serveur Seafile

Accédez au répertoire /opt/seafile/seafile-server-latest.

$ cd /opt/seafile/seafile-server-latest

Exécutez la commande suivante pour démarrer le serveur Seafile.

$ ./seafile.sh start

Vous obtiendrez la sortie suivante.

Starting seafile server, please wait ...
** Message: 04:42:32.937: seafile-controller.c(621): No seafevents.

Seafile server started

Done.

Exécutez la commande suivante pour démarrer Seahub.

$ ./seahub.sh start

La première fois que Seahub démarre, on vous demandera les détails du compte administrateur.

LC_ALL is not set in ENV, set to en_US.UTF-8
Starting seahub at port 8000 ...

----------------------------------------
It's the first time you start the seafile server. Now let's create the admin account
----------------------------------------

What is the email for the admin account?
[ admin email ] [email protected]

What is the password for the admin account?
[ admin password ]

Enter the password again:
[ admin password again ]

----------------------------------------
Successfully created seafile admin
----------------------------------------


Seahub is started

Done.

Arrêtez les serveurs Seafile et Seahub.

$ ./seafile.sh stop
$ ./seahub.sh stop

Étape 8 - Configurer Seafile

Ouvrez le fichier /opt/seafile/conf/seafile.conf pour l’éditer.

$ nano /opt/seafile/conf/seafile.conf

Ajoutez le paramètre host = 127.0.0.1 sous la section [fileserver].

[fileserver]
host = 127.0.0.1
port = 8082

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsqu’on vous le demande.

Ouvrez le fichier /opt/seafile/conf/seahub_settings.py pour l’éditer.

$ nano /opt/seafile/conf/seahub_settings.py

Modifiez la valeur de SERVICE_URL pour refléter le protocole HTTPS.

SERVICE_URL = "https://seafile.example.com/"

Ajoutez la ligne suivante en dessous.

FILE_SERVER_ROOT = "https://seafile.example.com/seafhttp"

Ajoutez le code suivant à la fin du fichier.

CACHES = {
    'default': {
        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211',
    },
}

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsqu’on vous le demande.

Quittez le shell de l’utilisateur Seafile.

$ exit

Étape 9 - Créer un service Systemd

Pour vous assurer que Seafile démarre automatiquement au démarrage et peut résister aux redémarrages, vous devez créer des fichiers d’unité de service Systemd pour cela.

Créez et ouvrez le fichier /etc/systemd/system/seafile.service pour l’éditer.

$ sudo nano /etc/systemd/system/seafile.service

Collez le code suivant dedans.

[Unit]
Description=Seafile
# add mysql.service or postgresql.service depending on your database to the line below
After=network.target mysql.service

[Service]
Type=forking
ExecStart=/opt/seafile/seafile-server-latest/seafile.sh start
ExecStop=/opt/seafile/seafile-server-latest/seafile.sh stop
LimitNOFILE=infinity
User=seafile
Group=seafile

[Install]
WantedBy=multi-user.target

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsqu’on vous le demande.

Créez et ouvrez le fichier /etc/systemd/system/seahub.service pour l’éditer.

$ sudo nano /etc/systemd/system/seahub.service

Collez le code suivant dedans.

[Unit]
Description=Seafile hub
After=network.target seafile.service

[Service]
Type=forking
# change start to start-fastcgi if you want to run fastcgi
ExecStart=/opt/seafile/seafile-server-latest/seahub.sh start
ExecStop=/opt/seafile/seafile-server-latest/seahub.sh stop
User=seafile
Group=seafile

[Install]
WantedBy=multi-user.target

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsqu’on vous le demande.

Rechargez le démon Systemctl.

$ sudo systemctl daemon-reload

Exécutez les commandes suivantes pour activer et démarrer les services Seafile et Seahub.

$ sudo systemctl enable --now seafile
$ sudo systemctl enable --now seahub

Vérifiez l’état des deux services.

$ sudo systemctl status seafile
? seafile.service - Seafile
     Loaded: loaded (/etc/systemd/system/seafile.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-04-19 07:20:38 UTC; 24s ago
      Tasks: 19 (limit: 1026)
     Memory: 11.6M
        CPU: 102ms
     CGroup: /system.slice/seafile.service
             ??3601 /opt/seafile/seafile-server-10.0.1/seafile/bin/seafile-controller -c /opt/seafile/ccnet -d /opt/seafile/seafile-data -F /opt/seafile/conf

Ensuite, vérifiez l’état de Seahub.

$ sudo systemctl status seahub
? seahub.service - Seafile hub
     Loaded: loaded (/etc/systemd/system/seahub.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-04-19 07:20:54 UTC; 19s ago
    Process: 3655 ExecStart=/opt/seafile/seafile-server-latest/seahub.sh start (code=exited, status=0/SUCCESS)
   Main PID: 3668 (python3)
      Tasks: 6 (limit: 1026)
     Memory: 85.8M
        CPU: 1.177s
     CGroup: /system.slice/seahub.service
             ??3668 python3 /opt/seafile/seafile-server-10.0.1/seahub/thirdpart/bin/gunicorn seahub.wsgi:application -c /opt/seafile/conf/gunicorn.conf.py --preload

Étape 10 - Installer Nginx

Ubuntu 22.04 est livré avec une version plus ancienne de Nginx. Pour installer la dernière version, vous devez télécharger le dépôt officiel de Nginx.

Importez la clé de signature de Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Ajoutez le dépôt pour la version stable de Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Mettez à jour les dépôts du système.

$ sudo apt update

Installez Nginx.

$ sudo apt install nginx

Vérifiez l’installation.

$ nginx -v
nginx version: nginx/1.24.0

Démarrez le serveur Nginx.

$ sudo systemctl start nginx

Étape 11 - Installer SSL

Nous devons installer Certbot pour générer le certificat SSL. Vous pouvez soit installer Certbot en utilisant le dépôt d’Ubuntu, soit récupérer la dernière version en utilisant l’outil Snapd. Nous allons utiliser la version Snapd.

Ubuntu 22.04 est livré avec Snapd installé par défaut. Exécutez les commandes suivantes pour vous assurer que votre version de Snapd est à jour.

$ sudo snap install core && sudo snap refresh core

Installez Certbot.

$ sudo snap install --classic certbot

Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Exécutez la commande suivante pour générer un certificat SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d seafile.example.com

La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/seafile.example.com sur votre serveur.

Générez un certificat de groupe Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Vérifiez le service de planification de renouvellement de Certbot.

$ sudo systemctl list-timers

Vous trouverez snap.certbot.renew.service comme l’un des services programmés pour s’exécuter.

NEXT                        LEFT          LAST                        PASSED        UNIT                       ACTIVATES
Wed 2023-04-19 10:31:47 UTC 2h 55min left Wed 2023-04-19 03:31:58 UTC 4h 3min ago   ua-timer.timer             ua-timer.service
Wed 2023-04-19 12:02:42 UTC 4h 26min left Wed 2023-04-19 03:19:20 UTC 4h 16min ago  motd-news.timer            motd-news.service
Wed 2023-04-19 18:19:56 UTC 10h left      Wed 2023-04-19 07:19:52 UTC 16min ago     apt-daily.timer            apt-daily.service
Wed 2023-04-19 22:51:00 UTC 15h left      n/a                         n/a           snap.certbot.renew.timer   snap.certbot.renew.service

Faites un essai à sec du processus pour vérifier si le renouvellement SSL fonctionne correctement.

$ sudo certbot renew --dry-run

Si vous ne voyez aucune erreur, vous êtes prêt. Votre certificat se renouvellera automatiquement.

Étape 12 - Configurer Nginx

Créez et ouvrez le fichier /etc/nginx/conf.d/seafile.conf pour l’éditer.

$ sudo nano /etc/nginx/conf.d/seafile.conf

Collez le code suivant dedans.

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;
    listen       [::]:80;
    server_name  seafile.example.com;
    rewrite ^ https://$http_host$request_uri? permanent;    # Forced redirect from HTTP to HTTPS

    server_tokens off;      # Prevents the Nginx version from being displayed in the HTTP response header
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    ssl_certificate /etc/letsencrypt/live/seafile.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/seafile.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/seafile.example.com/chain.pem;
    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    resolver 8.8.8.8;

    server_name seafile.example.com;
    server_tokens off;

    location / {
        proxy_pass         http://127.0.0.1:8000;
        proxy_set_header   Host $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;

        proxy_set_header   X-Forwarded-Proto https;

        # used for view/edit office file 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;

        # Uncomment the following line if you want to support uploads > 4GB
        # proxy_request_buffering off;

        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 le fichier en appuyant sur Ctrl + X et en entrant Y lorsqu’on vous le demande une fois terminé.

Ouvrez le fichier /etc/nginx/nginx.conf pour l’éditer.

$ sudo nano /etc/nginx/nginx.conf

Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsqu’on vous le demande.

Vérifiez la syntaxe du fichier de configuration Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Redémarrez le service Nginx.

$ sudo systemctl restart nginx

Étape 13 - Accéder à Seafile

Ouvrez l’URL https://seafile.example.com dans votre navigateur et vous obtiendrez l’écran de connexion suivant.

Écran de connexion Seafile

Entrez les identifiants que vous avez créés à l’étape 7 et cliquez sur le bouton Se connecter pour continuer. Vous serez accueilli par la page suivante.

Tableau de bord Seafile

Cliquez sur Ma bibliothèque pour ouvrir la bibliothèque par défaut.

Bouton Télécharger des fichiers Seafile

Cliquez sur le bouton Télécharger et sélectionnez l’option Télécharger des fichiers. Sélectionnez le fichier que vous souhaitez télécharger et cliquez sur le bouton Ouvrir.

La barre de progression se chargera et votre fichier sera bientôt téléchargé.

Progression du téléchargement de fichiers Seafile

Pour accéder au panneau d’administration, cliquez sur l’icône de photo de profil dans la zone en haut à droite.

Bouton Administrateur système Seafile

Sélectionnez l’option Administrateur système pour ouvrir le panneau d’administration.

Panneau d'administration Seafile

À partir de là, vous pouvez changer la marque de votre site, activer des mots de passe plus forts et l’authentification à deux facteurs, désactiver les inscriptions et gérer plusieurs utilisateurs parmi d’autres options.

Conclusion

Cela conclut notre tutoriel sur l’installation de Seafile, un stockage cloud auto-hébergé sur un serveur Ubuntu 22.04. Si vous avez des questions, postez-les dans les commentaires ci-dessous.

Share: X/Twitter LinkedIn

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

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