Un serveur spartiate statique avec de nombreuses fonctionnalités:
Serveurs connus exécutant SPSRV:
Questions / soutien
Table des matières
go installVous avez trois options:
Des binaires prédéfinis pour Darwin et Linux Architectures ARM / AMD-64 sont fournis depuis la V0.5.4. Rendez-vous sur la page Tags sur git.sr.ht, cliquez sur une balise souhaitée et téléchargez le binaire pour votre architecture.
go install Tout d'abord, vous devez être installé et avoir un dossier ~/go avec $GOPATH le pointant.
go install git.sr.ht/~hedy/spsrv@latest
Il y aura un binaire à ~/go/bin/ avec le code source à ~/go/src/
N'hésitez pas à déplacer le binaire ailleurs comme /usr/sbin/
Notez qu'il est recommandé d'épingler n'importe quelle dernière version @v0.0.0 plutôt que le dernier engagement car il peut ne pas être stable.
Run git clone https://git.sr.ht/~hedy/spsrv de tout répertoire et cd spsrv
Assurez-vous que vous avez installé et fonctionne.
git checkout v0.0.0 # recommended to pin a specific tag
make build
À la fin, le binaire sera en ./bin .
Si vous n'avez pas de marque, vous pouvez simplement go build (juste cette version et les informations de construction ne seront pas disponibles avec spsrv --version ).
Si vous ne souhaitez pas installer Go ou cloner le repo et que votre architecture n'est pas prise en charge dans les binaires prédéfinis, déposez un e-mail dans ma boîte de réception publique (ou contactez-moi en privé) afin que je puisse peut-être compiler un binaire pour votre architecture.
L'emplacement de fichier de configuration par défaut est /etc/spsrv.conf Vous pouvez spécifier votre propre chemin en exécutant SPSRV comme
spsrv -c /path/to/file.conf
Vous n'avez pas besoin d'un fichier de configuration pour que SPSRV soit en cours d'exécution, il n'utilisera que les valeurs par défaut.
Notez que les options sont insensibles au cas.
Voici les options de configuration et leurs valeurs par défaut
général
port=300 : port à écouterhostname="localhost" : si cela est défini, une demande que pour les noms d'hôte autres que cette valeur serait rejetérootdir="/var/spartan" : dossier pour récupérer les fichiersannonce de répertoire
dirlistEnable=true : Activer la liste des répertoires pour les dossiers qui n'ont pas index.gmidirlistReverse=false : inverser l'ordre dont les fichiers sont répertoriésdirlistSort="name" : comment les fichiers sont triés, seuls "nom", "taille" et "temps" sont acceptés. Par défaut "Nom" si une option inconnue est rencontréedirlistTitles=true : Si vrai, la liste des répertoires utilisera le premier en-tête de premier niveau dans les fichiers *.gmi au lieu du nom de fichier~ utilisateur / répertoires
userdirEnable=true : Activer les demandes de service /~user/*userdir="public_spartan" : répertoire racine pour les utilisateurs. Cela ne devrait pas avoir de barres de fin, et elle est relative à /home/user/userSubdomains=false : user vhosts. S'il faut permettre à user.host.name/foo.txt étant le même que host.name/~user/foo.txt (lorsque hostname="host.name" ). Remarque : Cela ne fonctionne que lorsque l'option hostname est définie.CGI
CGIPaths=["cgi/"] : Liste des chemins où les fichiers exécutables dans le monde seront exécutés sous forme de processus CGI. Ces chemins seraient vérifiés s'ils préfixent le chemin demandé. Pour la valeur par défaut, une demande /cgi/hi.sh (demandant à ./public/cgi/hi.sh , par exemple) exécutera le script hi.sh s'il est exécutable mondial.usercgiEnable=false : activer également les scripts CGI de l'utilisateur. Ceci est dangereux car SPSRV ne modifie pas (encore) l'UID du processus CGI, par conséquent, le processus serait exécuté par le même utilisateur qui exécute le serveur, ce qui pourrait signifier l'accès en écriture aux fichiers de configuration, etc. Notez que cette option sera supposée false si userdirEnable est défini sur false . Ce qui signifie que si les répertoires utilisateur ne sont pas activés, il n'y aura pas de CGI par utilisateur.Consultez un exemple de configuraton dans les exemples / répertoire.
Vous pouvez remplacer les valeurs dans le fichier de configuration si vous les fournissez à partir de la ligne de commande:
Usage: spsrv [ [ -c <path> -h <hostname> -p <port> -d <path> ] | --help | --version ]
-c, --config string Path to config file
-d, --dir string Root content directory
-h, --hostname string Hostname
-p, --port int Port to listen to
Notez que vous ne pouvez pas définir le nom d'hôte ou le chemin DIR vers , car SPSRV l'utilise pour vérifier si vous avez fourni une option. Vous ne pouvez pas non plus définir le port sur 0 , désolé, cette limitation est venue avec l'avantage de pouvoir remplacer les valeurs de configuration à partir de la ligne de commande.
Il n'y a aucun argument recherché lors de l'exécution de SPSRV, seulement des options comme indiqué ci-dessus :)
Les valeurs d'environnement suivantes sont définies pour les scripts CGI:
GATEWAY_INTERFACE # CGI/1.1
REMOTE_ADDR # Remote address
SCRIPT_PATH # (Relative) path of the CGI script
SERVER_SOFTWARE # SPSRV
SERVER_PROTOCOL # SPARTAN
REQUEST_METHOD # Set to nothing
SERVER_PORT # Port
SERVER_NAME # Hostname
DATA_LENGTH # Input data length
Le bloc de données, le cas échéant, sera tué en tant que stdin au processus CGI.
Gardez à l'esprit que les scripts CGI (à partir de maintenant) sont exécutés par le même utilisateur que le processus du serveur, il est donc généralement dangereux de permettre aux utilisateurs d'avoir leurs propres scripts CGI. Voir la section Configuration pour plus de détails.
Consultez quelques exemples de scripts CGI dans les exemples / répertoire.
Des exemples de configurations de service SystemD y sont également répertoriées. N'hésitez pas à contribuer à d'autres Os :)
Veuillez utiliser la chaîne #Spartan sur Tilde.Chat IRC ou ma boîte de réception publique.
Les deux sont répertoriés en haut de ce document.
Correctifs -> boîte de réception publique
/ dossier vers / dossier / redirection
annonce de répertoire
Enregistrement dans les fichiers
~ répertoires utilisateur
Réfactor Working Dir Part
configurer
CGI
Scgi
Plusieurs serveurs avec chacune de leurs propres confs
Readme: