Héberger l'API soi-même
Prérequis
- Une version récente de Node.js (opens in a new tab) et de npm (opens in a new tab)
- Stend a été testé avec Node.js v20.
- Stend ne fonctionne pas sur Node.js v12 ou inférieur.
- Git CLI (opens in a new tab) (optionnel, recommandé pour les mises à jour)
- Un serveur avec l'un des trois principaux systèmes d'exploitations
- Les droits d'administrateur sont requis sous Windows pour installer les dépendances
- Vous devez avoir accès à un stockage persistant (certains hébergeurs ne le proposent pas)
- Un stockage rapide en lecture et écriture est recommandé
Installation
Télécharger Stend
Avec Git
git clone https://github.com/johan-perso/stend-api.git
Sans Git
Depuis un navigateur, allez sur le repo GitHub de Stend (opens in a new tab) et cliquez sur le bouton vert "Code" puis sur "Download ZIP".
Vous pourrez ensuite extraire les fichiers dans un dossier de votre choix.
Installer les dépendances
Aller dans le dossier de Stend (cd stend-api
) puis installer les dépendances avec la commande suivante :
pnpm install
Configurer Stend
mv .env.example .env
nano .env
Vous pouvez maintenant modifier les valeurs de votre fichier .env
pour configurer certains éléments de Stend.
Démarrer Stend
pnpm start
Pour que Stend reste actif en arrière-plan, vous pouvez installer PM2 (npm install pm2 -g
) et lancer Stend avec pm2 start index.js --name stend-api
.
Vous devrez potentiellement modifier votre pare-feu et la configuration de votre routeur pour que Stend soit accessible depuis l'extérieur.
Gérer une instance en tant qu'administrateur
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 les arguments 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