Votre serveur de stockage en ligne avec Pydio !

Tutoriel Pydio

Tutorial Thumbnail

Pydio Cells est une plateforme de partage de documents et de collaboration auto-hĂ©bergĂ©e et open-core, conçue pour les organisations qui nĂ©cessitent un systĂšme de partage de fichiers avancĂ© mais ne peuvent se permettre de faire des concessions sur la sĂ©curitĂ© et la conformitĂ©. FondĂ©e en 2012, Pydio, basĂ©e Ă  Paris, est un leader sur le marchĂ© du partage auto-hĂ©bergĂ© de documents et de collaboration (DSC) en entreprise.


L'entreprise développe deux chaines de produit à savoir une solution gratuite destinés aux particuliers et une version commerciale destinées aux entreprises et aux établissements scolaires par exemple.


Introduction

Dans le cadre de ce tutoriel, nous verrons ensemble l'installation et la configuration de la solution gratuite "Pydio Cells" afin de mettre en place un premier serveur de stockage en ligne rapidement.


Prérequis

Afin de réaliser l'installation de Pydio Cells sur votre serveur, quelques prérequis sont nécessaires :

  • Une machine Linux : Ubuntu, Debian ou autre distribution.
  • 1 cƓur CPU : architecture AMD 64bit uniquement, 2 cƓurs ou plus sont recommandĂ©s.
  • 4 Go de mĂ©moire vive (RAM) de disponible.
  • 100 Go de libre sur le disque (SSD de prĂ©fĂ©rence). En fonction de la volumĂ©trie des donnĂ©es stockĂ©es sur le serveur, prĂ©voyez en consĂ©quence !


ParamĂštres importants

  • Utilisateur dĂ©diĂ© au systĂšme d’exploitation: n’exĂ©cutez jamais Cells en tant qu’utilisateur "root" !
  • Ulimit : le nombre de fichiers ouverts autorisĂ©s doit ĂȘtre supĂ©rieur Ă  2048. Pour une utilisation en production, un minimum de 8192 est recommandĂ© (voir la commande ulimit -n).


Connexion en SSH Ă  la machine

Afin de faciliter l'installation, il est conseillé de se connecter en SSH à la machine avec la commande suivante :

ssh nom_d_utilisateur@adresse_ip_de_la_machine -p numéro_de_port


Installation de Pydio

On est parti dĂšs Ă  prĂ©sent pour l'installation de Pydio Cells sous sa derniĂšre version disponible (version 4 Ă  ce jour). L'installation est vraiment trĂšs simple Ă  rĂ©aliser. Pydio Cells fournit son propre serveur Web basĂ© sur Caddy afin de fournir les services. Contrairement aux anciennes versions de Pydio, vous n’avez pas besoin d’Apache ou Ă©quivalent.


Récupérez dans un premier temps le binaire disponible sur le site officiel de Pydio : https://pydio.com/fr/telechargements

Dans notre cas, nous réaliseront l'installation avec la version "Cells Home". Pour un serveur Linux, choisissez de télécharger "Cells Home - Linux AMD64" :



On va créer l'utilisateur pour le service "Pydio" :

sudo useradd -m -s /bin/bash pydio


On va créer ensuite les dossiers nécessaires :

sudo mkdir -p /opt/pydio/bin /var/cells/certs
sudo chown -R pydio: /opt/pydio /var/cells


Ajout des variables environnement :

sudo tee -a /etc/profile.d/cells-env.sh << EOF
export CELLS_WORKING_DIR=/var/cells
export CADDYPATH=/var/cells/certs
EOF
sudo chmod 0755 /etc/profile.d/cells-env.sh


Téléchargement du binaire

En tant qu'utilisateur "pydio", réalisez les opérations suivantes :

sudo su - pydio


Vous pouvez effectuer la récupération du binaire avec un wget :

distribId=cells
wget -O /opt/pydio/bin/cells https://download.pydio.com/latest/${distribId}/release/{latest}/linux-amd64/${distribId}


AprÚs avoir téléchargé le binaire sur le serveur Linux, il est nécessaire de rendre le fichier "cells" exécutable :

chmod a+x /opt/pydio/bin/cells
exit


En tant qu'utilisateur root, on ajoute des permissions nécessaires afin de se lier aux ports HTTP par défaut :

sudo setcap 'cap_net_bind_service=+ep' /opt/pydio/bin/cells


On déclarer les commandes systÚmes de Pydio :

sudo ln -s /opt/pydio/bin/cells /usr/local/bin/cells


Pour vérifier, en tant qu'utilisateur "pydio", vérifiez la commande cells afin d'afficher la version :

sudo su - pydio 
cells version





Configuration du serveur SQL

Pydio Cells fonctionne avec une base de données tel que MariaDB ou MySQL. Pydio Cells prend en charge les versions de serveur suivantes :

  • MariaDB version 10.3 et ultĂ©rieure,
  • MySQL version 5.7 et supĂ©rieure (sauf 8.0.22 qui a un bogue empĂȘchant les cellules de fonctionner correctement).


Deux types de configuration s'offre Ă  vous. Pour une question de simplicitĂ© et pour un usage personnel, effectuez l'installation de votre serveur SQL sur le mĂȘme serveur pour un gain de temps et de maintenance.


Si par contre vous recherchez plus de performances au niveau des services sur le serveur Cloud, alors choisissez de créer un serveur SQL dédié afin de répartir les tùches des différentes ressources. Les deux cas sont abordés dans le tutoriel.


Pour un serveur SQL local

Si vous souhaitez effectuer l'installation d'un serveur SQL directement sur le serveur Pydio, réalisez les procédures suivantes :


On installer le serveur SQL MariaDB :

sudo apt update
sudo apt install mariadb-{server,client}


Exécutez le script pour sécuriser votre installation :

sudo mysql_secure_installation


Ouvrez le CLI MySQL pour créer votre base de données et un utilisateur dédié :

sudo mysql -u root -p


Nous allons crĂ©er ensuite une base de donnĂ©es et d’un utilisateur privilĂ©giĂ© dĂ©diĂ© Ă  Pydio. DĂ©marrez une invite MySQL et spĂ©cifiez les commandes suivantes :

CREATE USER 'pydio'@'localhost' IDENTIFIED BY '<YOUR_PASSWORD_HERE>';
CREATE DATABASE cells DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
GRANT ALL PRIVILEGES ON cells.* to 'pydio'@'localhost';
FLUSH PRIVILEGES;


VĂ©rification

VĂ©rifiez que le service est en cours d’exĂ©cution et que l’utilisateur "pydio" est correctement crĂ©Ă© :

sudo systemctl status mariadb
mysql -u pydio -p


Pour un serveur SQL distant

Afin de configurer Pydio avec un serveur SQL distant afin de réduire la charge du serveur, l'installation est similaire. Il est nécessaire de créer la base de données et l'utilisateur mais il faudra remplacer la valeur localhost par l'adresse IP du serveur Pydio afin de "dédier" la connexion SQL uniquement pour ce serveur.


Commandes SQL à réaliser sur le serveur MariaDB distant :

CREATE USER 'pydio'@'<IP_OF_REMOTE_SQL_SERVER>' IDENTIFIED BY '<YOUR_PASSWORD_HERE>';
CREATE DATABASE cells DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
GRANT ALL PRIVILEGES ON cells.* to 'pydio'@'<IP_OF_REMOTE_SQL_SERVER>';
FLUSH PRIVILEGES;


La valeur <IP_OF_REMOTE_SQL_SERVER> est l'adresse IP de votre serveur Pydio Cells.


ParamĂštres importants

Assurez-vous toujours que la base de données est créée avec le jeu de caractÚres et le classement définis sur UTF8. Assurez-vous également de ne pas laisser l'attribut max_connections à sa valeur par défaut (151) pour la production. Pydio recommande au moins 500, pour une meilleure compréhension de l'outil (voir le manuel MySQL).


La commande CREATE DATABASE cells permets de crĂ©er la base de donnĂ©es pour Pydio. Comme pour le nom d'utilisateurs, vous pouvez modifier le nom de la base et de l'utilisateur associĂ© Ă  condition de renseigner les mĂȘmes valeurs dans l'assistant de configuration.


Assistant de configuration

Notre serveur SQL est maintenant prÚs. Il est grand temps de démarrer l'assistant de configuration de Pydio Cells. On se connecte dans un premier temps au compte dédié de Pydio Cells et on lance ensuite la commande afin de démarrer l'assistant :

sudo su - pydio 
cells configure


Lancement de l'assistant

Deux mĂ©thodes s'offrent Ă  vous : configurez Cells Ă  l’aide du programme d’installation Web ou en ligne de commande sur le serveur. Dans notre cas, nous choisissons une installation Ă  l'aide d'un navigateur Web :



