Статический спартанский сервер с множеством функций:
Известные серверы, использующие SPSRV:
Вопросы / поддержка
Оглавление
go installу вас есть три варианта:
Предварительные двоичные файлы для Arm/AMD-64 Darwin и Linux предоставляются с V0.5.4. Зайдите на страницу тегов на git.sr.ht, нажмите на нужный тег и загрузите двоичный файл для вашей архитектуры.
go install Во -первых, вам нужно было установить и иметь папку ~/go с $GOPATH указывающим на нее.
go install git.sr.ht/~hedy/spsrv@latest
Будет двоичный файл ~/go/bin/ с исходным кодом в ~/go/src/
Не стесняйтесь перемещать бинарку куда -то еще, например, /usr/sbin/
Обратите внимание, что рекомендуется прикрепить любую последнюю версию @v0.0.0 , а не последний коммит, так как она не может быть стабильной.
Запустите git clone https://git.sr.ht/~hedy/spsrv из любого каталога и cd spsrv
Убедитесь, что вы установили и работали.
git checkout v0.0.0 # recommended to pin a specific tag
make build
Когда он закончится, бинар будет в ./bin .
Если у вас нет дела, вы можете просто go build (только эта версия и информация о создании не будет доступна с spsrv --version ).
Если вы не хотите устанавливать или клонировать репо, и ваша архитектура не поддерживается в предварительно построенных двоичных файлах, отбросьте электронное письмо в мой общедоступный почтовый ящик (или свяжитесь со мной в частном порядке), чтобы я мог бы собрать двоичный файл для вашей архитектуры.
Местоположение файла конфигурации по умолчанию - /etc/spsrv.conf вы можете указать свой собственный путь, используя Spsrv
spsrv -c /path/to/file.conf
Вам не нужен файл конфигурации для работы SPSRV, он просто будет использовать значения по умолчанию.
Обратите внимание, что параметры нечувствительны к корпусу.
Вот параметры конфигурации и значения их по умолчанию
общий
port=300 : порт для прослушиванияhostname="localhost" : если это будет установлено, любой запрос, который для имен хоста, отличных от этого значения, будет отклоненrootdir="/var/spartan" : папка для получения файловСписок каталогов
dirlistEnable=true : включить список каталогов для папок, которые не имеют index.gmidirlistReverse=false : обратить вспять порядок, в которых указаны файлыdirlistSort="name" : как принимаются файлы, только «имя», «размер» и «время». По умолчанию «назвать», если встречается неизвестная опцияdirlistTitles=true : если true, список каталогов будет использовать заголовок первого верхнего уровня в *.gmi files вместо имени файла~ Пользователь/ каталоги
userdirEnable=true : включить обслуживание /~user/* Запросыuserdir="public_spartan" : корневый каталог для пользователей. Это не должно иметь следы задними чертами, и это относится к /home/user/userSubdomains=false : пользовательские vhosts. Допустить ли user.host.name/foo.txt такой же, как host.name/~user/foo.txt (когда hostname="host.name" ). Примечание . Это работает только при установке параметра hostname .CGI
CGIPaths=["cgi/"] : список путей, в которых мировые файлы будут выполняться как процессы CGI. Эти пути будут проверены, если он префикс запрашиваемый путь. Для значения по умолчанию запрос /cgi/hi.sh (например, запрос на ./public/cgi/hi.sh ) будет запускать сценарий hi.sh если он исполняется в мире.usercgiEnable=false : также включите сценарии CGI пользователя. Это опасно, так как SPSRV (пока) не изменяет UID процесса CGI, следовательно, процесс будет запущен тем же пользователем, который запускает сервер, что может означать доступ к записи к файлам конфигурации и т. Д. Обратите внимание, что эта опция предполагается false если userdirEnable , если false Это означает, что если пользовательские каталоги не включены, не будет CGI для каждого пользователя.Проверьте какой -то пример Configuraton в примерах/ каталоге.
Вы можете переопределить значения в файле конфигурации, если вы предоставляете их из командной строки:
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
Обратите внимание, что вы не можете установить имя хоста или Dir Path , потому что SPSRV использует это, чтобы проверить, предоставили ли вы опцию. Вы также не можете установить порт на 0 , извините, это ограничение имеет преимущество в том, что они способны переопределить значения конфигурации из командной строки.
При запуске SPSRV нет аргументов, только в списке выше :)
Следующие значения среды установлены для сценариев 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
Блок данных, если таковые имеются, будут передаваться в качестве Stdin для процесса CGI.
Имейте в виду, что сценарии CGI (на данный момент) запускаются тем же пользователем, что и серверный процесс, поэтому, как правило, опасно для того, чтобы пользователи имели свои собственные сценарии CGI. См. Раздел конфигурации для получения более подробной информации.
Проверьте некоторые пример сценариев CGI в примерах/ каталоге.
Пример SystemD Service Configurations также перечислены там. Не стесняйтесь вносить свой вклад в другие OSES :)
Пожалуйста, либо используйте канал #spartan на Tilde.chat IRC или мой публичный почтовый ящик.
Оба перечислены в верхней части этого документа.
Патчи -> Публичный почтовый ящик
/папка в /папку /перенаправления
Список каталогов
Ведение в файлах
~ Пользовательские каталоги
Refactor Working Dir Part
конфигурация
CGI
SCGI
Несколько серверов с каждым из своих собственных
Readme: