Un servidor espartano estático con muchas características:
Servidores conocidos que ejecutan SPSRV:
Preguntas / apoyo
Tabla de contenido
go installTienes tres opciones:
Los binarios previos a la construcción de Darwin y Linux Architecture Arm/AMD-64 se proporcionan desde V0.5.4. Dirígete a la página Etiquetas en git.sr.ht, haga clic en una etiqueta deseada y descargue el binario para tu arquitectura.
go install Primero, debe haber instalado y tener una carpeta ~/go con $GOPATH apuntando a ella.
go install git.sr.ht/~hedy/spsrv@latest
Habrá un binario en ~/go/bin/ con el código fuente en ~/go/src/
Siéntase libre de mover el binario a otro lugar como /usr/sbin/
Tenga en cuenta que se recomienda fijar cualquier última versión @v0.0.0 en lugar de la última confirmación, ya que puede no ser estable.
ejecutar git clone https://git.sr.ht/~hedy/spsrv desde cualquier directorio y cd spsrv
Asegúrese de haberlo instalado y trabajando.
git checkout v0.0.0 # recommended to pin a specific tag
make build
Cuando termine, el binario estará en ./bin .
Si no tiene marca, puede go build (solo esa versión y la información de compilación no estará disponible con spsrv --version ).
Si no desea instalar GO o clonar el repositorio, y su arquitectura no es compatible con los binarios preconstruidos, deje un correo electrónico a mi bandeja de entrada pública (o contácteme en privado) para que quizás pueda compilar un binario para su arquitectura.
La ubicación del archivo de configuración predeterminado es /etc/spsrv.conf puede especificar su propia ruta ejecutando SPSRV como
spsrv -c /path/to/file.conf
No necesita un archivo de configuración para que se ejecute SPSRV, solo usará los valores predeterminados.
Tenga en cuenta que las opciones no son insensibles.
Aquí están las opciones de configuración y sus valores predeterminados
general
port=300 : puerto para escucharhostname="localhost" : si esto se establece, cualquier solicitud de nombres de host que no sean este valorrootdir="/var/spartan" : carpeta para obtener archivoslistado de directorio
dirlistEnable=true : habilitar listado de directorio para carpetas que no tienen index.gmidirlistReverse=false : invierta el orden de qué archivos se enumerandirlistSort="name" : cómo se ordenan los archivos, solo se aceptan "nombre", "tamaño" y "tiempo". El valor predeterminado se encuentra a "nombre" si se encuentra una opción desconocidadirlistTitles=true : si es verdadero, el listado de directorio usará el primer encabezado de nivel superior en *.gmi archivos en lugar del nombre de archivo~ Usuario/ Directorios
userdirEnable=true : habilitar servir /~user/* solicitudesuserdir="public_spartan" : directorio raíz para usuarios. Esto no debería tener cortes finales, y es relativo a /home/user/userSubdomains=false : User Vhosts. Si permitir que user.host.name/foo.txt sea el mismo que host.name/~user/foo.txt (cuando hostname="host.name" ). Nota : Esto solo funciona cuando se establece la opción hostname .CGI
CGIPaths=["cgi/"] : Lista de rutas donde los archivos ejecutables del mundo se ejecutarán como procesos CGI. Estas rutas se verificarían si prefije la ruta solicitada. Para el valor predeterminado, una solicitud de /cgi/hi.sh (solicitando ./public/cgi/hi.sh , por ejemplo) ejecutará script hi.sh si es ejecutable mundial.usercgiEnable=false : habilitar la ejecución de scripts CGI del usuario también. Esto es peligroso ya que SPSRV no cambia (todavía) el UID del proceso CGI, por lo tanto, el proceso sería ejecutado por el mismo usuario que ejecuta el servidor, lo que podría significar acceso de escritura a archivos de configuración, etc. Tenga en cuenta que esta opción se supondrá false si userdirEnable está configurado en false . Lo que significa que si los directorios de usuarios no están habilitados, no habrá CGI por usuario.Consulte algunos ejemplos de configuración en los ejemplos/ directorio.
Puede anular los valores en el archivo de configuración si los suministra desde la línea de comando:
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
Tenga en cuenta que no puede establecer el nombre de host o la ruta DIR , porque SPSRV lo usa para verificar si proporcionó una opción. Tampoco puede establecer el puerto a 0 , lo siento, esta limitación viene con la ventaja de poder anular los valores de configuración de la línea de comando.
No se buscan argumentos al ejecutar SPSRV, solo las opciones como se mencionan anteriormente :)
Los siguientes valores de entorno se establecen para 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
El bloque de datos, si corresponde, se canalizará como Stdin al proceso CGI.
Tenga en cuenta que los scripts CGI (a partir de ahora) están ejecutados por el mismo usuario que el proceso del servidor, por lo tanto, generalmente es peligroso para permitir que los usuarios tengan sus propios scripts CGI. Consulte la sección Configuración para obtener más detalles.
Consulte algunos scripts CGI de ejemplo en los ejemplos/ directorio.
Ejemplo de configuraciones de servicio Systemd también se enumeran allí. Siéntase libre de contribuir para otros sistemas operativos :)
Utilice el canal #sparto en Tilde.chat IRC o en mi bandeja de entrada pública.
Ambos se enumeran en la parte superior de este documento.
Patches -> Bandeja de entrada pública
/carpeta a /carpeta /redireccionamientos
listado de directorio
Registro a archivos
~ Directorios de usuarios
Refactor de trabajo de trabajo
configuración
CGI
SCGI
Múltiples servidores con cada uno de sus propios confes
Readme: