Comment héberger un serveur de partage de fichiers avec Pydio sur Ubuntu 14.04

introduction

Au fur et à mesure que l’adoption du cloud augmente, de plus en plus de données sont stockées à distance. De la musique aux images en passant par les documents personnels, de nombreuses personnes téléchargent des fichiers sur des serveurs qu’elles ne gèrent pas. Si vous préférez conserver vos fichiers sur un serveur que vous contrôlez, vous pouvez héberger votre propre serveur de partage de fichiers, similaire à Dropbox, en utilisant Pydio (anciennement AjaXplorer).

Pydio offre bon nombre des mêmes fonctionnalités que d’autres services de synchronisation de fichiers: une interface Web, des clients natifs pour Mac, Windows et Linux, des clients mobiles pour iOS et Android et la possibilité de partager des fichiers avec d’autres utilisateurs de Pydio ou avec le public.

Buts

Dans cet article, nous allons mettre en place une installation simple de Pydio qui fonctionne bien, même sans matériel puissant. Comme beaucoup de projets open source de niveau entreprise, Pydio a une édition communautaire et une édition entreprise. Nous installerons l’édition communautaire.

En termes de pile logicielle, nous utiliserons Postfix pour l’assistance par courrier électronique; Par défaut, PHP ne peut pas envoyer de courriels. Si vous préférez une solution plus légère, vous pouvez installer + ssmtp +, mais cette configuration utilise Postfix car elle nécessite peu d’ajustements pour que PHP puisse la prendre en charge. Notez que l’activation de l’aide par courrier électronique n’est pas obligatoire, mais elle simplifie beaucoup les choses; sans lui, Pydio ne pourra pas envoyer d’emails de réinitialisation de mot de passe ni d’emails de bienvenue.

Nous conserverons également Apache comme serveur Web (pour des raisons de simplicité) et comme base de données SQLite (au lieu de MySQL, pour moins de pièces mobiles). Cette configuration est idéale si le groupe utilisant Pydio n’est pas très grand ou n’envoie pas beaucoup de données au serveur en même temps. Toutefois, si vous avez besoin de quelque chose avec un peu plus de puissance, il existe des directives sur la manière d’améliorer les performances dans la conclusion.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

Nous allons également définir des certificats SSL pour votre domaine à l’aide de Let’s Encrypt. Vous suivrez this tutorial de Cryptez sur Apache , mais pour simplifier la configuration, nous ne le configurerons pas tant que Pydio n’est pas installé à l’étape 3.

Si vous souhaitez en savoir plus sur le fonctionnement des certificats SSL / TLS, veuillez consulter https://www.digitalocean.com/community/tutorials/openss-essentials-working-with-ssl-certificates-private-keys-and -csrs [cet article sur les principes OpenSSL].

Étape 1 - Installation de Pydio

Dans cette étape, nous allons installer les dépendances de Pydio et Pydio lui-même.

Tout d’abord, mettez à jour votre index de paquet.

sudo apt-get update

Maintenant, installez PHP.

sudo apt-get install php5 libapache2-mod-php5

Ensuite, nous devons télécharger le fichier tar Pydio et le décompresser sur notre serveur Web. Le téléchargement de Pydio est hébergé sur SourceForge. Vous pouvez cliquer pour trouver le miroir le plus proche de votre position géographique ou simplement utiliser le lien ci-dessous pour utiliser le miroir du Royaume-Uni.

Au moment de la publication, Pydio est à la version 6.2.2. Vous voudrez peut-être vérifier si Pydio a été mis à jour et récupérer la dernière version de SourceForge si c’est le cas.

Téléchargez le fichier tar Pydio dans votre répertoire personnel.

wget -P ~/

Décompressez l’archive.

tar -xvzf ~/pydio-core-.tar.gz

Puis déplacez-le vers l’emplacement par défaut des sites Web sur un serveur Ubuntu, + / var / www +.

sudo mv ~/pydio-core- /var/www/pydio

Une fois le répertoire en place, nous devrons modifier ses autorisations pour qu’Apache puisse stocker des données et mettre à jour les fichiers de configuration.

sudo chown -R www-data:www-data /var/www/pydio

Étape 2 - Configuration des modules PHP

Avec Pydio en place, nous devons installer et configurer quelques dépendances pour que Pydio fonctionne correctement. Nous allons faire beaucoup de changements à cette étape et on nous demandera de redémarrer Apache après chaque étape. Vous pouvez le faire si vous voulez, mais ici, nous attendrons la fin de toute l’installation et redémarrons Apache une fois.

Premièrement, nous installerons et activerons les modules PHP supplémentaires dont nous avons besoin.

sudo apt-get install php5-mcrypt php5-gd php5-sqlite

L’un de ces modules PHP, + mcrypt +, n’est pas activé par défaut. Nous pouvons l’activer en utilisant + phpenmod +.

sudo php5enmod mcrypt

En plus d’installer et d’activer certains modules PHP, nous devons activer le module Apache + a2enmod + ou le client de synchronisation ne fonctionnera pas.

sudo a2enmod rewrite

Maintenant que PHP est complètement installé, nous devons faire quelques modifications dans le fichier + php.ini +. Trois lignes doivent être mises à jour. En utilisant votre éditeur préféré, comme + nano +, éditez le fichier + php.ini.

sudo nano /etc/php5/apache2/php.ini

Recherchez la ligne avec + output_buffering = 4096 + et remplacez + 4096 + par + Off +.

Mise à jour /etc/php5/apache2/php.ini

; Default Value: Off
; Development Value: 4096
; Production Value: 4096
; http://php.net/output-buffering
output_buffering =

Ensuite, recherchez + upload_max_filesize = 2M + et remplacez + 2M + par un grand nombre, comme + 1G +. (M est l’abréviation de MB et G pour GB.)

Mise à jour /etc/php5/apache2/php.ini

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize =

Finalement, trouvez + post_max_size = 8M + et changez le même numéro que + upload_max_filesize + ou plus. Si vous pensez que plusieurs téléchargements volumineux sont effectués en même temps ou que plusieurs utilisateurs utilisent simultanément le système, vous pouvez utiliser un nombre plus important.

Mise à jour /etc/php5/apache2/php.ini

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size =

Vous pouvez enregistrer et fermer + / etc / php5 / apache2 / php.ini. Ceci est le fichier + php.ini + d’Apache; Ensuite, ouvrez le fichier d’accès en ligne de commande + php.ini + à + ​​/ etc / php5 / cli / php.ini +.

sudo nano /etc/php5/cli/php.ini

Apportez les trois mêmes modifications à ce fichier que ci-dessus, puis enregistrez-le et fermez-le.

Étape 3 - Configuration d’Apache

Dans cette étape, nous allons personnaliser notre configuration Apache.

Commencez par créer et ouvrir un nouveau fichier appelé + pydio.conf + avec votre éditeur de texte préféré.

sudo nano /etc/apache2/sites-available/pydio.conf

La configuration Apache suivante est une copie du fichier de configuration + 000-default + avec les commentaires supprimés et quelques blocs supplémentaires ajoutés pour cette installation Pydio spécifique, comme la racine du document et les fichiers journaux.

/etc/apache2/sites-available/pydio.conf

<VirtualHost *:80>
   ServerAdmin @
   ServerName
   DocumentRoot /var/www/pydio

   ErrorLog ${APACHE_LOG_DIR}/pydio-error.log
   CustomLog ${APACHE_LOG_DIR}/pydio-access.log combined

   <Directory /var/www/pydio/>
       AllowOverride All
   </Directory>
</VirtualHost>

Avant de copier et coller ceci dans + pydio.conf +, voyons ce qu’il contient:

  • + <VirtualHost *: 80> + définit un hôte virtuel, ce qui permet d’héberger plusieurs sites sur un seul serveur. Cette ligne définit spécifiquement cet hôte virtuel comme site par défaut sur ce serveur et se connecte via le port 80.

  • + ServerAdmin + définit une adresse électronique à laquelle Apache doit envoyer les erreurs, si la gestion des erreurs est configurée de cette façon.

  • + ServerName + est le nom DNS du serveur Pydio ou l’adresse IP de votre serveur. Si vous commencez avec une adresse IP et souhaitez la modifier plus tard, vous pouvez ou vous pouvez la laisser en ajoutant une ligne + ServerAlias ​​+ avec un nouveau nom DNS; les deux vont travailler.

  • + DocumentRoot + est l’emplacement où le site Web est stocké sur votre Droplet et qu’Apache doit mettre en place.

  • + ErrorLog + et + CustomLog + définissent où enregistrer les journaux Apache. Ces options de journalisation peuvent devenir assez compliquées si vous avez besoin d’une configuration de journalisation très personnalisée, mais ces valeurs par défaut fonctionnent pour nos besoins.

