-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration
La configuration peut être trouvé dans le fichier
config.jsonc
, si ce fichier n'existe pas, vous devrez renommer le fichierconfig.example.jsonc
enconfig.jsonc
.
Valeur par défaut :
80
Type :number
Choix : port entre 0 et 65535
Le port utilisé par le serveur web. Si la variable d'environnement PORT
est défini, la valeur définie dans la configuration sera ignorée. Si aucune de ces valeurs ne peut s'appliquer, le port 4907
sera utilisé.
Valeur par défaut :
/
Type :string
Choix : peut-importe, doit commencer par un "/"
Permet de modifier l'URL de base utilisé par le serveur web, utile si le serveur n'utilise pas la racine du chemin.
Exemple : si l'URL "https://johan-stickman.is-a.dev/storage" permet d'accéder à StickStorage, la valeur baseUrl
de la configuration devrait être défini sur /storage
.
Autre exemple : si l'URL "https://storage.johanstick.fr" permet d'accéder à StickStorage, la valeur baseUrl
de la configuration devrait être défini sur /
.
Valeur par défaut :
true
Type :boolean
Choix :true
,false
Permet de choisir si les fichiers README(.md et .txt) devrait être prévisualisé automatiquement depuis l'interface web de StickStorage.
Valeur par défaut :
index.html
Type :string
Choix :
none
: Aucune, page d'erreur 404index.html
: Affiche le fichier index.html, se situant dans le dossierweb
rootFolder
: Affiche le dossier principal contenant la liste des fichiers et dossiers
Permet de personnaliser la page d'accueil de votre instance StickStorage.
Valeur par défaut :
404.html
Type :string
Choix :
none
: N'envoie aucune réponse, suspectible de crée un timeout sur la plupart des hébergeurs404.html
: Affiche le fichier 404.html, se situant dans le dossierweb
redirection:<url>
: Redirige vers une autre URL (assurez-vous d'ajouter le protocole au début, exemplehttps://
)
Permet de personnaliser le résultat d'une erreur 404 sur votre instance StickStorage.
Valeur par défaut :
[]
Type :array
Choix : liste d'IPv4
Permet de bloquer une ou plusieurs IP, celle-ci n'aura accès à aucun éléments du site mais peut toujours accéder aux fichiers hébergés sur Firebase ou Supabase s'il en connait son URL.
Valeur par défaut :
[]
Type :array
Choix : liste d'IPv4
Permet d'autoriser une ou plusieurs adresses IP. Dans le cas où un élément fait partie de la liste, toutes les adresses qui ne sont pas dans cette même liste seront automatiquement bloqués.
Pour obtenir votre propre IP, vous pouvez accéder à l'endpoint
/ip
, exemple : storage.johanstick.fr/ip
Valeur par défaut :
true
Type :boolean
Choix :true
,false
Permet d'activer ou désactiver la possibilité de télécharger tous les fichiers d'un dossier en faisant le raccourci CTRL+S depuis l'interface web.
Type :
array
Choix : liste d'objet avec les valeursname
eturl
Permet d'ajouter une liste de liens considérée comme "archive", qui seront accessibles en allant vers /archive
. Ceci ne modifie en aucun cas la liste des fichiers/dossiers. Exemple.
Valeur par défaut :
[
{
"name": "Ancien Twitterminal",
"url": "https://storage-bf183.firebaseapp.com/archive/twitterminal/index.html"
},
{
"name": "OsNul.html",
"url": "https://storage-bf183.firebaseapp.com/archive/osnul/index.html"
}
]
Type :
array
Choix : liste d'objet avec les valeursname
etpassword
Permet de protéger une liste de dossiers (et fichiers s'ils sont hébergés localement) par un mot de passe. Exemple, mot de passe : ErkLesNyanCats
.
Valeur par défaut :
[
{
"name": "mon-chat",
"password": "ErkLesNyanCats"
},
{
"name": "photo-famille",
"password": "Aucun rapport mais erk les nyan cats"
}
]
Type :
array
Choix : liste de noms de dossier (marche à peu près bien sur les fichiers hébergés localement)
Permet de rendre un dossier inaccessible, celui-ci ne figurera pas dans la liste des dossiers et ne sera pas visionnable à partir de son lien.
Valeur par défaut :
[
"projet-secret",
"trailer-secret"
]
Type :
object
Permet de limiter l'accès à certaines ressources après un certain nombre de requêtes en une minute.
Exemple :
{
// 50 requêtes par minute maximum pour un dossier
"folder": 50,
// 400 requête par minute maximum pour un fichier hébergé localement
"file": 400
}
Type :
object
Permet de modifier quelques éléments de l'interface web. Noter que pour l'icône et la bannière, la variable baseUrl
n'est pas appliquée.
Exemple :
{
// Nom du site
"name": "Storage",
// Description du site
"description": "Hébergeur de fichiers",
// Icône du site
"icon": "",
// Bannière du site
"banner": ""
}
Type :
object
Permet d'ajouter un mot de passe requis afin d'accéder à l'ensemble du site.
Exemple :
{
"enabled": false,
"password": "p@ssw0rd"
}
Type :
object
Permet de choisir où sont hébergés les fichiers, de définir le nom du dossier racine et d'autoriser si on peut accéder à la liste des fichiers/dossiers de ce dossier.
Exemple :
{
// "local", "firebase" ou "supabase" : voir les méthodes d'hébergement des fichiers dans le wiki.
"type": "local",
// Permet de modifier le nom du dossier root
"rootFolder": "servedFiles",
// Autorise ou non l'accès aux élements du dossier racine (n'opère pas sur les sous-élements de ce dernier)
"accessRootFolder": true
}
À chaque modification du fichier config.jsonc
, il est conseillé d'utiliser l'assistant de vérification de la configuration avec la commande node cli.js
. Cet assistant va vérifier l'ensemble du fichier de config afin de trouver de potentiels problèmes.
Après chaque modification des fichiers .env
ou config.jsonc
, un redémarrage du serveur web est requis pour actualiser les modifications.