GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Seafile avec Nginx sur Ubuntu 18.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 MySQL. Nous allons installer le serveur seafile sous le serveur Web Nginx avec HTTPS SSL Letsencrypt activé, en utilisant le dernier MySQL 5.8 sur le système Ubuntu 18.04.

Prérequis

  • Ubuntu 18.04
  • Privilèges root

Qu'allons-nous faire ?

  1. Installer les dépendances Seafile Python
  2. Installer et configurer MySQL
  3. Télécharger le serveur Seafile pour le système Linux
  4. Installer le serveur Seafile
  5. Installer Nginx et Letsencrypt
  6. Configurer Nginx en tant que proxy inverse pour le serveur Seafile
  7. Configurer le serveur Seafile
  8. Exécuter Seafile Server en tant que service
  9. Configurer le pare-feu UFW
  10. 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 2.7 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 2.7 avec toutes les dépendances nécessaires à l'installation du serveur seafile en utilisant les commandes apt ci-dessous.

sudo apt install python -y
sudo apt install python2.7 libpython2.7 python-setuptools python-pil python-ldap python-urllib3 ffmpeg python-pip python-mysqldb python-memcache python-requests -y

Attendez que toutes les dépendances soient installées.

Étape 2 - Installer et configurer MySQL

Seafile offre un support pour SQLite et le serveur de base de données MySQL. Pour ce guide, nous utiliserons le serveur de base de données MySQL pour notre installation. Nous allons déployer le serveur Seafile en utilisant la dernière version MySQL 5.8.

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

sudo apt install mysql-server mysql-client -y

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

systemctl démarrer mysql
systemctl activer mysql

Le serveur MySQL est installé sur le système Ubuntu.

Nous devons maintenant configurer le mot de passe root MySQL à l'aide de la commande 'mysql_secure_installation'.

mysql_secure_installation

Vous serez maintenant interrogé sur la politique de mot de passe MySQL, 0 pour LOW, 1 pour MEDIUM et 2 pour STRONG. Tapez le nombre '1' pour la stratégie de mot de passe MOYEN, appuyez sur Entrée, puis tapez votre mot de passe sécurisé.

Pour les autres, tapez simplement "Y" comme indiqué ci-dessous.

