このプロジェクトについて
static-serverは、静的ウェブサイトやSPAビルド向けの小型コンテナ化HTTPファイルサーバーを提供します。イメージはスクラッチから構築され、静的リンクされたGoバイナリを使用し、標準ライブラリを採用し、CGO_ENABLED=0が必要で、シェル、パッケージマネージャー、libc、ランタイム書き込み可能パスなしでUID 65534として実行されます。
主な配信機能は以下のとおりです。
- SERVE_DIRからのファイル配信。組み込みデフォルト用のオプションのFALLBACK_DIRカスケード付き。
- 拡張子なしのナビゲーションルートに対してindex.htmlを返すSPAモード。存在しないアセットパスは404レスポンスのままです。
- クライアントがエンコーディングを受け入れる場合の、オプションの兄弟.brおよび.gz配信。
- フィンガープリント付きアセット用の設定可能なイミュータブルキャッシュプレフィックス。HTMLおよびナビゲーションレスポンスはno-cacheを使用します。
- .wasmファイル用のapplication/wasmを含む自動MIMEタイプ登録。
- GETとHEADのみ。その他のメソッドは405レスポンスを受け取ります。
- ディレクトリリスティングは無効で、ディレクトリにはindex.htmlが必要です。
- レスポンスのセキュリティヘッダーとオプションのContent-Security-Policy設定。
サーバーはKubernetesのlivenessおよびreadinessチェック用に/healthz、ビルド時バージョン用に/version、機械可読リファレンスとして/llms.txtを公開します。SIGTERMを処理してグレースフルシャットダウンを行い、コンテンツは読み取り専用バインドマウント、ConfigMap、initContainerによって作成されるemptyDir、または別のボリュームを通じて供給できます。
設定は環境変数ベースで、PORT、SERVE_DIR、FALLBACK_DIR、SPA_FALLBACK、CACHE_IMMUTABLE_PREFIX、CONTENT_SECURITY_POLICY、PRECOMPRESSEDなどがあります。リポジトリにはDocker実行例、Kubernetes Deploymentマニフェスト、Kustomize ConfigMap生成、部分オーバーレイ例、ビルド出力やテンプレートレンダリング用のinitContainerパターンが含まれています。
イメージはQuay.ioとDocker Hubにlatestおよびバージョン付きタグで公開されています。ローカルビルドではDocker、Docker Buildx、Make、Go 1.24以降を使用し、linux/amd64およびlinux/arm64のマルチプラットフォームビルドがサポートされています。ビルド引数でOCIラベルとデフォルトのindex.htmlテンプレートをカスタマイズできます。CIはgo vetとレース有効テストを実行し、タグ公開ではマルチプラットフォームイメージをプッシュします。プロジェクトはBSD Zero Clauseライセンスの下でリリースされています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.