Voici un projet tout jeune qui reprend un grand classique du self-hosting: raccourcisseur d'URL, pastebin, partage de fichier. Tout le monde connaît. 👍
Aujourd'hui nous allons parler de GigaPaste! Partage de fichiers, raccourcisseur d'URL et Pastebin au même endroit. Voilà la description du dev qui est en effet, bien conforme.
⚡ Caractéristiques
- Fonctionne sur les navigateurs mobiles, peut télécharger des fichiers/textes avec ctrl+v, glisser-déposer, parcourir le fichier ou via un terminal.
- Extrêmement simple à configurer.
- Très facile à modifier, vous n'aimez pas le style ? Choisissez un fichier .css à partir d'ici.
- Peut fonctionner sur n'importe quel système d'exploitation ou plate-forme de déploiement.
- Conçu pour fonctionner efficacement sur n'importe quel système, quelles que soient ses ressources CPU ou mémoire.
- Peut gérer des gigaoctets de téléchargement et de téléchargement de fichiers avec une utilisation fixe de la mémoire et du processeur.
- Toutes vos données peuvent être sécurisées avec AES et pbkdf2 pour les mots de passe, le décryptage se fait à la volée, les données chiffrées ne sont jamais décryptées sur le disque.
- Génération d'URL courtes et sans ambiguïté (avec des lettres comme ilI1 omises) avec détection de collision.
- Prise en charge du code QR pour partager rapidement des fichiers vers/entre appareils mobiles.
💾 L'installation
On va commencer par cloner le dépôt, lancez cette commande à la racine du dossier où vous avez vos applications d'installées:
sudo git clone https://github.com/NRicode/GigaPaste.git
On va se rendre dans le dossier:
cd GigaPaste
Si vous voulez modifier le port par défaut qui est le port 80, faites cette commande:
sudo nano docker-compose.yml
Et modifiez le port de gauche, comme ceci, avec le port de votre choix:
Maintenant on va configurer le fichier settings.json, commande à faire dans le dossier GigaPaste, où vous devriez déjà vous trouver:
sudo nano data/settings.json
Vous pouvez modifier:
- "fileSizeLimitMB": 100, => Sert à configurer la taille max des fichiers que l'on peut envoyer. S'exprimer en MB. Ici le fichier peut faire 100 MB.
- "textSizeLimitMB": 10, => Sert à configurer la taille max des fichiers texte.
On va déployer l'application:
docker compose up -d
Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 4454 dans mon cas, si vous ne l'avez pas changé, c'est le port 80:
https://ip:4454/
ou votre domaine:
https://mondomaine.com
🔗 Raccourcir une URL
Rien de plus simple, ajouter l'URL dans le champ prévu à cet effet:
Cliquez sur Upload ce qui va générer un lien de partage et un QR Code:
Collez le lien dans votre navigateur et cela va vous rediriger vers l'URL raccourcie.
🗃️ Envoyer un fichier et du texte
Un fichier
Soit vous cliquez dans cette zone, ce qui aura pour effet de vous laisser choisir un fichier sur votre ordinateur:
Ou vous pouvez tout simplement glisser le fichier vers votre instance GigaPaste, quand je dis le fichier ça peut tout aussi bien être les fichiers:
Et pour terminer, cliquez sur Upload file:
Si vous envoyez plusieurs fichiers, ça sera téléchargeable sous forme de zip.
Du texte
Collez votre texte dans la zone:
Cliquez sur Upload text.
La personne recevant le lien pourra le copier avec le bouton Copy all:
🔒 Ajouter un mot de passe
Vous pouvez bien entendu avoir besoin d'ajouter une protection en plus à votre lien.
Dans ce cas, indiquez juste le mot de passe ici:
Envoyez votre texte, fichier, cliquez sur Upload file, la personne verra ceci en ouvrant le lien:
Il suffira à la personne d'indiquer le mot de passe dans le champ password et de cliquer sur Submit.
⌛ Limite de temps
Vous avez également la possibilité de limiter la durée de validité de votre lien:
- Premier champ => Permet de régler le temps, est en relation avec le point suivant.
- Second champ => En cliquant sur minutes, vous aurez un menu déroulant avec comme options, minutes, heures, jours, mois année.
- Troisième champ => Si vous cochez cette case, le lien sera détruit après la première utilisation.
‼️ Conclusion
C'est un projet tout jeune, cela fonctionne bien de ce que j'en ai vu, n'hésitez pas à remonter vos idées ou bugs sur sa page GitHub, cela aide le dev à améliorer l'application et en cascade, les utilisateurs.