GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Seafile avec Nginx sur Ubuntu 20.04 LTS

Seafile est un système d'hébergement de fichiers et de stockage en nuage open source avec des fonctions avancées telles que la synchronisation à partir de plusieurs plates-formes (système multiplateforme), la protection de la vie privée avec cryptage de fichiers intégré et la prise en charge de l'authentification à deux facteurs (TFA), le contrôle de version, verrouillage de fichiers, édition en ligne et bien d'autres. Seafile est écrit en langage de programmation C et Python et fournit des fonctionnalités similaires telles que Dropbox, mega.co.nz et autres.

Dans ce tutoriel, je vais vous montrer étape par étape comment installer et configurer un serveur Seafile avec le serveur Web Nginx et la base de données MariaDB. Nous installerons le serveur seafile sous le serveur Web Nginx avec HTTPS SSL Letsencrypt activé, en utilisant la dernière version de MariaDB sur le système Ubuntu 20.04.

Prérequis

  • Ubuntu 20.04
  • Privilèges root

Qu'allons-nous faire ?

  • Installer les dépendances Seafile Python
  • Installer et configurer MariaDB
  • Télécharger le serveur Seafile pour le serveur Linux
  • Installer le serveur Seafile avec MariaDB
  • Configurer Seafile avec le nom de domaine
  • Exécuter Seafile en tant que service Systemd
  • Générer SSL Letsencrypt et DHPARAM
  • Installer et configurer Nginx en tant que proxy inverse
  • Configurer le pare-feu
  • Test

Étape 1 - Installer les dépendances Seafile Python

La première étape à franchir avant d'installer le serveur seafile sur le système consiste à installer ses dépendances. Seafile est une application basée sur python, et elle nécessite python 3.x pour s'exécuter sur le serveur.

Avant d'installer des packages, nous devons mettre à jour le référentiel Ubuntu.

mise à jour sudo apt

Installez maintenant python 3.x avec toutes les dépendances nécessaires à l'installation du serveur seafile en utilisant les commandes apt ci-dessous.

sudo apt installer python3 libpython3.8 python3-setuptools python3-pil python3-ldap python3-urllib3 ffmpeg python3-pip python3-mysqldb python3-memcache python3-requests libmemcached-dev

Après cela, installez des packages python supplémentaires à partir du référentiel PyPI à l'aide de la commande pip ci-dessous.

pip3 install --timeout=3600 Oreiller pylibmc captcha jinja2 sqlalchemy psd-tools django-pylibmc django-simple-captcha python3-ldap

En conséquence, toutes les dépendances de packages pour Seafile ont été installées.

Étape 2 - Installer et configurer MariaDB

Seafile prend en charge SQLite et le serveur de base de données MariaDB. Pour ce guide, nous utiliserons le serveur de base de données MariaDB pour notre installation. Nous allons déployer le serveur seafile en utilisant la dernière version de MariaDB.

Installez le serveur MariaDB à l'aide de la commande apt ci-dessous.

sudo apt install mariadb-server -y

Une fois l'installation terminée, démarrez le service MariaDB et activez-le pour qu'il se lance à chaque démarrage du système.

systemctl start mariadb
systemctl enable mariadb

Le serveur MariaDB est installé sur le système Ubuntu, vérifiez-le à l'aide de la commande suivante.

statut systemctl mariadb

Le service MariaDB est opérationnel.

Ensuite, nous devons configurer le mot de passe root de MariaDB à l'aide de la commande 'mysql_secure_installation'.

mysql_secure_installation

Maintenant, on vous posera des questions sur la configuration de MariaDB et tapez votre mot de passe root fort pour MariaDB.

Entrez le mot de passe actuel pour root (entrez pour aucun) :Appuyez sur Entrée
Définir le mot de passe root ? [O/n] O
Supprimer les utilisateurs anonymes ? [O/n] O
Interdire la connexion root à distance ? [O/n] O
Supprimer la base de données de test et y accéder ? [O/n] O  
Recharger les tableaux de privilèges maintenant ? [O/n] O

Ensuite, nous allons créer une nouvelle base de données pour le serveur Seafile. Nous allons créer 3 bases de données pour chaque composant seafile et créer un nouvel utilisateur de base de données. Nous allons créer un nouvel utilisateur nommé 'seafile' et il aura tous les privilèges sur les 3 bases de données 'ccnet-db', 'seafile-db' et 'seahub-db'.

Connectez-vous au shell MySQL à l'aide de la commande ci-dessous.

mysql -u root -p

Créez maintenant de nouvelles bases de données 'ccnet-db', 'seafile-db', 'seahub-db' et créez un nouvel utilisateur 'seafile'. Accordez ensuite les 3 privilèges de base de données à l'utilisateur 'seafile'.

Exécutez les requêtes MySQL ci-dessous.

créer la base de données `ccnet-db` jeu de caractères ='utf8';
créer la base de données `seafile-db` jeu de caractères ='utf8';
créer la base de données `seahub-db` jeu de caractères =' utf8';

créer l'utilisateur 'seafile'@'localhost' identifié par '[email protected]';

ACCORDER TOUS LES PRIVILÈGES SUR `ccnet-db`.* à ` seafile`@localhost;
ACCORDER TOUS LES PRIVILÈGES SUR `seafile-db`.* à `seafile`@localhost;
ACCORDER TOUS LES PRIVILÈGES SUR `seahub-db`.* à `seafile`@localhost;

Le serveur MariaDB a été installé, le mot de passe root a été configuré et la base de données pour l'installation de seafile a été créée.

Étape 3 - Télécharger Seafile Server pour Linux Server

Dans ce didacticiel, le serveur seafile s'exécutera en tant que service sur le système systemd, et il s'exécutera sous un utilisateur non root.

Créez un nouvel utilisateur nommé 'ryujin'.

useradd -m -s /bin/bash ryujin

Connectez-vous maintenant à l'utilisateur 'ryujin' et téléchargez la dernière version du serveur seafile à l'aide de wget.

su - ryujin
wget -q https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_7.1.3_x86-64.tar.gz

Extrayez le fichier 'seafile-server.tar.gz' et renommez le répertoire maître en 'seafile-server'.

tar -xf seafile-server_7.1.3_x86-64.tar.gz
mv seafile-server-*/ seafile-server/

Le code source du serveur seafile a été téléchargé dans le répertoire '/home/ryujin/seafile-server'.

Étape 4 - Installer Seafile Server avec MariaDB

Dans cette étape, nous allons installer le serveur seafile à l'aide du script d'installation MariaDB fourni par Seafile.

Connectez-vous en tant qu'utilisateur 'ryujin' et accédez au répertoire 'seafile-server'.

su - ryujin
cd seafile-server/

Exécutez maintenant le script 'setup-seafile-mysql.sh'.

./setup-seafile-mysql.sh

Le script d'installation effectuera la vérification du module python. Assurez-vous que toutes les dépendances sont installées, puis appuyez sur Entrée.

Vous serez maintenant dans la configuration de Seafile.

  • nom du serveur :saisissez le nom de votre serveur Seafile, tel que "hakase-cloud".
  • nom de domaine du serveur :saisissez le nom de domaine de votre serveur Seafile "cloud.hakase-labs.io".
  • répertoire de données seafile :laissez la configuration par défaut et appuyez sur entrée.
  • port du serveur de fichiers seafile :laissez-le sur le port par défaut '8082'.

Passons maintenant à la configuration de la base de données. Deux options vous seront demandées :laisser le script créer la base de données pour vous ou utiliser une base de données existante.

Choisissez l'option '2' pour utiliser les paramètres de base de données existants.

  • hôte de la base de données :hôte local par défaut
  • port de la base de données :par défaut sur le port normal mysql '3306'
  • l'utilisateur de la base de données est 'seafile' avec le mot de passe '[email protected]'
  • base de données ccnet :'ccnet-db'
  • base de données seafile :'seafile-db'
  • base de données seahub :'seahub-db'

Maintenant, appuyez à nouveau sur Entrée pour confirmer la configuration de notre serveur Seafile.

Et lorsque l'installation est terminée, vous obtiendrez le résultat comme indiqué ci-dessous.

L'installation et la configuration du serveur seafile se sont terminées avec succès. Et le serveur de fichiers seafile fonctionnera sous le port '8082', le service seahub fonctionnera sous le port '8000'.

Ensuite, nous testerons l'exécution du serveur seafile et du serveur seahub à l'aide du script de démarrage.

En tant qu'utilisateur 'ryujin', allez dans le répertoire '~/seafile-server-latest'.

su - ryujin
cd ~/seafile-server-latest/

Démarrez maintenant le serveur seafile en exécutant la commande ci-dessous.

./seafile.sh start

Lancez ensuite le serveur seahub.

./seahub.sh start

La première fois que vous exécutez le script de démarrage 'seahub.sh', il vous sera demandé de créer un utilisateur administrateur et un mot de passe pour le serveur seafile.

Saisissez votre adresse e-mail et votre mot de passe administrateur, puis appuyez sur Entrée.

Et l'utilisateur admin et le mot de passe ont été créés - vérifiez maintenant les ports de service seafile et seahub '8082' et '8080' à l'aide de la commande netstat.

ss-plnt4

Et vous verrez que le serveur seafile et le serveur seahub sont opérationnels sur le système Ubuntu 20.04.

Maintenant, arrêtez le serveur seafile et seahub.

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

Étape 5 - Configurer Seafile avec le nom de domaine

Pour ce tutoriel, nous allons exécuter le Seafile avec notre nom de domaine 'seafile.hakase-labs.io'. Pour ce faire, nous devons modifier certaines des configurations Seafile.

Connectez-vous à l'utilisateur 'ryujin' et allez dans le répertoire 'conf'.

su - ryujin
cd conf/

Modifiez la configuration 'ccnet.conf' à l'aide de l'éditeur vim.

vim ccnet.conf

sur l'option 'SERVICE_URL', modifiez la valeur avec le nom de domaine et assurez-vous de changer le protocole HTTP par défaut avec le protocole sécurisé HTTPS comme ci-dessous.

SERVICE_URL =https://seafile.hakase-labs.io

Enregistrez et fermez.

Ensuite, éditez la configuration 'seafile.conf'.

vim seafile.conf

Dans la section '[fileserver]', spécifiez l'adresse IP 'host' pour le service seafile. Le service seafile fonctionnera sur l'adresse locale comme ci-dessous.

[serveur de fichiers]
hôte =127.0.0.1
port =8082

Enregistrez et fermez.

Ensuite, modifiez le 'seahub_settings.py' à l'aide de l'éditeur vim.

vim seahub_settings.py

Ajoutez l'option 'FILE_SERVER_ROOT' comme ci-dessous au bas de la ligne.

FILE_SERVER_ROOT ='https://seafile.hakase-labs.io/seafhttp'

Enregistrez et fermez.

Et la configuration de Seafile est terminée, il fonctionnera sous le nom de domaine 'seafile.hakase-labs.io'.

Étape 6 - Exécuter Seafile en tant que service Systemd

Après avoir configuré Seafile avec le nom de domaine, nous configurerons seafile et seahub en tant que service systemd.

Allez dans le répertoire '/etc/systemd/system' et créez un nouveau fichier de service pour seafile nommé 'seafile.service'.

cd /etc/systemd/system/
vim seafile.service

Collez-y la configuration suivante.

[Unité]
Description=Seafile
Après=network.target mysql.service nginx.service

[Service]
Type=forking
ExecStart=/home/ryujin/seafile-server-latest/seafile.sh start
ExecStop=/home/ryujin/seafile-server-latest/seafile.sh stop
User=ryujin
Groupe =ryujin

[Installer]
WantedBy=multi-user.target

Enregistrez et fermez.

Ensuite, créez le fichier de service seahub nommé 'seahub.service'.

vim seahub.service

Collez-y la configuration suivante.

[Unité]
Description=Seafile hub
Après=network.target seafile.service

[Service]
Type=forking
ExecStart=/home/ryujin/seafile-server-latest/seahub.sh start
ExecStop=/home/ryujin/seafile-server-latest/seahub.sh stop
User=ryujin
Group=ryujin

[Installer]
WantedBy=multi-user.target

Enregistrez et fermez.

Et les fichiers de service seafile et seahub ont été créés.

Ensuite, rechargez le gestionnaire systemd et assurez-vous qu'il n'y a pas d'erreur.

rechargement du démon systemctl

Démarrez maintenant le service seafile et ajoutez-le au démarrage du système.

systemctl start seafile
systemctl enable seafile

Après cela, démarrez et activez le service Seahub.

systemctl démarrer seahub
systemctl activer seahub

Les services seafile et seahub sont opérationnels, vérifiez-les à l'aide de la commande suivante.

état de systemctl seafile seahub

Vous trouverez ci-dessous le résultat que vous obtiendrez.

En conséquence, la configuration de Seafile et Seahub en tant que service systemd est terminée.

Étape 7 - Générer SSL Letsencrypt et DHPARAM

Dans cette étape, nous allons générer le certificat SSL Letsencrypt et DHPARAM. Nous allons utiliser l'outil certbot pour générer le SSL Letsencrypt et utiliser la commande openssl pour générer le certificat dhparam.

Pour générer le SSL Letsencrypt, assurez-vous que vous avez le vrai nom de domaine et que vous pointez vers l'adresse IP de votre serveur.

Installez l'outil certbot sur le système Ubuntu à l'aide de la commande apt ci-dessous.

sudo apt install certbot

Après cela, générez le SSL Letsencrypt pour le nom de domaine seafile 'seafile.hakase-labs.io' en utilisant la commande certbot comme ci-dessous.

certbot certonly --agree-tos --no-eff-email --email [email protected] -d seafile.hakase-labs.io

Une fois tout le processus terminé, votre certificat sera disponible dans le répertoire '/etc/letsencrypt/live/seafile.hakase-labs.io'.

Ensuite, générez le certificat DHPARAM à l'aide de la commande openssl comme ci-dessous.

openssl dhparam -out /etc/nginx/dhparam.pem 2048

Le certificat DHAPRAM sera généré et disponible sur le '/etc/nginx/dhparam.pem'.

En conséquence, le SSL Letsencrypt pour le nom de domaine Seafile et le certificat DHPARAM ont été générés.

Étape 8 - Installer et configurer Nginx en tant que proxy inverse

Dans cette étape, nous allons installer et configurer Nginx en tant que proxy inverse pour le service Seafile. Le serveur Web Nginx fonctionnera sous le protocole sécurisé HTTPS avec le certificat SSL Letsencrypt et DHPARAM généré en haut.

Installez Nginx sur le serveur Ubuntu 20.04 à l'aide de la commande apt ci-dessous.

sudo apt install nginx -y

Une fois toute l'installation terminée, démarrez le service Nginx et ajoutez-le au démarrage du système.

systemctl démarrer nginx
systemctl activer nginx

Et le service Nginx est opérationnel sur le système Ubuntu.

Ensuite, allez dans le répertoire '/etc/nginx/sites-available' et créez un nouveau 'seafile' de configuration d'hôte virtuel à l'aide de l'éditeur vim.

cd /etc/nginx/sites-available/
vim seafile

Collez-y la configuration suivante.