L'option sélectionnée précédemment démarre un serveur Web basé sur Caddy et écoute sur le port 8080 en HTTPS. Ouvrez en conséquence le port sur votre pare-feu si vous en disposez d'un.


Assistant avec le navigateur Web

Le serveur Web est démarré. Rendez-vous sur l'adresse IP du serveur WEB. Sélectionnez votre langue et acceptez les termes du contrat de licence.




La partie de configuration de la base de données est effectuée :

  • MĂ©thode de connexion : TCP,
  • Nom de l'hĂŽte : localhost si il s'agit d'un serveur SQL installĂ© sur le mĂȘme serveur, ou l'adresse IP du serveur SQL distant,
  • Port : 3306 (port propriĂ©taire par dĂ©faut de MySQL),
  • Nom de la base de donnĂ©es : mĂȘme nom que spĂ©cifiĂ© lors de la crĂ©ation de la base de donnĂ©es pour Pydio, crĂ©Ă©e prĂ©cĂ©demment,
  • Utilisateur / mot de passe : mĂȘmes informations Ă©galement que pour la crĂ©ation de l'utilisateur dĂ©diĂ© Ă  la base de donnĂ©es Pydio.


En cliquant sur Suivant, Pydio vérifie en direct la connexion au serveur SQL.


Spécifiez ensuite le titre de l'application (ex : Mon serveur Cloud, Cloud Home...), la langue par défaut de l'interface et ainsi que les informations de connexions liées à Pydio Cells :




Cliquez enfin sur "Lancer l'installation" :




L'installation a bien été effectuée.



Assistant en ligne de commande

En ligne de commande, l'installation est assez simple Ă  effectuer :



DĂ©marrez ensuite le serveur avec la commande cells start :

cells start


Voici l'interface Web de Pydio ! 🎉



Créer le service Pydio

Il est nécessaire de créer le service Pydio afin de démarrer celui-ci en tant que service :

sudo nano /etc/systemd/system/cells.service


Saisissez les informations suivantes dans le fichier cells.service :

[Unit]
Description=Pydio Cells
Documentation=https://pydio.com
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/opt/pydio/bin/cells

[Service]
User=pydio
Group=pydio
WorkingDirectory=/home/pydio
PermissionsStartOnly=true

AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=/opt/pydio/bin/cells start
Restart=on-failure
StandardOutput=journal
StandardError=inherit
LimitNOFILE=65536
TimeoutStopSec=5
KillSignal=INT
SendSIGKILL=yes
SuccessExitStatus=0

# Add environment variables
Environment=CELLS_ENABLE_METRICS=false
Environment=CELLS_WORKING_DIR=/var/cells

[Install]
WantedBy=multi-user.target


On va créer le service nommé "cells" :

sudo systemctl daemon-reload
sudo systemctl enable --now cells
sudo systemctl restart cells


On vérifie si le statut du service cells est en ligne :

sudo service cells status


Si nĂ©cessaire, vous pouvez configurer le serveur afin de modifier le port d'Ă©coute HTTP diffĂ©rent du 8080. De plus, vous pouvez spĂ©cifier le domaine qui pourrait ĂȘtre rattachĂ© au serveur (ex : cloud.example.com)

cells configure sites


Pour faire simple, dĂ©finissez le Bind par dĂ©faut sur 0.0.0.0 pour dire que l'on souhaite Ă©couter sur toutes les adresses IP, le certificat TLS autosignĂ© suffira si Pydio est en reverse proxy. DĂ©finissez enfin l'adresse URL externe du serveur Web. AprĂšs les modifications effectuĂ©es, redĂ©marrez le service de Pydio Cells :

sudo systemctl restart cells


Fichiers journaux

Maintenant que Pydio Cells est lancé en tant que service, vous pouvez accéder aux journaux de différentes maniÚres :

tail -200f /var/cells/logs/pydio.log


D'autres services associé à l'écosystÚme de Pydio Cells ont leurs propres fichiers journaux :

ls -lsah /var/cells/logs/



Et voilĂ  ! Pydio est installĂ© ! 🎉 Maintenant vous savez comment avoir un petit serveur de stockage en ligne assez sympathique afin d'y stocker vos photos de vacances, vos sauvegardes ou mĂȘme partager des documents Ă  un tiers. 😉

Niveau DĂ©butant

Technologie utilisée :

Proposer une modification
Antoine
Par Antoine
Rédigé le Samedi 29 Octobre 2022