Tutoriel Pydio
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.
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.
Afin de réaliser l'installation de Pydio Cells sur votre serveur, quelques prérequis sont nécessaires :
ulimit -n
).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
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
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
Pydio Cells fonctionne avec une base de données tel que MariaDB ou MySQL. Pydio Cells prend en charge les versions de serveur suivantes :
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.
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Ă©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
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.
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.
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
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.
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 :
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.
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 !
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
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.