Collez cette configuration dans le fichier, puis enregistrez-la et fermez-la. Avec nos fichiers de configuration Apache en place, nous devons maintenant désactiver la configuration Apache par défaut.

sudo a2dissite 000-default

Activez maintenant nos deux fichiers de configuration.

sudo a2ensite pydio

Dans les conditions préalables, nous avons indiqué que nous configurerions Let’s Encrypt pour activer le cryptage SSL / TLS. Cela permet de protéger nos informations de connexion et nos données des personnes qui peuvent détecter les paquets sur notre réseau local ou sur Internet. Comme nous utilisons Apache comme serveur Web, Let’s Encrypt a le support nécessaire pour configurer automatiquement Apache pour nous. Pour simplifier les choses, nous avons configuré Apache sans SSL afin que, lorsque nous exécutons le script automatique Let Encrypt, tout soit réglé pour nous.

Il est maintenant temps de suivre le didacticiel de Encrypt on Apache . Utilisez le nom de domaine complet que vous avez choisi lors de l’installation de Let’s Encrypt et le script d’installation verra notre configuration Apache et créera une version SSL à votre place.

Assurez-vous de choisir + pydio.conf + si on vous demande quel hôte virtuel vous souhaitez choisir. Parce que nous voulons que notre connexion soit toujours sécurisée, veillez à sélectionner * Sécurisé - Réorientez toutes les demandes pour un accès HTTPS sécurisé * lorsque le script Let’s Encrypt vous le demande.

Enfin, nous pouvons redémarrer Apache pour que nos modifications prennent effet.

sudo service apache2 restart

Étape 4 - Personnaliser le support de PHP Mailer

Postfix doit être installé à partir des conditions préalables. Ensuite, nous voudrons faire un changement rapide pour empêcher tout sauf les applications locales de l’utiliser.

Pour effectuer cette modification, nous devrons éditer le fichier de configuration de Postfix, + / etc / postfix / main.cf +.

sudo nano /etc/postfix/main.cf

Recherchez la ligne + inet_interfaces et mettez-la à jour de` + all` à + ​​localhost.

/etc/postfix/main.cf

. . .
recipient_delimiter = +
inet_interfaces =
inet_protocols = all
. . .

Maintenant, redémarrez le service Postfix pour activer les modifications.

sudo service postfix restart

Étape 5 - Terminer la configuration de Pydio

Pydio est installé; Dans cette étape, nous allons terminer l’installation.

Visitez + https: // + dans votre navigateur préféré. La première page que vous verrez sera intitulée * Outil de diagnostic Pydio *. Dans la liste de cette page, l’élément le plus haut est un avertissement concernant * l’encodage du jeu de caractères du serveur *. Nous allons résoudre ce problème dans un instant. Tant que c’est le seul avertissement et que le reste des éléments est * OK *, cliquez sur le bouton * CLIQUEZ ICI POUR CONTINUER À PYDIO *.

Lorsque vous y êtes invité, cliquez sur le bouton * Assistant de démarrage> *. Sur la première page pour les * Options principales *, remplissez les champs:

  • * Titre de l’application *, qui correspond à la barre de titre du navigateur.

  • * Message de bienvenue *, visible sur l’écran de connexion

  • * Connexion administrateur *, le nom d’utilisateur admin

  • * Nom d’affichage Admin *, qui ressemble à ça

  • Mot de passe administrateur

Lorsque tout est rempli, appuyez sur le bouton rouge * >> * en bas à droite.

image: https: //assets.digitalocean.com/articles/pydio/H6sSWHv.png [Options principales de l’installateur Pydio]

Sur la deuxième page pour * Connexion de base de données *, choisissez * Sqlite 3 * dans le menu déroulant * Base de données *. Ne modifiez pas la ligne de fichier à l’emplacement où la base de données SQLite sera stockée. Cliquez sur le bouton * Tester la connexion * pour vous assurer que tout fonctionne. Vous devriez voir une boîte verte apparaître au bas de l’écran si le test est réussi. Continuez ensuite en cliquant sur le bouton * >> *.

À la troisième étape des * Options avancées *, la plupart des choses seront automatiquement détectées. Il vous suffit donc de confirmer qu’elles sont correctes. La seule chose à faire est d’activer le support par courrier électronique.

  • Pour * Activer les emails *, sélectionnez * Oui * dans le menu déroulant.

  • Pour * Mailer *, sélectionnez * Mail *

  • Entrez votre adresse email pour le * Email de l’administrateur *

Vous pouvez cliquer sur le bouton * Essayez d’envoyer un courrier électronique avec le bouton * de données configurées pour vous assurer que tout fonctionne.

Enfin, terminez l’installation en cliquant sur le bouton * Installer Pydio *.

Étape 6 - Utilisation de Pydio

Maintenant que Pydio est installé, nous serons à l’écran de connexion avec notre message de bienvenue personnalisé. Nous pouvons maintenant nous connecter avec l’utilisateur admin défini à l’étape précédente.

Une fois connecté, deux options s’affichent à gauche: * Fichiers communs * et * Mes fichiers *. Ces deux options sont appelées spaces_de_travail, qui sont essentiellement des partages de fichiers ou des dossiers dans lesquels vous pouvez stocker des fichiers. * Mes fichiers * est fait pour vous et * Fichiers communs * est un dossier partagé pour tous les utilisateurs de cette installation Pydio.

Nous pourrons créer d’autres espaces de travail et les partager avec qui vous voulez. Maintenant que Pydio est installé, cliquez pour voir comment cela fonctionne et invitez les autres utilisateurs à stocker leurs fichiers avec vous.

Bien que l’interface Web soit utile et que vous puissiez télécharger, organiser, partager et partager vos données, vous pourrez probablement télécharger vos fichiers avec Pydio directement via un client natif. Vous pouvez télécharger les desktop clients ici (Mac / Win / Linux), les https://itunes.apple.com/fr/app / pydio / id709275884 [client iOS ici] et le client Android ici.

Une fois le client de synchronisation installé, lancez Pydio Sync et suivez l’assistant pour le synchroniser localement.

image: https: //assets.digitalocean.com/articles/pydio/uljFNvX.png [assistant Pydio Sync]

Si vous choisissez d’utiliser un certificat auto-signé (au lieu de Let’s Encrypt), vous obtiendrez une erreur concernant le certificat. Si vous le faites, cochez la case * Trust SSL Certificate * en bas de l’écran qui apparaît après l’avertissement, puis cliquez à nouveau sur le bouton * Connect *.

Contrairement aux autres outils de partage de fichiers qui synchroniseront tout le contenu de votre compte, Pydio vous permet de choisir de synchroniser chaque espace de travail individuellement. Lorsque vous exécutez le client pour la première fois, vous pouvez choisir l’espace de travail à synchroniser localement. Une fois la première synchronisation définie, vous pouvez ajouter des synchronisations supplémentaires sur le lieu de travail.

Conclusion

Pydio vous permet de prendre le contrôle de vos données. Grâce aux clients natifs de toutes les principales plates-formes de bureau et mobiles, vos données peuvent également être accessibles à tout moment. Mais Pydio peut faire plus que simplement héberger vos fichiers. Il existe une collection de plugins pour étendre les fonctionnalités.

Si les performances de Pydio dans cette configuration sont un peu trop lentes pour votre cas d’utilisation, voici quelques astuces pour l’améliorer:

  • Coupler Pydio avec un serveur MySQL ou PostgreSQL au lieu de Sqlite.

  • Utilisez Nginx en tant que serveur Web au lieu d’Apache.

  • Mettez à niveau votre serveur pour avoir plus de RAM et de CPU

  • Vous pouvez même enable WebDAV access sur votre serveur pour la synchronisation d’applications tierces compatibles WebDAV.