GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer un serveur Seafile avec Nginx sur Ubuntu 18.04

Seafile est une plate-forme de partage de fichiers gratuite et open-source basée sur le cloud qui peut être utilisée pour stocker des fichiers et synchroniser les données sur plusieurs appareils. Seafile est un système de stockage auto-hébergé et performant qui vous permet d'héberger sur vos propres serveurs privés. Seafile est gratuit et très similaire à d'autres fournisseurs de stockage, notamment OwnCloud, NextCloud, Google Drive et DropBox.

Avec Seafile, vous pouvez accéder et synchroniser vos fichiers, contacts et données sur PC et appareils mobiles.

Seafile est livré avec un riche ensemble de fonctionnalités, notamment la prise en charge du chiffrement client, la prise en charge du contrôle de version, l'authentification LDAP, l'authentification à deux facteurs, l'intégration antivirus, l'intégration d'applications Web Office, le partage de liens publics, la synchronisation de fichiers fiable, la prise en charge de Drive Client et bien d'autres. .

Dans ce tutoriel, nous expliquerons comment installer et configurer un serveur Seafile avec Nginx en tant que reverse proxy sur Ubuntu 18.04.

Prérequis

  • Un nouveau VPS Ubuntu 18.04 sur la plate-forme cloud Atlantic.Net.
  • Un nom de domaine valide pointant vers votre adresse IP VPS. Dans ce didacticiel, nous utiliserons seafile.example.com.

Remarque :Vous pouvez vous référer au Atlantic DNS Guide pour gérer les enregistrements DNS.

Étape 1 - Créer un serveur cloud Atlantic.Net

Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 18.04 comme système d'exploitation avec au moins 2 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.

Une fois connecté à votre serveur Ubuntu 18.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.

apt-get update -y

Étape 2 - Installer les dépendances requises

Tout d'abord, vous devrez installer toutes les dépendances nécessaires à l'installation du serveur Seafile. Vous pouvez tous les installer en exécutant la commande suivante :

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

Une fois toutes les dépendances installées, vous pouvez passer à l'étape suivante.

Étape 3 – Installer Nginx et MariaDB

Ensuite, vous devrez installer le serveur Web Nginx et le serveur de base de données MariaDB sur votre serveur. Vous pouvez les installer en exécutant la commande suivante :

apt-get install nginx mariadb-server mariadb-client -y

Une fois l'installation terminée, démarrez le service Nginx et MariaDB et autorisez-le à démarrer après le redémarrage du système :

systemctl start nginx
systemctl start mariadb
systemctl enable nginx
systemctl enable mariadb

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Étape 4 - Créer une base de données pour Seafile

Seafile se compose de trois composants principaux :Seahub, le serveur Seafile et le serveur Ccnet. Chaque composant nécessite une base de données distincte pour stocker ses données. Vous devrez créer une base de données distincte pour chacun de ces composants.

Pour ce faire, connectez-vous au shell MariaDB avec la commande suivante :

mysql -u root -p

Fournissez votre mot de passe root lorsque vous y êtes invité, puis créez les bases de données requises avec les commandes suivantes :

CREATE DATABASE seafiledb character set = 'utf8';
CREATE DATABASE ccnetdb character set = 'utf8';
CREATE DATABASE seahubdb character set = 'utf8';

Ensuite, créez l'utilisateur de la base de données avec la commande suivante :

CREATE USER 'seafileuser'@'localhost' IDENTIFIED BY 'password';

Ensuite, accordez tous les privilèges à l'utilisateur de la base de données Seafile avec la commande suivante :

GRANT ALL ON seafiledb.* TO 'seafileuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
GRANT ALL ON ccnetdb.* TO 'seafileuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
GRANT ALL ON seahubdb.* TO 'seafileuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Ensuite, videz les privilèges et quittez le shell MariaDB avec la commande suivante :

FLUSH PRIVILEGES;
EXIT;

À ce stade, vous avez créé toutes les bases de données nécessaires pour stocker les données Seafile.

Étape 5 - Installer le serveur Seafile

Ensuite, téléchargez la dernière version de Seafile depuis leur site officiel avec la commande wget :

wget https://download.seadrive.org/seafile-server_7.0.5_x86-64.tar.gz

Une fois téléchargé, extrayez le fichier téléchargé avec la commande suivante :

tar -xvzf seafile-server_7.0.5_x86-64.tar.gz

Ensuite, copiez le répertoire extrait dans le répertoire racine Web de Nginx :

cp -r seafile-server-7.0.5 /var/www/html/seafile

