Um servidor Spartan estático com muitos recursos:
Servidores conhecidos executando SPSRV:
Perguntas / suporte
Índice
go installVocê tem três opções:
Os binários pré-construídos para as arquiteturas Darwin e Linux ARM/AMD-64 são fornecidas desde v0.5.4. Vá para a página Tags no Git.sr.ht, clique em uma tag desejada e faça o download do binário para sua arquitetura.
go install Primeiro, você precisa instalar e ter uma pasta ~/go com $GOPATH apontando para ela.
go install git.sr.ht/~hedy/spsrv@latest
Haverá um binário em ~/go/bin/ com o código -fonte em ~/go/src/
Sinta -se à vontade para mover o binário para outro lugar como /usr/sbin/
Observe que é recomendável fixar qualquer versão mais recente @v0.0.0 em vez da mais recente confirmação, pois pode não ser estável.
Run git clone https://git.sr.ht/~hedy/spsrv de qualquer diretório e cd spsrv
Certifique -se de instalar e funcionar.
git checkout v0.0.0 # recommended to pin a specific tag
make build
Quando terminar, o binário estará em ./bin .
Se você não fizer, basta go build (apenas a versão e a criação de informações não estará disponível com spsrv --version ).
Se você não deseja instalar Go ou clonar o repositório, e sua arquitetura não é suportada nos binários pré -construídos, envie um e -mail à minha caixa de entrada pública (ou entre em contato comigo em particular) para que eu possa compilar um binário para sua arquitetura.
O local do arquivo de configuração padrão é /etc/spsrv.conf você pode especificar seu próprio caminho executando o SPSRV como
spsrv -c /path/to/file.conf
Você não precisa de um arquivo de configuração para ter o SPSRV em execução, ele apenas usará os valores padrão.
Observe que as opções são insensíveis ao caso.
Aqui estão as opções de configuração e seus valores padrão
em geral
port=300 : porta para ouvirhostname="localhost" : se isso for definido, qualquer solicitação que para nomes de host que não seja esse valor seria rejeitadarootdir="/var/spartan" : pasta para buscar arquivosListagem de diretórios
dirlistEnable=true : Ativar lista de diretório para pastas que não possuem index.gmidirlistReverse=false : Reverter a ordem de quais arquivos estão listadosdirlistSort="name" : como os arquivos são classificados, apenas "nome", "tamanho" e "tempo" são aceitos. Padrões de "nome" se uma opção desconhecida for encontradadirlistTitles=true : Se True, a listagem de diretórios usará o cabeçalho do primeiro nível superior em *.gmi Arquivos em vez do nome do arquivo~ Usuário/ diretórios
userdirEnable=true : Ativar Serving /~user/* Solicitaçõesuserdir="public_spartan" : diretório raiz para usuários. Isso não deve ter barras à direita, e é relativo /home/user/userSubdomains=false : VHOSTS do usuário. Se deve permitir que user.host.name/foo.txt seja o mesmo que host.name/~user/foo.txt (quando hostname="host.name" ). Nota : Isso só funciona quando a opção hostname é definida.CGI
CGIPaths=["cgi/"] : Lista de caminhos onde os arquivos executáveis mundiais serão executados como processos CGI. Esses caminhos seriam verificados se prefixasse o caminho solicitado. Para o valor padrão, uma solicitação de /cgi/hi.sh (solicitando ./public/cgi/hi.sh , por exemplo) será executada no script hi.sh se for executável mundial.usercgiEnable=false : Ative também os scripts CGI do usuário. Isso é perigoso, pois o SPSRV ainda não altera o UID do processo CGI; portanto, o processo seria executado pelo mesmo usuário que está executando o servidor, o que pode significar gravar acesso a arquivos de configuração, etc. Observe que esta opção será assumida false se userdirEnable for definido como false . O que significa que se os diretórios do usuário não estiverem ativados, não haverá CGI por usuário.Confira algum exemplo de configuração no Exemplos/ Diretório.
Você pode substituir os valores no arquivo de configuração se os fornecer da linha 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
Observe que você não pode definir o nome do host ou o caminho do DIR , porque o SPSRV usa isso para verificar se você forneceu uma opção. Você também não pode definir a porta para 0 , desculpe, essa limitação vem com a vantagem de poder substituir os valores de configuração da linha de comando.
Não há argumentos desejados ao executar o SPSRV, apenas opções listadas acima :)
Os seguintes valores do ambiente são definidos 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
O bloco de dados, se houver, será canalizado como stdin para o processo CGI.
Lembre -se de que os scripts CGI (a partir de agora) são executados pelo mesmo usuário do processo do servidor; portanto, geralmente é perigoso para permitir que os usuários tenham seus próprios scripts CGI. Consulte a seção de configuração para obter mais detalhes.
Confira algum exemplo de scripts CGI no Exemplos/ Diretório.
Exemplo de configurações de serviço Systemd também estão listadas lá. Sinta -se à vontade para contribuir com outros sistemas operacionais :)
Por favor, use o canal #Spartan no tilde.chat IRC ou minha caixa de entrada pública.
Ambos estão listados na parte superior deste documento.
Patches -> Caixa de entrada pública
/pasta para /pasta /redireciona
Listagem de diretórios
log nos arquivos
~ diretórios de usuário
Refactor Working Dir Part
Config
CGI
SCGI
Vários servidores com cada um de seus próprios confs
Readme: