GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Seafile avec Nginx sur CentOS 7

Seafile est un logiciel de cloud privé qui fournit des fonctionnalités similaires telles que Dropbox, mega.co.nz et d'autres, simplement hébergées sur votre propre serveur. Seafile est basé sur le langage de programmation python et il est publié sous une licence open source afin que vous puissiez créer votre propre cloud privé et qu'il soit beaucoup plus sécurisé.

Seafile prend en charge le cryptage pour stocker vos données en toute sécurité. Pour chiffrer des fichiers dans une bibliothèque de stockage, vous devez définir un mot de passe lorsque vous créez la bibliothèque. Le mot de passe ne sera pas stocké dans le cloud Seafile. Ainsi, même l'administrateur des serveurs ne peut pas voir vos données cryptées sans le mot de passe.

Dans ce tutoriel, j'installerai Seafile sur CentOS 7 avec le serveur Web Nginx et MariaDB comme serveur de base de données.

Prérequis

  • Serveur CentOS 7
  • Privilèges root

Étape 1 - Préparer CentOS pour Seafile

Connectez-vous au serveur centOS avec votre mot de passe root ssh.

ssh [email protected]
TAPEZ VOTRE MOT DE PASSE

    Modifiez le fichier de configuration SELinux avec vim.

    vim /etc/sysconfig/selinux

    Remplacez la valeur 'enforcing' par 'disabled'.

    SELINUX=désactivé

    Enregistrez le fichier et quittez l'éditeur.

    Redémarrez le serveur pour appliquer la modification de la politique SELinux.

    redémarrer

    Attendez le redémarrage du serveur, puis reconnectez-vous à votre serveur en tant qu'utilisateur root.

    Vérifiez le selinux avec la commande ci-dessous :

    getenforce

    Vous devriez voir 'Désactivé ' comme résultat.

    Étape 2 - Installer les dépendances Seafile

    Seafile est basé sur python, nous devons donc d'abord installer python pour l'installation. Seafile prend en charge les bases de données SQLite et MySQL/MariaDB, j'utiliserai ici MariaDB comme base de données pour seafile car il offre de meilleures performances que SQLite. Nginx est utilisé comme proxy inverse pour Seafile et Seahub.

    Dans cette étape, nous allons installer plusieurs packages python, MariaDB et Nginx. Nous commençons par l'installation du référentiel EPEL sur notre serveur CentOS.

    yum -y install epel-release

    Ensuite, installez les packages python, MariaDB et Nginx.

    yum -y install python-imaging MySQL-python python-simplejson python-setuptools mariadb mariadb-server nginx

    Attendez que tous les packages soient installés.

    Étape 3 - Configurer MariaDB

    À l'étape 2, nous avons déjà installé le serveur MariaDB, il nous suffit de démarrer le service et de configurer le mot de passe root maintenant.

    Démarrez MariaDB et configurez le mot de passe root avec les commandes ci-dessous :

    systemctl démarrer mariadb
    mysql_secure_installation

    Saisissez votre mot de passe root.

    Définir le mot de passe root ? [O/n] O
    Nouveau mot de passe :
    Saisir à nouveau le nouveau mot de passe :
    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 tables de privilèges maintenant ? [O/n] O

    Le mot de passe root MariaDB est configuré et nous pouvons maintenant nous connecter au shell mysql.
    Remarque :le shell de ligne de commande MariaDB s'appelle mysql.

    Nous allons créer 3 bases de données pour seafile :

    1. ccnet_db
    2. seafile_db
    3. seahub_db

    Et nous allons créer un nouvel utilisateur 'seacloud ' avec le mot de passe 'votremot de passe '. Remplacez votre mot de passe par un mot de passe sécurisé !

    Connectez-vous au shell mysql avec le client mysql.

    mysql -u root -p
    TAPEZ VOTRE MOT DE PASSE

    Exécutez les requêtes mysql ci-dessous pour créer les bases de données et l'utilisateur pour l'installation du fichier marin.

    créer la base de données ccnet_db character set ='utf8';
    créer la base de données seafile_db character set ='utf8';
    créer la base de données seahub_db character set ='utf8';

    créer utilisateur [email protected] identifié par 'yourpassword' ;

    accorder tous les privilèges sur ccnet_db.* à [email protected] identifié par 'yourpassword' ;
    accorder tous les privilèges sur seafile_db.* à [ email protected] identifié par 'yourpassword' ;
    accorder tous les privilèges sur seahub_db.* à [email protected] identifié par 'yourpassword' ;
    vider les privilèges ;
    quitter

    Remplacez votre mot de passe dans les commandes ci-dessus par votre propre mot de passe.

    Étape 4 - Installer Seafile

    Dans cette étape, nous allons installer Seafile. Seafile sera exécuté sous l'utilisateur nginx afin que nous puissions utiliser nginx comme proxy inverse pour les services seafile et seahub.

    Nous allons installer seafile sous l'utilisateur nginx dans le répertoire '/var/www/seafile', créer ce répertoire et le saisir avec cd.

    mkdir -p /var/www/seafile
    cd /var/www/seafile

    Téléchargez Seafile avec la commande wget et extrayez l'archive téléchargée.

    wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_6.0.5_x86-64.tar.gz
    tar -xzvf seafile-server_6.0.5_x86-64. tar.gz

    Renommez le répertoire en 'seafile-server' et basculez vers ce répertoire.

    mv serveur-seafile-6.0.5 serveur-seafile
    cd serveur-seafile/

    Exécutez le fichier 'setup-seafile-mysql.sh' pour configurer la base de données.

    ./setup-seafile-mysql.sh

    Appuyez sur Entrée et les informations ci-dessous vous seront demandées :

    • nom du serveur - j'utiliserai le nom d'hôte du serveur 'natsume '
    • IP ou domaine du serveur - adresse IP du serveur, dans mon cas '192.168.1.115 '
    • répertoire de données par défaut - appuyez simplement sur Entrée
    • port par défaut - appuyez sur Entrée
    • Maintenant, pour la configuration de la base de données, choisissez le numéro 2

    Pour la configuration MySQL :

    • utiliser l'hôte par défaut - localhost
    • port par défaut - 3306
    • l'utilisateur mysql - 'seacloud '
    • et le mot de passe est 'votremot de passe '
    • la base de données ccnet est 'ccnet_db '
    • la base de données seafile est 'seafile_db '
    • la base de données seahub est 'seahub_db '

    Appuyez sur Entrée et le script créera les tables de base de données pour le fichier marin.

    Nous pouvons maintenant démarrer les services seafile et seahub.

    ./seafile.sh start
    ./seahub.sh start

    Lorsque le fichier seahub.sh est exécuté, il nous sera demandé la configuration de l'administrateur.

    Saisissez votre adresse e-mail et votre mot de passe administrateur, puis le service Seahub fonctionnera.

    Seafile est installé et fonctionne maintenant, nous pouvons accéder à Seafile à partir d'un navigateur Web avec l'adresse IP du serveur sur le port 8000 (dans mon cas - 192.168.1.115:8000), mais nous ne le ferons pas maintenant car nous utiliserons un proxy inverse pour le serveur seafile et nous exécuterons seafile avec un fichier de service systemd.

    Nous devons donc arrêter le service seafile et seahub pour le moment.

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

    Étape 5 - Configurer le service Seafile et Seahub

    Nous allons exécuter seafile en tant qu'utilisateur nginx, nous devons donc changer le propriétaire du répertoire d'installation seafile et du répertoire seahub_cache en utilisateur nginx :

    cd /var/www/
    chown -R nginx:nginx *
    chown -R nginx:nginx /tmp/seahub_cache

    Ensuite, allez dans le répertoire systemd et créez un fichier seafile.service avec vim :

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

    Collez la configuration du service seafile ci-dessous :

    [Unité]
    Description=Seafile Server
    Avant=seahub.service
    Après=network.target mariadb.service

    [Service]
    Type=oneshot
    ExecStart=/var/www/seafile/seafile-server/seafile.sh start
    ExecStop=/var/www/seafile/seafile-server/seafile.sh stop
    RemainAfterExit =oui
    Utilisateur=nginx
    Groupe=nginx

    [Installer]
    WantedBy=multi-user.target

    Enregistrez et quittez.

    Créez maintenant un nouveau fichier seahub.service.

    vim seahub.service

    Et collez la configuration ci-dessous.

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

    [Service]
    Type=oneshot
    ExecStart=/var/www/seafile/seafile-server/seahub.sh start-fastcgi
    ExecStop=/var/www/seafile/seafile-server/seahub.sh stop
    RemainAfterExit=yes
    Utilisateur=nginx
    Groupe=nginx

    [Installer]
    WantedBy=multi-user.target

    Enregistrez et quittez.

    Rechargez le service systemd et démarrez seafile et seahub avec systemctl.

    systemctl daemon-reload
    systemctl start seafile
    systemctl start seahub

    Assurez-vous qu'il n'y a pas d'erreur et vérifiez que les services seafile et seahub fonctionnent sur les ports 8082 et 8000.

    netstat -plntu

    Étape 6 - Générer des fichiers de certificat SSL

    Pour ce didacticiel, nous exécuterons seafile sur un proxy Nginx, et Nginx fournira des connexions sécurisées (HTTPS) pour la sécurité des données. Nous pouvons utiliser un fichier de certificat SSL gratuit ou le certificat SSL payant, cela n'a pas d'importance pour la configuration. Dans cette étape, je vais générer un fichier de certificat SSL auto-signé avec OpenSSL dans le répertoire "/etc/nginx/ssl".

    Créez le répertoire SSL.

    mkdir -p /etc/nginx/ssl
    cd /etc/nginx/ssl

    Générez des fichiers de certificats auto-signés et un fichier dhparam avec la commande ci-dessous :

    openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
    openssl req -new -x509 -sha256 -days 365 -newkey rsa:2048 -nodes -keyout server.key -out server.crt

    Répondez aux détails du certificat demandés par OpenSSL, tels que votre nom, votre état, votre adresse e-mail, votre nom de domaine, etc. Modifiez ensuite les autorisations du répertoire et des fichiers de certificat.

    chmod -R 700 /etc/nginx/ssl
    serveur chmod 400.*
    chmod 400 dhparam.pem

    Les fichiers de certificat SSL ont été générés.

    Étape 7 - Configurer Nginx en tant que proxy inverse

    Dans cette étape, nous allons configurer Nginx en tant que proxy inverse pour le serveur seafile sur les ports 8000 et 8002.

    Accédez au répertoire de configuration nginx et créez un nouveau fichier d'hôte virtuel pour seafile.

    cd /etc/nginx/
    vim conf.d/seafile.conf

    Collez la configuration de l'hôte virtuel ci-dessous :

    server {  
            listen        80 ;
            nom_serveur   cloud.natsume.co ;
            return 301  https://$host$request_uri ;
    }

    serveur { 
        écouter 443 ssl ;
        nom_serveur cloud.natsume.co ;
        sl activé ;
        ssl_protocols           TLSv1 TLSv1.1 TLSv1.2 ;
        certificat_ssl         /etc/ nginx/ssl/server.crt ;
        ssl_certificate_key    /etc/nginx/ssl/server.key ;

        ssl_ciphers  'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128- GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE- RSA-AES128-SHA :DHE-RSA-AES256-SHA256 :DHE-RSA-AES128-SHA256 :DHE-RSA-AES256-SHA :DHE-RSA-AES128-SHA :ECDHE-RSA-DES-CBC3-SHA :EDH- RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:ÉLEVÉ:!aNULL:!eNULL :!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
        ssl_dhparam   /etc/nginx/ssl/dhparam.pem;
      ssl_prefer_server_ciphers on;

    emplacement / {
    fastcgi_pass 127.0.0.1:8000;
    fastcgi_param script_filename $ document_root $ fastcgi_script_name;
    FastCGI_PARAM PATH_INFO $ FASTCGI_NAME; br /> fastcgi_param server_protocol $ server_protocol;
    fastcgi_param query_string $ query_string;
    fastcgi_param request_method $ request_method $ server_addr;
    fastcgi_param server_port $ server_port;
    fastcgi_param server_name $ server_name;
    fastcgi_param éteinte_addr $ rote_addr;

    Access_log /var/log/nginx/seaHub.Access. log;
            error_log       /var/log/nginx/seahub.error.log;
            fas tcgi_read_timeout 36000 ;
        }

        # Reverse Proxy for seahub
        location /seafhttp {
            réécrire ^/seafhttp(.*)$ $1 break ;
            proxy_pass http://127.0.0.1:8082;
    client_max_body_size 0;
    proxy_connect_timeout 36000s;
    proxy_read_timeout 36000s;
    proxy_send_timeout 36000;
    Send_timeout 36000s;
    }

        #CHANGEZ CE CHEMIN AVEC VOTRE PROPRE RÉPERTOIRE
        location /media {
            root /var/www/seafile/seafile-server/seahub ;
        }

    }

    Enregistrez et quittez.

    J'utiliserai "cloud.natsume.co" comme nom de domaine. Veuillez le remplacer par votre propre nom de domaine dans la configuration ci-dessus.

    Testez maintenant la configuration de Nginx et assurez-vous qu'il n'y a pas d'erreurs.

    nginx -t

    Démarrez Nginx avec la commande systemctl :

    systemctl démarrer nginx

    Assurez-vous que les ports 80 et 443 sont disponibles dans la liste fournie par netstat :

    netstat -plntu

    Ensuite, nous devons ajouter le nom de domaine à la configuration seafile. Allez dans le répertoire seafile et modifiez le fichier de configuration.

    cd /var/www/seafile/
    vim conf/ccnet.conf

    Remplacez l'URL du service par votre nom de domaine.

    SERVICE_URL =https://cloud.natsume.co

    Enregistrez et quittez.

    Modifiez le fichier de configuration du Seahub.

    vim conf/seahub_settings.py

    Sur la deuxième ligne, ajoutez la configuration ci-dessous :

    HTTP_SERVER_ROOT ='https://cloud.natsume.co/seafhttp'

    Remplacez à nouveau le nom de domaine par votre domaine. Enregistrez et quittez.

    Redémarrez seafile et ajoutez tous les services à démarrer au démarrage :

    systemctl redémarrer seafile
    systemctl redémarrer seahub

    systemctl activer nginx
    systemctl activer mariadb
    systemctl activer seafile
    systemctl activer seahub

    Étape 8 - Configurer FirewallD

    À l'étape 7, nous avons configuré Nginx pour utiliser les ports HTTP et HTTPS. Nous devons maintenant ouvrir ces ports dans le pare-feu en les ajoutant à firewalld.

    Démarrez firewalld.

    systemctl start firewalld
    systemctl enable firewalld

    Ajoutez les ports HTTP et HTTPS à la configuration du pare-feu avec la commande firewall-cmd ci-dessous :

    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --zone=public --add-port=443/tcp --permanent

    Rechargez la configuration du pare-feu et vérifiez la liste des ports.

    firewall-cmd --reload
    firewall-cmd --list-all

    Étape 9 - Tester Seafile

    Ouvrez votre navigateur, tapez le nom de domaine seafile, dans mon cas cloud.natsume.co et vous serez redirigé vers la connexion https.

    Saisissez votre adresse e-mail et votre mot de passe administrateur, puis cliquez sur "Connexion".

    Tableau de bord d'administration Seafile :

    Vue du fichier Seafile.

    Seafile avec Nginx comme proxy inverse et SSL a été installé avec succès sur le serveur CentOS 7.

    Conclusion

    Avec la grande variété d'applications cloud d'aujourd'hui, Seafile est une solution de cloud privé qui peut être utilisée aujourd'hui. Grâce à la fonctionnalité de cryptage au niveau de la bibliothèque/dossier, vous pouvez stocker vos données en toute sécurité sur un serveur Seacloud. De plus, Seafile est facile à configurer et à mettre en œuvre sur votre propre serveur.


    Cent OS
    1. Comment installer Nginx sur CentOS 7

    2. Comment installer WordPress avec Nginx sur CentOS 7

    3. Comment installer phpMyAdmin avec Nginx sur CentOS 7

    4. Comment installer phpMyAdmin avec Nginx sur CentOS 7 / RHEL 7

    5. Comment installer Sitemagic CMS sur CentOS 7 – Avec Nginx

    Comment installer phpMyAdmin avec Nginx sur CentOS 8 / RHEL 8

    Comment installer Nginx avec ngx_pagespeed sur CentOS

    Comment installer Nginx avec PHP-FastCGI sur CentOS 6

    Comment installer Magento avec Nginx sur CentOS 7

    Comment installer Laravel avec Nginx sur CentOS 8

    Comment installer Nginx sur CentOS 7 ?