serveur {
        écouter       80 ;
        nom_serveur  seafile.hakase-labs.io ;
        réécrire ^ https://$http_host$request_uri ? permanent ;
        server_tokens off ;
    }
    server {
        listen 443 ssl http2 ;
        server_name seafile.hakase-labs.io ;
        
ssl_certificate /etc/letsencrypt/live/seafile.hakase-labs.io/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/seafile.hakase-labs.io/privkey.pem;
        ssl_session_timeout 5m;
        ssl_session_cache partagé :SSL :5 m ;

        ssl_dhparam /etc/nginx/dhparam.pem ;

        #SSL Security
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 ;
        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-
        ssl_ecdh_curve secp384r1 ;
        ssl_prefer_server_ciphers activé ;
        server_tokens désactivé ;
       ssl_session_tickets ;

        proxy_set_header X-Forwarded-For $remote_addr ;

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

            # utilisé pour afficher/modifier le fichier Office via Office Online Server
            client_max_body_size 0 ;

           access_log      /var/log/nginx/seahub.access.log ;
            error_log       /var/log/nginx/seahub.error.log ;
        }

        emplacement /seafdav {
            proxy_pass         http://127.0.0.1:8080/ seafdav ;
            proxy_set_header   Hôte $host ;
            proxy_set_header   X-Real-IP $remote_addr ;
            proxy_set_he ADER X-Forwarded-for $ proxy_add_x_forwarded_for;
proxy_set_header x-Forwarded-host $ server_name;
proxy_set_header x-forwardd-proto $ schéma;
proxy_read_timeout 1200;
client_max_body_size 0; br />
            access_log      /var/log/nginx/seafdav.access.log ;
            error_log       /var/log/nginx/seafdav.error.log ;
        }

        location /seafhttp {
            réécrire ^/seafhttp(.*)$ $1 pause ;
            proxy_pass http://127.0.0.1:8082 ;
            client_max_body_size 0 ;
            proxy_set -Forwarded-for $ proxy_add_x_forwarded_for;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000;
Send_timeout 36000s;
}
Location / Media {
            root /home/ryujin/seafile-server-latest/seahub ;
        }
    }

Enregistrez et fermez.

Ensuite, activez la configuration de l'hôte virtuel pour seafile et testez la configuration Nginx.

ln -s /etc/nginx/sites-available/seafile /etc/nginx/sites-enabled/
nginx -t

Assurez-vous qu'il n'y a pas d'erreur, puis redémarrez le service Nginx.

systemctl redémarrer nginx

En conséquence, l'installation et la configuration de Nginx en tant que proxy inverse pour Seafile ont été effectuées avec succès.

Étape 9 - Configurer le pare-feu

Pour ce didacticiel, nous exécuterons le Seafile avec le pare-feu UFW activé. Et nous devons ajouter les services SSH, HTTP et HTTPS à la configuration du pare-feu UFW.

Ajoutez les services SSH, HTTP et HTTPS au pare-feu UFW à l'aide de la commande suivante.

for svc in ssh http https
do
ufw allow $svc
done

Activez maintenant le pare-feu UFW et vérifiez l'état de la configuration.

ufw enable
statut ufw numéroté

Et vous obtiendrez le résultat ci-dessous.

Le pare-feu UFW est activé et les services SSH, HTTP et HTTPS ont été ajoutés.

Nous sommes maintenant prêts à utiliser Seafile.

Étape 10 - Tester

Ouvrez votre navigateur Web et saisissez le nom de domaine d'installation de Seafile dans la barre d'adresse.

https://seafile.hakase-labs.io/

Vous serez maintenant redirigé vers la connexion HTTPS sécurisée et obtiendrez la page de connexion Seafile comme ci-dessous.

Tapez le mot de passe de l'utilisateur Seafile que vous venez de créer en haut et cliquez sur le bouton "Connexion".

Vous obtiendrez maintenant le tableau de bord Seafile comme ci-dessous.

Vous trouverez ci-dessous le résultat après avoir créé un nouveau dossier et téléchargé le fichier sur le serveur Seafile.

En conséquence, l'installation et la configuration de Seafile avec le serveur Web Nginx et la base de données MariaDB sur Ubuntu 20.04 ont été terminées avec succès.


Ubuntu
  1. Comment installer MariaDB dans Ubuntu 20.04 LTS

  2. Comment installer MediaWiki avec Nginx sur Ubuntu 16.04

  3. Comment installer Seafile avec Nginx sur Ubuntu 18.04 LTS

  4. Comment installer Magento avec Nginx sur Ubuntu 15.10

  5. Comment déployer Modsecurity avec Nginx sur Ubuntu 20.04 LTS

Comment installer Seafile sur Ubuntu 16.04 LTS

Comment installer Nginx avec le module Ngx_Pagespeed sur Ubuntu 16.04 LTS

Comment installer Joomla avec Nginx sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 20.04 LTS

Comment installer Seafile sur Ubuntu 20.04 LTS