Ensuite, lancez le script d'installation de Seafile avec la commande suivante :

cd /var/www/html/seafile
./setup-seafile-mysql.sh

Au cours de l'installation, vous serez invité à répondre à plusieurs questions comme indiqué ci-dessous :

Checking python on this machine ...
  Checking python module: python-mysqldb ... Done.

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

        https://github.com/haiwen/seafile/wiki

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


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

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

Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/var/www/html/seafile-data" ]

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

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

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 ] seafileuser

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

verifying password of user seafileuser ...  done

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

verifying user "seafileuser" access to database ccnetdb ...  done

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

verifying user "seafileuser" access to database seafiledb ...  done

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

verifying user "seafileuser" access to database seahubdb ...  done

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

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

    seafile data dir:       /var/www/html/seafile-data
    fileserver port:        8082

    database:               use existing
    ccnet database:         ccnetdb
    seafile database:       seafiledb
    seahub database:        seahubdb
    database user:          seafileuser



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

Une fois l'installation terminée avec succès, vous devriez obtenir le résultat suivant :

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

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

-----------------------------------------------------------------
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://github.com/haiwen/seafile/wiki

for information.

Ensuite, donnez les permissions à Seafile avec la commande suivante :

chown -R www-data:www-data /var/www/html/

Ensuite, vous devrez ajouter un paramètre FILE_SERVER_ROOT dans le fichier seahub_settings.py :

nano /var/www/html/conf/seahub_settings.py

Ajoutez les paramètres FILE_SERVER_ROOT comme indiqué ci-dessous :

SECRET_KEY = "x)0=j*l6b+4amq2n^&)c=q5p==exn13%s&6x!*48u4p0p97k)4"
FILE_SERVER_ROOT = 'http://seafile.example.com/seafhttp'
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
:        'NAME': 'seahubdb',
        'USER': 'seafileuser',
        'PASSWORD': 'password',
        'HOST': '127.0.0.1',
        'PORT': '3306'
    }
}

Enregistrez et fermez le fichier lorsque vous avez terminé.

Étape 6 - Créer un utilisateur administrateur pour Seafile

Ensuite, vous devrez créer un utilisateur administrateur et définir un mot de passe pour Seafile. Pour ce faire, changez le répertoire en seafile et démarrez le service seafile avec la commande suivante :

cd /var/www/html/seafile
su -p -l www-data -s /bin/bash -c "./seafile.sh start"

Ensuite, démarrez le service seahub et créez un compte administrateur avec la commande suivante :

su -p -l www-data -s /bin/bash -c "./seahub.sh start"

Il vous sera demandé de fournir votre adresse e-mail et votre mot de passe administrateur comme indiqué ci-dessous :

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.

Une fois que vous avez terminé, arrêtez les services seafile et seahub :

su -p -l www-data -s /bin/bash -c "./seafile.sh stop"
su -p -l www-data -s /bin/bash -c "./seahub.sh stop"

Étape 7 - Créer un fichier Systemd pour Seafile et Seahub

Ensuite, vous devrez créer un fichier d'unité systemd pour que Seafile et Seahub gèrent le service.

Tout d'abord, créez un fichier de service seafile avec la commande suivante :

nano /etc/systemd/system/seafile.service

Ajoutez les lignes suivantes :

[Unit]
Description=Seafile
After= mysql.service
After=network.target

[Service]
User=www-data
Group=www-data

Type=forking
ExecStart=/var/www/html/seafile-server-latest/seafile.sh start
ExecStop=/var/www/html/seafile-server-latest/seafile.sh stop

[Install]
WantedBy=multi-user.target

Enregistrez et fermez le fichier. Ensuite, créez un fichier de service systemd pour Seahub avec la commande suivante :

nano /etc/systemd/system/seahub.service

Ajoutez les lignes suivantes :

[Unit]
Description=Seafile
After= mysql.service
After=network.target

[Service]
User=www-data
Group=www-data
Type=forking

ExecStart=/var/www/html/seafile-server-latest/seahub.sh start
ExecStop=/var/www/html/seafile-server-latest/seahub.sh stop

[Install]
WantedBy=multi-user.target

Enregistrez et fermez le fichier. Ensuite, rechargez le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, redémarrez les services Seafile et Seahub et autorisez-les à démarrer après le redémarrage du système avec la commande suivante :

systemctl start seafile
systemctl enable seafile
systemctl start seahub
systemctl enable seahub

Pour vérifier le service Seafile, exécutez la commande suivante :

systemctl status seafile

Sortie :

