多くの機能を備えた静的スパルタンサーバー:
SPSRVを実行している既知のサーバー:
質問 /サポート
目次
go install付き3つのオプションがあります。
DarwinおよびLinux Architectures ARM/AMD-64の事前に構築されたバイナリは、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 )で使用できません)。
Goのインストールやクローンをインストールしたり、リポジトリをクローンでクローンしたり、建築が事前に構築されたバイナリでサポートされていない場合は、公開受信トレイにメールをドロップしてください(または個人的に連絡してください)。
デフォルトの構成ファイルの場所は/etc/spsrv.confです。
spsrv -c /path/to/file.conf
SPSRVを実行するために構成ファイルは必要ありません。デフォルト値を使用するだけです。
オプションはケースの鈍感であることに注意してください。
構成オプションとそのデフォルト値は次のとおりです
一般的な
port=300 :聴くポートhostname="localhost" :これが設定されている場合、この値以外のホスト名のリクエストが拒否されるrootdir="/var/spartan" :ファイルを取得するためのフォルダーディレクトリリスト
dirlistEnable=true : index.gmiがないフォルダーのディレクトリリストを有効dirlistReverse=false :ファイルがリストされている順序を逆転させるdirlistSort="name" :ファイルの並べ替え、「名前」、「サイズ」、および「時間」のみが受け入れられます。不明なオプションが発生した場合、デフォルトは「名前」になりますdirlistTitles=true :trueの場合、ディレクトリリストはファイルの代わりに*.gmiファイルで最初のトップレベルヘッダーを使用します〜ユーザー/ディレクトリ
userdirEnable=true :enving /~user/* requestsを有効にしますuserdir="public_spartan" :ユーザーのルートディレクトリ。これには、後続のスラッシュがないはずであり、それは/home/user/userSubdomains=false :user 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はCGIプロセスのUIDを(まだ)変更しないため、これは危険です。したがって、プロセスはサーバーを実行しているのと同じユーザーによって実行されます。これは、構成ファイルへの書き込みアクセスなど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
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
データブロックは、もしあれば、CGIプロセスへのstdinとして配管されます。
CGIスクリプト(現在の時点で)はサーバープロセスと同じユーザーによって実行されているため、ユーザーが独自のCGIスクリプトを持つことができるため、一般的に危険です。詳細については、構成セクションを参照してください。
例/ディレクトリのCGIスクリプトの例をご覧ください。
SystemDサービスの例もそこにリストされています。他のオスに自由に貢献してください:)
Tilde.chat IRCまたは私のパブリック受信トレイで#Spartanチャンネルを使用してください。
どちらもこのドキュメントの上部にリストされています。
パッチ- >パブリック受信トレイ
/フォルダーto /folder /redirects
ディレクトリリスト
ファイルへのログ
〜ユーザーディレクトリ
動作する監督部をリファクタリングします
config
CGI
SCGI
独自のconfのそれぞれを含む複数のサーバー
readme: