Dépôt de fichier en ligne avec Jyraphe
Publié le 21 avril 2009 - GNU/Linux
Dernière mise à jour le 07 juin 2011
- Article
- |
- Commentaires (0)
- |
- Annexes (0)
Pour héberger et partager des fichiers en ligne, les services comme dl.free.fr sont très intéressants, et souvent largement suffisant pour transmettre des fichiers trop gros pour les échanges par mails. Il est pourtant possible de s'affranchir de ces outils gratuits mais néanmoins commerciaux. Grâce à Jyraphe, un projet disponible depuis pratiquement un an, sous licence libre GNU Affero, et qui arrive aujourd'hui dans une nouvelle version 0.4 !
Jyraphe est une application web de dépôt de fichier utilisant uniquement PHP pour gérer les dépôts et téléchargements de fichiers. Les développeurs du projet Jyraphe sont partisans de la philosophie "Getting Real" qui vise à ne proposer que les fonctionnalités essentielles à l'application.
Voici les principales fonctionnalités de Jyraphe (tirées du site officiel du projet) :
- Un fichier, un lien
Vous déposez un fichier et vous obtenez en retour un lien sur ce fichier que vous pouvez partagez. Quand vos amis suivent ce lien, ils reçoivent le fichier que vous avez déposé et peuvent le sauvegarder.
- Visualisation directe des images et des textes
Si le fichier que vous avez déposé est une image ou un texte, alors il apparaît directement dans le navigateur, comme n'importe quelle image ou n'importe quel texte.
- Téléchargement à usage unique
Vous avez aussi la possibilité de déposer un fichier qui ne pourra être téléchargé qu'une seule fois. Le lien donné n'est valable qu'une seule et unique fois et ensuite, le fichier disparaît.
- Limitation dans le temps
Il est possible d'indiquer une durée limite de téléchargement pour chaque fichier. Au delà de cette durée, le fichier ne sera plus accessible. Cest un bon moyen pour mettre à disposition des fichiers de manière temporaire.
- Restriction d'accès par mot de passe
Vous pouvez associer un mot de passe à chaque fichier, permettant ainsi de restreindre l'accès au fichier aux seules personnes à qui vous aurez communiqué à la fois l'URL et le mot de passe.
- Pas de base de données
Jyraphe fonctionne sans aucune base de données. Jyraphe n'a besoin que de PHP et utilise le système de fichier comme moyen de stockage naturel.
L'installation de Jyraphe est très simple et ne nécessite qu'un petit bout de serveur, la principale contrainte du projet étant la limite de téléchargement de PHP, de 2 Mo par défaut. Cette limite peut-être très pénalisante sur un hébergement qui n'offre pas la possibilité de l'augmenter... Mais sur un serveur perso ou dédié, il est très simple de monter la limite au delà des 2 Mo en jouant sur les directives post_max_size et upload_max_filesize de votre php.ini.
Jyraphe vise à permettre de partager des fichiers simplement sans avoir à passer par les sites de dépôt en 1 clic comme RapidShare ou MegaUpload. Ces sites visant à centraliser tous les échanges sont régulièrement chargés de publicités et Jyraphe offre donc une solution simple et légère pour s'affranchir de ces sites, sauf peut-être en cas de fichier vraiment très volumineux.
Installation et configuration
La première chose à faire est de télécharger l'archive de Jyraphe, sur le site officiel du projet. La dernière version stable lors de la rédaction de ces lignes est la 0.4. Une fois l'archive décompressée, il faut copier le contenu du répertoire pub/ sur votre espace web et l'installation est terminée.
La configuration est elle aussi très simple via le fichier install.php disponible :
- La première étape consiste à simplement choisir la langue désirée, entre anglais et français.
- La deuxième étape est la plus importante. Elle consiste en deux points :
- Choisir le FQDN de l'installation de Jyraphe
- Choisir le chemin vers le répertoire de stockage des fichiers téléchargés
Il est à cette étape nécessaire de faire deux choses. En premier lieu créer un fichier lib/config.local.php' et lui donner les droits d'écriture par le serveur. Ce fichier va contenir la configuration de l'application. Puis il vous faut créer un répertoire var-charabia/'', le charabia étant généré automatiquement par le script est visible à l'étape deux. Le serveur doit également avoir le droit d'écrire dans ce répertoire.
Comme indiqué, n'oubliez surtout pas le slash ( / ) final pour le FQDN et le chemin vers le répertoire var-charabia !
- La troisième étape est une confirmation de la création des répertoires et de la configuration.
Sur mon serveur, je n'ai pas réussi à créer les répertoires via le script install.php. J'ai donc eu à créer le répertoire var-charabia puis les trois répertoires files, links et trash à l'intérieur du répertoire var-charabia/. Et malgré cette création à la main, le script install.php ne voulait pas valider l'étape 2... Cependant l'application est pleinement fonctionnel malgré cette erreur, il suffit de tester un téléchargement après l'étape deux.
Une fois l'application fonctionnelle, vous pouvez retirer les droits d'écriture sur le fichier lib/config.local.php et supprimer le fichier install.php.
Il est également possible de directement renseigner le fichier de configuration config.local.php, à créer si besoin dans le répertoire lib/ :
<?php $cfg['web_root'] = 'http://votre.domaine.tld/'; $cfg['var_root'] = '/chemin/vers/votre/repertoire/var/'; $cfg['lang'] = 'fr_FR.UTF-8'; $cfg['style'] = 'default'; $cfg['rewrite'] = 'true'; $cfg['password'] = 'motdepasse'; ?>
Une explication des différentes lignes est disponible dans le fichier "config.php" ou sur le site de projet.
Sécuriser l'installation de Jyraphe
Plusieurs petites choses peuvent être mises en place pour sécuriser un peu Jyraphe. Voici les principales et les plus abordables :
- Ne pas nommer var/ aussi simplement ! Le script "install.php" génère un certain nombre de caractère aléatoire pour rendre le nom du répertoire unique. Si vous ne passez pas par le script en renseignant directement le fichier de configuration, pensez à rendre le nom unique et difficile à trouver.
- Utiliser un ".htaccess" à placer le répertoire var-charabia/ contenant ceci :
Order deny,allow Deny from all
Personne ne doit venir jeter un œil dans ce répertoire, ce .htaccess permet de s'en assurer.
- Mettre en place une authentification par .htaccess sur le répertoire de Jyraphe, avec un fichier .htaccess contenant ceci à mettre à la racine de votre installation :
<Files index.php> AuthUserFile /chemin/vers/le/fichier/.htpasswd AuthGroupFile /dev/null AuthName "L'accès à ce fichier est sécurisé." AuthType Basic Require valid-user </Files>
L'exemple ci-dessus limite l'authentification au seul fichier index.php. Ainsi une demande d'authentification ne sera demandée que pour le dépôt de fichiers, les utilisateurs venant récupérer un fichier via un lien n'auront pas à s'identifier par .htaccess.
Le fichier .htpasswd contient les utilisateurs valides et leurs mots de passe, sous cette forme :
utilisateur1:xxxxxxxxxxxxxxxxxxx utilisateur2:xxxxxxxxxxxxxxxxxxx
Pour générer le fichier .htpasswd il y a bien sur la commande htpasswd sous Unix ou Linux. Pour les utilisateurs d'autres OS, il existe de nombreux générateurs en lignes. En voilà un.
- Si vous avez la possibilité de mettre en place un cryptage SSL sur votre installation de Jyraphe, faites le. La sécurisation pas .htaccess n'étant pas dès plus efficace seul.
