Comment héberger et partager de gros fichiers en ligne avec PicoShare sur Linux

Picoshare est une application web de partage de fichiers légère et très accessible pour Linux. Elle offre une interface facile à utiliser où vous pouvez télécharger et partager des fichiers depuis votre propre serveur. Cet article vous montrera comment installer Picoshare et partager des fichiers en ligne en utilisant Docker sur Ubuntu Linux.
Table des matières
- Pourquoi utiliser Picoshare pour partager des fichiers en ligne
- Installation des prérequis pour PicoShare
- Installation et exécution de PicoShare
- Sécurisation de PicoShare avec un proxy inverse SSL
- Test de PicoShare et téléchargement de votre premier fichier
Pourquoi utiliser Picoshare pour partager des fichiers en ligne
L’un des principaux atouts de PicoShare est qu’il est facile à déployer sur n’importe quelle plateforme basée sur Linux. Avec l’aide de Docker, vous pouvez partager des fichiers en ligne avec PicoShare sans vous soucier des dépendances Linux et de la compatibilité des programmes.
Un autre atout de PicoShare est qu’il ne manipule pas les fichiers que vous téléchargez sur sa plateforme. Cela le rend utile pour partager des images et des vidéos, car vous pouvez être sûr que le serveur ne ré-encoder pas vos médias lors de leur téléchargement.

Enfin, PicoShare dispose de la capacité de dupliquer son stockage de fichiers vers des solutions de stockage d’objets externes. Par exemple, vous pouvez lier votre bucket compatible Amazon S3 à votre serveur PicoShare et créer une sauvegarde 1:1 du contenu de votre serveur. Cela facilite la restauration des données lors de la migration d’un système à un autre.
Installation des prérequis pour PicoShare
Hypothèse : Ce tutoriel est réalisé sur une machine Ubuntu 24.04 avec au moins 2 Go de RAM et 50 Go d’espace disque. Vous devrez avoir un nom de domaine pour lequel vous pouvez créer des enregistrements “A”. Enfin, cet article utilisera DigitalOcean Spaces pour son backend de stockage d’objets compatible S3.
Remarque : Bien que les instructions ici soient pour Ubuntu, elles devraient également fonctionner pour la plupart des distributions Linux.
La première étape pour installer PicoShare est d’obtenir à la fois Docker et Nginx pour votre système hôte (pour d’autres distributions Linux, voici comment installer Docker sur vos systèmes Linux). Pour commencer, récupérez la clé de signature pour le dépôt du projet Docker :
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |sudo gpg --dearmor-o/etc/apt/keyrings/docker.gpg
sudochmod a+r /etc/apt/keyrings/docker.gpgCréez un nouveau fichier de dépôt apt en utilisant votre éditeur de texte préféré :
sudonano/etc/apt/sources.list.d/docker.listCollez la ligne de code suivante dans votre nouveau fichier de dépôt :
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stableEnregistrez votre fichier de dépôt, puis mettez à jour à la fois les listes de dépôts du système et ses paquets actuels :
sudo apt update &&sudo apt upgradeInstallez Docker, Docker Compose et Nginx en utilisant apt sur Ubuntu :
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginxCréation d’une sauvegarde de stockage cloud pour PicoShare
Allez chez votre fournisseur de stockage cloud compatible S3, puis créez un nouveau bucket de stockage. Dans ce cas, j’utilise DigitalOcean Spaces, donc je vais cliquer sur Créer -> Stockage d’objets Spaces sur mon écran de tableau de bord.

Sélectionnez un emplacement de centre de données pour votre stockage compatible S3, puis cochez la case Activer CDN.

Fournissez un nom pour votre nouveau bucket Spaces, puis cliquez sur Créer un bucket Spaces pour l’initialiser.

Cliquez sur l’icône de copie dans la zone de texte de l’endpoint d’origine et collez-la dans un fichier texte séparé.

Faites défiler la barre latérale gauche de votre tableau de bord DigitalOcean, puis cliquez sur la catégorie API.
Cliquez sur l’onglet Clés Spaces, puis sélectionnez Générer une nouvelle clé.
Fournissez un nom pour votre nouvelle clé, puis cliquez sur Créer une clé d’accès.
Copiez à la fois la “Clé d’accès” et la “Clé secrète” de la page et collez-les dans votre fichier texte.

Installation et exécution de PicoShare
Créez un nouveau dossier pour PicoShare dans le répertoire personnel de votre utilisateur, puis entrez dans celui-ci :
mkdir ~/picoshare &&cd ~/picoshareUtilisez votre éditeur de texte préféré pour créer le fichier Compose pour PicoShare :
nano ./docker-compose.ymlCollez le bloc de code suivant dans votre nouveau fichier .yml :
version: "3.2"
services:
picoshare:
image: mtlynch/picoshare
environment:
- PORT=4001
- PS_SHARED_SECRET=RANDOM PASSWORD HERE
- LITESTREAM_BUCKET="YOUR BUCKET NAME"
- LITESTREAM_ENDPOINT="YOUR ORIGIN ENDPOINT HERE"
- LITESTREAM_ACCESS_KEY_ID="YOUR BUCKET ACCESS ID HERE"
- LITESTREAM_SECRET_ACCESS_KEY="YOUR BUCKET SECRET HERE"
ports:
- 4001:4001
command: -db /data/store.db
volumes:
- ./data:/dataRemplacez la valeur de la variable “PS_SHARED_SECRET” par un mot de passe suffisamment long et aléatoire. Cela servira de mot de passe pour l’interface web de PicoShare.

