Un service de partage de fichiers décentralisé, open source et auto-hébergeable.
288
Stend est un projet visant à être l'une des meilleures solutions pour configurer son propre service de partage de fichiers. Il a été conçu pour être aussi complet que la plupart des services propriétaires, mais avec une facilité d'installation et de configuration incomparable aux autres projets open-source.
Ce repo GitHub contient le code source de l'API de Stend, permettant d'héberger une instance du service.
illustration : client web
Pour plus d'informations, vous pouvez lire la documentation.
Voici un exemple de docker-compose.yml pour utiiser stend-api avec stend-web :
version: '3'
services:
stend-api:
image: makeinlab/stend-api:latest
environment:
# Chemin où seront stockés les fichiers dans le container
STORAGE_PATH: /usr/src/app/stend_storage
# Taille d'un chunk en octets (par défaut: 20000000 / 20 Mo)
# Note: assurez-vous que votre configuration (nginx, apache, etc.) autorise les requêtes de cette taille
# Dans le cas contraire, une erreur 413 (Payload Too Large) sera retournée lors de requêtes d'un chunk complet à l'API
# https://stackoverflow.com/a/37916740/16155654
CHUNK_SIZE: 20000000
# Taille maximale autorisée pour un seul fichier en octets
FILE_MAX_SIZE: 5000000000
# Mot de passe pour envoyer un fichier dans le cas ou vous souhaitez faire un serveur privé (décommenter si souhaité)
#API_PASSWORD: password
# Durée maximale avant expiration d'un fichier en secondes (par défaut: 2592000 / 30 jours)
# Durées recommendées :
# 1800 = 30 minutes
# 21600 = 6 heures
# 43200 = 12 heures
# 86400 = 1 jour
# 345600 = 4 jours
# 604800 = 1 semaine
# 1209600 = 2 semaine
# 2592000 = 1 mois
# 7776000 = 3 mois
# 15552000 = 6 mois
# 0 = Ne jamais expirer
FILE_MAX_AGE: 2592000
# Port sur lequel l'API écoutera
PORT: 3000
# Le serveur est-il derrrière un reverse proxy ?
# Si true, l'API utilisera l'header X-Forwarded-For pour récupérer l'adresse IP du client
# Si "cloudflare", l'API utilisera l'header CF-Connecting-IP pour récupérer l'adresse IP du client
# Si false, l'API utilisera l'adresse IP du dernier client contacté
USING_REVERSE_PROXY: true
# Marge lors de la vérification de l'espace disponible sur le disque en octets (par défaut: 1000000 / 1 Mo)
# Si l'espace sur le disque est inférieur à la taille du fichier + cette marge, l'API refusera de stocker le fichier
DISK_SPACE_MARGIN: 1000000
ports:
- 3000:3000
volumes:
- stend_storage:/usr/src/app/stend_storage
stend-web:
image: makeinlab/stend-web:latest
environment:
# Affichage de la taille maximale pour un seul fichier sur la page d'accueil du site
FILE_MAX_SIZE: 5 GB
# URL de l'API, les adresses IP locales (localhost, 127.0.0.1 etc...) ne corresponderaient pas forcément à votre configuration
API_BASE_URL: http://localhost:3000
# Port sur lequel le serveur web écoutera
PORT: 80
# Afficher ".html" dans le chemin des fichiers ?
# Exemple - true : https://stend.example.com/d.html?frezazer - Il est préférable d'utiliser cette option
# Exemple - false : https://stend.example.com/d?frezazer
# Sur certains hébergeurs comme Vercel, vous pouvez utiliser la propriété "cleanUrls" du vercel.json, puis définir la variable sur false
SHOW_HTML_EXTENSION: true
ports:
- 80:80
volumes:
- stend_web:/usr/src/app/build
volumes:
stend_storage:
stend_web:
Aucun endpoint de l'API ou tableau de bord n'a été implémenté pour gérer plus facilement une instance Stend. Dans un terminal, vous pouvez exécuter un script via la commande npm run admin pour gérer différents éléments de votre instance, tels que la suppression de transfert.
Si vous n'avez pas la possibilité d'utiliser une interface dans votre terminal, vous pouvez directement entrer dans le terminal du container avec docker exec -it stend-api /bin/bash puis entrer les arguments suivants dans la commande :
node admin.js info <clé de partage> # Affiche les informations d'un transfert
node admin.js delete <clé de partage> # Supprime un transfert, sans demander confirmation
node admin.js storage # Affiche l'espace de stockage utilisé par les fichiers enregistrés
L'utilisation de Stend pour des activités illégales n'est pas soutenue par le créateur ni par Make in Lab et ceux-ci ne peuvent être tenus responsables des problèmes matériels, logiciels ou légaux liés à ces utilisations non prévues. Utilisez à vos propres risques et prenez les précautions nécessaires, comme l'ajout d'un mot de passe obligatoire pour envoyer un fichier sur la plateforme.
MIT © Johan. Make in Lab si vous souhaitez nous aider 💙
Content type
Image
Digest
sha256:71792163f…
Size
56.4 MB
Last updated
over 1 year ago
docker pull makeinlab/stend-api