Supprimer les utilisateurs anonymes ? (Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :YInterdire la connexion root à distance ? (Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :YSupprimer la base de données de test et y accéder ? (Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :YRecharger les tables de privilèges maintenant ? (Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :Y

La configuration du mot de passe root MySQL est terminée.

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 client MySQL.

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 MySQL 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 le serveur Seafile pour le système Linux

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é 'mohammad'.

useradd -m -s /bin/bash mohammed

Connectez-vous maintenant à l'utilisateur 'mohammad' et téléchargez la dernière version du serveur seafile en utilisant wget.

su - mohammad
wget https://download.seadrive.org/seafile-server_6.2.5_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_6.2.5_x86-64.tar.gz
mv seafile-server-6.2.5/ seafile-server/

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

Étape 4 - Installer Seafile Server avec MySQL

Dans cette étape, nous allons installer le serveur seafile à l'aide du script de configuration MySQL fourni par Seafile.

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

su - mohammad
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 'mohammad', allez dans le répertoire '~/seafile-server-latest'.

su - mohammad
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.

netstat -plntu

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

Maintenant, arrêtez le serveur seafile et seahub.

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

Étape 5 - Installer et configurer Nginx avec Letsencrypt

Pour ce guide, le serveur seafile fonctionnera sous le serveur Web Nginx avec HTTPS activé. Et dans cette étape, nous allons installer le serveur Web Nginx et l'outil Letsencrypt, puis générer la clé SSL Letsencrypt et DHPARAM pour le nom de domaine du serveur seafile.

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

sudo apt install nginx -y

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

systemctl démarrer nginx
systemctl activer nginx

Installez maintenant l'outil Letsencrypt pour générer des certificats SSL Letsencrypt.

sudo apt install letencrypt -y

Le serveur Web Nginx et l'outil Letsencrypt ont été installés.

Ensuite, allez dans le répertoire '/etc/nginx' et créez un nouveau fichier de configuration 'certbot.conf' pour letsencrypt.

cd /etc/nginx/
vim snippets/certbot.conf

Collez-y la configuration suivante.

location /.well-known { alias /var/www/html/.well-known;}

Enregistrez et quittez.

Modifiez le fichier d'hôte virtuel par défaut.

vim sites-available/default

Ajoutez la ligne d'inclusion suivante ci-dessous à la parenthèse 'serveur {...}'.

inclure des extraits/certbot.conf ;

Enregistrez et quittez.

Testez la configuration de nginx et redémarrez le serveur Web.

nginx -t
systemctl redémarre nginx

Et nous sommes prêts à générer un nouveau certificat SSL Letsencrypt pour le nom de domaine du serveur Seafile.

Générez les fichiers de certificat SSL à l'aide de la commande 'certbot' comme indiqué ci-dessous.

certbot certonly --rsa-key-size 4096 --webroot --agree-tos --no-eff-email --email [email protected] -w /var/www/html -d cloud.hakase-labs .io

Remarque :

  • nous allons générer un nouveau certificat SSL et spécifier la taille de la clé à '4096'.

Vous obtiendrez maintenant tous les fichiers de certificat SSL situés dans le répertoire '/etc/letsencrypt/live'.

Et pour plus de sécurité, nous allons générer la clé Diffie-Hellman de taille 4096 à l'aide de la commande OpenSSL.

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

Tous les certificats nécessaires ont été générés.

Étape 6 - Configurer Nginx en tant que proxy inverse pour le serveur Seafile

Accédez au répertoire de configuration '/etc/nginx' et créez un nouveau fichier d'hôte virtuel 'seafile' à l'aide de vim.

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

Collez-y la configuration suivante.

 serveur { écouter 80 ; nom_serveur cloud.hakase-labs.io ; réécrire ^ https://$http_host$request_uri ? permanent; server_tokens désactivé ; } serveur { écouter 443 ssl http2 ; nom_serveur cloud.hakase-labs.io ; SSL activé ; certificat_ssl /etc/letsencrypt/live/cloud.hakase-labs.io/fullchain.pem ; clé_certificat_ssl /etc/letsencrypt/live/cloud.hakase-labs.io/privkey.pem ; SSL_session_timeout 5 m ; ssl_session_cache partagé : SSL :5 m ; ssl_dhparam /etc/nginx/dhparam.pem ; #Sécurité SSL 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-AES128-GCM-SHA256:ECDHE- RSA-AES128-GCM-SHA256 :ECDHE-ECDSA-AES256-SHA384 :ECDHE-RSA-AES256-SHA384 :ECDHE-ECDSA-AES128-SHA256 :ECDHE-RSA-AES128-SHA256 ; ssl_ecdh_curve secp384r1 ; ssl_prefer_server_ciphers activé ; server_tokens désactivé ; ssl_session_tickets désactivé ; proxy_set_header X-Forwarded-For $remote_addr ; emplacement / { proxy_pass http://127.0.0.1:8000; proxy_set_header Hôte $hôte ; 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 $nom_serveur ; proxy_read_timeout 1200s ; # 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 /seafhttp { réécrire ^/seafhttp(.*)$ $1 pause ; 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 ; } emplacement /media { root /home/mohammad/seafile-server-latest/seahub; } }

Enregistrez et quittez.

Activez l'hôte virtuel seafile et testez la configuration.

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

assurez-vous qu'il n'y a pas d'erreur et redémarrez le service nginx.

systemctl redémarrer nginx

La configuration de Nginx en tant que proxy inverse pour le serveur Seafile est terminée.

Étape 7 - Configurer le serveur Seafile

Pour exécuter le serveur seafile sous le nom de domaine du serveur Web Nginx, nous devons modifier la configuration 'seafile' par défaut pour le 'service ccnet', 'serveur seafile' et 'serveur seahub'.

Connectez-vous en tant qu'utilisateur 'mohammad' et accédez au répertoire 'conf/'.

su - mohammad
cd conf/

Modifiez le fichier de configuration du service ccnet 'ccnet.conf'.

vim ccnet.conf

Sur la ligne 'SERVICE_URL', remplacez la valeur par le nom de domaine avec HTTPS comme ci-dessous.

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

Enregistrez et quittez.

Modifiez maintenant le fichier 'seafile.conf' pour la configuration du serveur seafile.

vim seafile.conf

Ajoutez la ligne 'host' avec la valeur à '127.0.0.1' localhost comme ci-dessous.

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

Enregistrez et quittez.

Et enfin, nous allons éditer le fichier 'seahub_settings.py'.

vim seahub_settings.py

Sur la ligne 'FILE_SERVER_ROOT', remplacez la valeur par le nom de domaine avec HTTPS.

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

Enregistrez et quittez.

Étape 8 - Exécuter Seafile Server en tant que service

Dans ce didacticiel, nous exécuterons le serveur seafile en tant que service sur le système Ubuntu 18.04. Nous allons créer un nouveau script de service pour seafile et seahub.

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

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

Collez-y le script de service Seafile suivant.

[Unit]Description=SeafileAfter=network.target mysql.service[Service]Type=forkingExecStart=/home/mohammad/seafile-server-latest/seafile.sh startExecStop=/home/mohammad/seafile-server-latest/ seafile.sh stopUser=mohammadGroup=mohammad[Install]WantedBy=multi-user.target

Enregistrez et quittez.

Créez maintenant le fichier de service seahub 'seahub.service'.

vim seahub.service

Collez-y le script de service seahub suivant.

[Unit]Description=Seafile hubAfter=network.target seafile.service[Service]Type=forkingExecStart=/home/mohammad/seafile-server-latest/seahub.sh startExecStop=/home/mohammad/seafile-server-latest /seahub.sh stopUser=mohammadGroup=mohammad[Install]WantedBy=multi-user.target

Enregistrez et quittez.

Remarque :

  • Modifiez le chemin des scripts seafile.sh et seahub.sh.

Maintenant, rechargez le système systemd.

rechargement du démon systemctl

Et démarrez le service seafile et seahub.

systemctl start seafile
systemctl start seahub

Activez ces services pour qu'ils se lancent à chaque démarrage du système.

systemctl activer seafile
systemctl activer seahub

Les services seafile et seahub sont opérationnels ; vérifiez-les à l'aide des commandes ci-dessous.

systemctl status seafile
systemctl status seahub

netstat -plntu

Étape 8 - Configurer le pare-feu UFW

Il est recommandé de toujours activer le pare-feu sur n'importe quel système. Pour le système Ubuntu, nous allons activer le pare-feu UFW et y ajouter les ports SSH, HTTP et HTTPS.

Ajoutez le port 'ssh' et activez le pare-feu UFW.

ufw autoriser ssh
ufw activer

tapez 'y' pour activer le pare-feu.

Ajoutez maintenant les services HTTP et HTTPS.

ufw autorise http
ufw autorise https

Vérifiez les règles de la liste sur le pare-feu.

statut ufw numéroté

Et vous obtiendrez trois services SSH, HTTP et HTTPS sur la liste.

Étape 9 - Tester

Ouvrez votre navigateur Web et tapez l'installation de l'URL du serveur seafile. Le mien est :

http://cloud.hakase-labs.io/

Et vous serez redirigé vers la page de connexion HTTPS sécurisée.

Tapez l'adresse e-mail de l'administrateur "[email protected]" et le mot de passe "mypassword", puis cliquez sur le bouton "Connexion".

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

Supplémentaire - a téléchargé une image et vue sur le tableau de bord seafile.

L'installation et la configuration du serveur Seafile avec le serveur Web Nginx et Letsencrypt sur Ubuntu 18.04 ont été effectuées avec succès.


Ubuntu
  1. Comment installer WordPress avec Nginx sur Ubuntu 18.04

  2. Comment installer Seafile avec Nginx sur Ubuntu 20.04 LTS

  3. Comment installer Phorum avec Nginx sur Ubuntu 18.04 LTS

  4. Comment installer Nginx avec PHP5 et MySQL sur Ubuntu 11.10

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

Comment installer GitBucket avec Nginx sur Ubuntu 20.04 LTS

Comment installer phpMyAdmin avec Nginx (LEMP) sur Ubuntu 18.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