API
Héberger soi-même

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