Remarque : vous pouvez générer votre propre mot de passe aléatoire en exécutant : cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1 dans une session terminal séparée.
Changez la valeur de la variable “LITESTREAM_BUCKET” avec le nom de votre bucket Spaces.

Copiez la région et la partie nom de domaine de votre endpoint, puis collez-la comme valeur de votre variable “LITESTREAM_ENDPOINT”.

Remplacez les valeurs des variables “LITESTREAM_ACCESS_KEY_ID” et “LITESTREAM_SECRET_ACCESS_KEY_ID” par la clé d’accès et la clé secrète du bucket DigitalOcean Spaces.

Enregistrez votre fichier docker-compose.yml, puis exécutez la commande suivante pour construire et exécuter l’instance PicoShare :
sudodocker compose up -dEn passant : vous pouvez également utiliser Docker et Docker Compose pour héberger rapidement un serveur Minecraft sur votre machine Linux.
Sécurisation de PicoShare avec un proxy inverse SSL
À ce stade, vous avez maintenant PicoShare fonctionnant sur le port 4001 de votre machine locale. Afin d’y accéder de manière sécurisée sur Internet, vous devez vous assurer que toutes les connexions à celui-ci sont cryptées via SSL.
Commencez par créer un nouvel enregistrement “A” pour votre nom de domaine pointant vers l’adresse IPv4 de votre serveur PicoShare. Dans mon cas, je vais créer un enregistrement “A” avec la valeur “picoshare.”
Installez le paquet snap “core” sur votre système Ubuntu :
sudo snap install coreRécupérez le paquet snap certbot de la Electronic Frontier Foundation (EFF) :
sudo snap install certbot --classicCréez un nouveau fichier de configuration de site Nginx en utilisant votre éditeur de texte préféré :
sudonano/etc/nginx/sites-available/picoshareCollez le bloc de code suivant dans votre fichier de configuration de site :
server{
server_name SUBDOMAIN.YOUR-ROOT.DOMAIN;
location / {
proxy_passhttp://127.0.0.1:4001;
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
client_max_body_size 0m;
}
}Enregistrez votre fichier de configuration de site, puis créez un lien symbolique de votre répertoire “/etc/nginx/sites-available/“ vers votre dossier “/etc/nginx/sites-enabled/“ :
sudoln-s/etc/nginx/sites-available/picoshare /etc/nginx/sites-enabled/Vérifiez votre fichier de configuration Nginx pour toute erreur, puis démarrez le démon du serveur web Nginx en utilisant systemctl :
ginx -t
sudo systemctl enable--now nginx.service
Enregistrez votre serveur PicoShare en utilisant l’utilitaire certbot de l’EFF :
sudo certbot register --agree-tos-m [email protected]Générez un nouveau certificat SSL pointant vers le nom de domaine de votre serveur :
sudo certbot --nginx-d SUBDOMAIN.YOUR-ROOT.DOMAINBon à savoir : apprenez comment HTTPS protège vos données en ligne en générant votre propre certificat SSL avec OpenSSL.
Test de PicoShare et téléchargement de votre premier fichier
Ouvrez un navigateur web, puis naviguez vers votre sous-domaine pour charger la page d’accueil de PicoShare.

Cliquez sur le bouton Se connecter dans le coin supérieur droit de la page.
Fournissez la valeur de “PS_SHARED_SECRET” dans la zone de texte Phrase secrète, puis cliquez sur Authentifier pour vous connecter.

Vérifiez si vous pouvez enregistrer des données sur votre serveur PicoShare en cliquant sur le bouton Télécharger, puis sélectionnez un fichier d’exemple via le menu de sélection.

Copiez le premier lien que le serveur renvoie à l’utilisateur avec lequel vous souhaitez partager votre fichier.

Activer les téléchargements temporaires pour invités sur PicoShare
En plus des téléchargements soumis par les utilisateurs, vous pouvez également créer des liens temporaires qui permettent aux utilisateurs anonymes de télécharger des fichiers uniques sur votre serveur. Cela peut être utile si vous avez quelqu’un qui doit partager des fichiers avec vous mais ne peut pas télécharger de fichiers sur un service cloud régulier.
Commencez par cliquer sur la catégorie Liens invités sur la page d’accueil de PicoShare.

Cliquez sur le bouton Créer nouveau juste au-dessus du tableau de vue d’ensemble des liens vides.
Fournissez les détails de base pour votre lien de téléchargement invité. Dans mon cas, je vais l’étiqueter comme “MakeTechEasier” et définir l’expiration à Jamais avec une limite de taille de fichier de 100 Mo et une limite globale de 10 téléchargements.

Cliquez sur Créer pour générer le lien temporaire pour invités pour votre instance PicoShare.
Cliquez sur l’icône de copie sur le côté droit du lien invité, puis envoyez le contenu de votre presse-papiers au destinataire prévu.

Déployer et sécuriser PicoShare pour partager des fichiers en ligne en utilisant Linux n’est que la première étape pour récupérer votre vie privée numérique en ligne. Apprenez comment vous pouvez vous protéger davantage en hébergeant votre propre serveur d’alias d’email en utilisant SimpleLogin.
Crédit d’image : Alejandro Escamilla via Unsplash et PicoShare Github. Toutes les modifications et captures d’écran par Ramces Red.