● seafile.service - Seafile
   Loaded: loaded (/etc/systemd/system/seafile.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-11-28 08:48:31 UTC; 8s ago
  Process: 15487 ExecStart=/var/www/html/seafile-server-latest/seafile.sh start (code=exited, status=0/SUCCESS)
    Tasks: 16 (limit: 1150)
   CGroup: /system.slice/seafile.service
           ├─15522 /var/www/html/seafile/seafile/bin/seafile-controller -c /var/www/html/ccnet -d /var/www/html/seafile-data -F /var/www/html/c
           ├─15524 ccnet-server -F /var/www/html/conf -c /var/www/html/ccnet -f /var/www/html/logs/ccnet.log -d -P /var/www/html/pids/ccnet.pid
           └─15527 seaf-server -F /var/www/html/conf -c /var/www/html/ccnet -d /var/www/html/seafile-data -l /var/www/html/logs/seafile.log -P

Nov 28 08:48:28 ubuntu1804 systemd[1]: Starting Seafile...

Pour vérifier le service Seahub, exécutez la commande suivante :

statut systemctl seahub

Sortie :

● seahub.service - Seafile
   Loaded: loaded (/etc/systemd/system/seahub.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-11-28 08:50:49 UTC; 18s ago
  Process: 15547 ExecStart=/var/www/html/seafile-server-latest/seahub.sh start (code=exited, status=0/SUCCESS)
 Main PID: 15573 (python2.7)
    Tasks: 6 (limit: 1150)
   CGroup: /system.slice/seahub.service
           ├─15573 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           ├─15579 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           ├─15580 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           ├─15581 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           ├─15582 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel
           └─15583 python2.7 /var/www/html/seafile/seahub/thirdpart/gunicorn seahub.wsgi:application -c /var/www/html/conf/gunicorn.conf --prel

Nov 28 08:50:43 ubuntu1804 systemd[1]: Starting Seafile...

Étape 8 – Configurer le proxy inverse avec Nginx

Ensuite, vous devrez installer et configurer Nginx en tant que proxy inverse pour que Seafile transmette les demandes des clients des ports 8000 et 8082 au port Nginx 80.

Pour ce faire, créez un fichier de configuration d'hôte virtuel Nginx avec la commande suivante :

nano /etc/nginx/sites-available/seafile

Ajoutez les lignes suivantes :

server {
    listen 80;
    listen [::]:80;
    root /var/www/html/seafile;
    server_name  seafile.example.com;

     client_max_body_size 100M;

     autoindex off;

     access_log /var/log/nginx/example.com.access.log;
     error_log /var/log/nginx/example.com.error.log;

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

     location /seafhttp {
            rewrite ^/seafhttp(.*)$ $1 break;
            proxy_pass http://127.0.0.1:8082;
            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;
        }
    location /media {
            root /var/www/html/seafile-server-latest/seahub;
        }
}

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, activez l'hôte virtuel Nginx avec la commande suivante :

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

Enfin, redémarrez le service Nginx avec la commande suivante :

systemctl restart nginx

Étape 9 - Accéder à l'interface Web Seafile

Maintenant, ouvrez votre navigateur Web et accédez à l'URL http://seafile.example.com. Vous devriez voir la page de connexion Seafile :

Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Connexion bouton. Vous devriez voir le tableau de bord par défaut de Seafile :

Conclusion

Dans le didacticiel ci-dessus, nous avons appris à installer le serveur Seafile avec Nginx en tant que proxy inverse sur Ubuntu 18.04 VPS. J'espère que vous avez maintenant suffisamment de connaissances pour héberger votre propre serveur de partage de fichiers en utilisant Seafile. Commencez dès aujourd'hui avec Seafile sur un VPS d'Atlantic.Net !


Linux
  1. Comment configurer les blocs de serveur Nginx sur Ubuntu 18.04

  2. Comment installer le serveur HTTP Git avec Nginx sur Ubuntu 16.04

  3. Comment configurer Nginx en tant que proxy inverse sur Ubuntu 20.04

  4. Comment configurer plusieurs SSL sur une seule IP avec Nginx

  5. Installez phpMyAdmin sur Ubuntu 20.04 avec Nginx

Comment installer Nginx sur Ubuntu 14.04

Comment installer NGINX sur Ubuntu 20.04

Comment configurer la synchronisation de l'heure avec NTP sur Ubuntu 18.04

Comment configurer Tomcat avec Nginx en tant que proxy inverse sur Ubuntu 18.04

Comment configurer un serveur FTP avec ProFTPD dans Ubuntu 18.04

Comment configurer un serveur de messagerie avec Modoboa sur Ubuntu 20.04