Ein statischer Spartan -Server mit vielen Funktionen:
Bekannte Server, die SPSRV ausführen:
Fragen / Unterstützung
Inhaltsverzeichnis
go installSie haben drei Optionen:
Vorbereitete Binärdateien für Darwin und Linux-Architekturen Arm/AMD-64 werden seit V0.5.4 bereitgestellt. Besuchen Sie die Tags -Seite auf Git.sr.ht, klicken Sie auf ein gewünschtes Tag und laden Sie die Binärdatei für Ihre Architektur herunter.
go install Zuerst müssen Sie Go installieren und einen Ordner haben ~/go mit $GOPATH der darauf hinweist.
go install git.sr.ht/~hedy/spsrv@latest
Bei ~/go/bin/ mit dem Quellcode bei ~/go/src/ wird es eine Binärdatei geben
Fühlen Sie sich frei, die binäre Binärdehnung woanders wie /usr/sbin/
Beachten Sie, dass es empfohlen wird, eine neueste Version @v0.0.0 anstelle des neuesten Commits festzuhalten, da dies möglicherweise nicht stabil ist.
Führen Sie git clone https://git.sr.ht/~hedy/spsrv aus einem beliebigen Verzeichnis und cd spsrv aus
Stellen Sie sicher, dass Sie go installiert und arbeiten.
git checkout v0.0.0 # recommended to pin a specific tag
make build
Wenn es endet, wird die Binärdatei in ./bin sein.
Wenn Sie keine Make haben, können Sie einfach go build (nur diese Version und Erstellen von Informationen sind nicht mit spsrv --version verfügbar).
Wenn Sie das Repo nicht installieren oder klonen möchten und Ihre Architektur in den vorgefertigten Binärdateien nicht unterstützt wird, geben Sie eine E -Mail an meinen öffentlichen Posteingang (oder kontaktieren Sie mich privat), damit ich vielleicht eine Binärdatei für Ihre Architektur kompilieren kann.
Der Standard -Konfigurationsdateispeicherort ist /etc/spsrv.conf Sie können Ihren eigenen Pfad angeben, indem Sie SPSRV -Like ausführen
spsrv -c /path/to/file.conf
Sie benötigen keine Konfigurationsdatei, um SPSRV auszuführen. Sie verwendet nur die Standardwerte.
Beachten Sie, dass die Optionen unempfindlich sind.
Hier sind die Konfigurationsoptionen und deren Standardwerte
allgemein
port=300 : Port zum Anhörenhostname="localhost" : Wenn dies festgelegt ist, würde jede Anfrage, die für andere Hostnamen als diesen Wert abgelehnt wirdrootdir="/var/spartan" : Ordner zum Abholen von DateienVerzeichnisliste
dirlistEnable=true : Verzeichnisliste für Ordner aktivieren, die nicht index.gmi habendirlistReverse=false : Umgekehrt Die Reihenfolge, in der Dateien aufgeführt sinddirlistSort="name" : Wie Dateien sortiert, nur "Name", "Größe" und "Zeit" akzeptiert werden. Standardeinstellungen zum "Namen", wenn eine unbekannte Option auftrittdirlistTitles=true : Wenn True true, wird die Verzeichnisliste in *.gmi -Dateien anstelle des Dateinamens erster Top -Level -Header verwendet~ Benutzer/ Verzeichnisse
userdirEnable=true : Serving /~user/* Anfragen aktivierenuserdir="public_spartan" : root -Verzeichnis für Benutzer. Dies sollte keine nachfolgenden Schrägstriche haben, und es ist relativ zu /home/user/userSubdomains=false : Benutzer Vhosts. Ob user.host.name/foo.txt erlauben soll wie host.name/~user/foo.txt (wenn hostname="host.name" ). Hinweis : Dies funktioniert nur, wenn die Option hostname festgelegt ist.CGI
CGIPaths=["cgi/"] : Liste der Pfade, in denen weltweit ausgemachte Dateien als CGI-Prozesse ausgeführt werden. Diese Pfade würden überprüft, wenn sie den angeforderten Pfad vorfixieren. Für den Standardwert wird eine Anfrage von /cgi/hi.sh (Anfrage an ./public/cgi/hi.sh zum Beispiel) hi.sh -Skript ausgeführt, wenn es sich um die Welt der Welt handelt.usercgiEnable=false : Aktivieren Sie auch die CGI -Skripte des Benutzers. Dies ist gefährlich, da SPSRV die UID des CGI -Prozesses nicht ändert. Daher wird der Prozess von demselben Benutzer ausgeführt, der den Server ausführt, was den Zugriff auf Konfigurationsdateien usw. bedeuten könnte. Beachten Sie, dass diese Option false angenommen wird, wenn userdirEnable auf false festgelegt wird. Dies bedeutet, dass, wenn Benutzerverzeichnisse nicht aktiviert sind, kein CGI pro Benutzer vorhanden ist.Schauen Sie sich einige Beispiele -Konfiguraton in den Beispielen/ Verzeichnissen an.
Sie können Werte in der Konfigurationsdatei überschreiben, wenn Sie sie aus der Befehlszeile angeben:
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
Beachten Sie, dass Sie den Hostnamen oder den DIR -Pfad nicht festlegen können , da SPSRV dies verwendet, um zu überprüfen, ob Sie eine Option angegeben haben. Sie können den Port auch nicht auf 0 einstellen. Tut mir leid, diese Einschränkung hat den Vorteil, dass Sie Konfigurationswerte aus der Befehlszeile überschreiben können.
Es sind keine Argumente, die beim Ausführen von SPSRV, nur Optionen wie oben aufgeführt sind :)
Die folgenden Umgebungswerte werden für CGI -Skripte festgelegt:
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
Der Datenblock wird, falls vorhanden, als Stdin in den CGI -Prozess geleitet.
Beachten Sie, dass CGI -Skripte (ab sofort) vom selben Benutzer wie der Serverprozess ausgeführt werden. Daher ist es im Allgemeinen gefährlich, dass Benutzer ihre eigenen CGI -Skripte haben können. Weitere Informationen finden Sie unter Konfigurationsabschnitt.
Schauen Sie sich einige CGI -Skripte in den Beispielen/ Verzeichnissen an.
Beispiele für Systemd -Dienstkonfigurationen sind auch dort aufgeführt. Fühlen Sie sich frei, für andere Osen beizutragen :)
Bitte verwenden Sie entweder den #Spartan -Kanal auf Tilde.chat IRC oder meinen öffentlichen Posteingang.
Beide sind oben in diesem Dokument aufgeführt.
Patches -> öffentlicher Posteingang
/Ordner zu /Ordner /Weiterleitungen
Verzeichnisliste
Anmelden bei Dateien
~ Benutzerverzeichnisse
Refactor Working Dir Part
Konfiguration
CGI
Scgi
Mehrere Server mit jedem ihrer eigenen Konfs
Readme: