127.0.0.1 のみで待ち受けるローカル専用のミニマムな静的Webサーバです。
実行ファイルを置いたディレクトリをドキュメントルートとして配信します。
- Jorro は公開サーバ用途ではなく、ローカル確認・開発中の動作確認を意図したツールです
127.0.0.1バインドのため外部公開リスクは低い設計ですが、誤配布や誤公開を避けるため、サーバ上の公開ディレクトリにはアップロードしないでください
https://github.com/lizard-isana/jorro/releases/
- ローカルPCで静的ファイルを配信
- 起動時にブラウザを開く
- 配信先は
127.0.0.1限定(外部公開しない)
- 配信したいフォルダに
jorro.app/jorro.exe/jorro-cliを配置 - 起動する
- 自動でブラウザが開く
配布物:
dist/jorro.appdist/jorro.exedist/jorro-cli(Windowsターゲット時はdist/jorro-cli.exe)
配信ルート(実行ファイルや .app を置く場所)に jorro-config.json を置くと設定できます。
{
"port": 8080,
"indexFile": "index.html",
"allowExtensions": [".html", ".css", ".js", ".md", ".json"],
"hotReload": false,
"devConsoleErrors": false,
"hotReloadWatchExtensions": [".html", ".css", ".js"],
"htmlInclude": false,
"htmlIncludeMaxDepth": 1
}設定ルール:
jorro-config.jsonが存在しない: デフォルト設定を使用- 未知の設定キーがある: 起動時にエラー(設定ミスを防ぐため)
indexFileが存在する: ディレクトリアクセス時の既定ファイル名を上書き(デフォルト:index.html)- 起動時にルート直下の
indexFileが見つからない場合は警告を表示 allowExtensionsが存在する: その拡張子のみ配信allowExtensionsが存在しない: デフォルト拡張子を使用hotReload: true: HTMLに開発用スクリプトを動的挿入し、変更時に自動リロードdevConsoleErrors: true: HTMLに同じ開発用スクリプトを動的挿入し、サーバ側エラーをブラウザコンソールへ表示hotReloadWatchExtensionsが存在する: ホットリロード変更検知の拡張子を上書き(デフォルト:.html/.css/.js)- ホットリロードは短いデバウンスを行い、保存直後の連続リロードを抑制
- ネットワークドライブ/UNC パスなどでは、ホットリロードが自動的に無効化される場合がある
htmlInclude: true: HTML内の固定記法を展開(<!--#include file="relative/path.html"-->または<!--#include virtual="/path/from/root.html"-->)htmlIncludeMaxDepthが存在する: includeの最大深さを上書き(デフォルト:1、許容範囲:1..16)- include失敗時はレスポンスをエラーにせず
<!-- jorro-include-error: ... -->コメントを埋め込む - include対象は配信ルート配下のみ(絶対パス/ルート外/隠しパス/不許可拡張子/シンボリックリンク逸脱は拒否)
デフォルト拡張子:
[".html", ".css", ".js", ".mjs", ".map", ".json", ".md", ".txt", ".svg", ".png", ".jpg", ".jpeg", ".gif", ".webp", ".ico", ".woff", ".woff2", ".ttf", ".wasm"]
GET/HEAD以外は拒否- ドット始まりパス(例:
.env,.git)は非公開 - ディレクトリ一覧は無効(
indexFileに該当するファイルがないディレクトリは404) - ルートに
404.htmlがある場合、404応答でその内容を返す - ルート外へ抜けるシンボリックリンクを遮断
Cache-Control: no-storeを付与- ポートは
8080から探索し、競合時は自動フォールバック
assets/icon-source.png を置くとビルド時に以下を生成します。
dist/icons/jorro.icnsdist/icons/jorro.ico
.
├── assets/
│ └── icon-source.png
├── scripts/
│ ├── build-console.sh
│ ├── build-macos-app.sh
│ ├── build-windows-gui.sh
│ └── prepare-icons.sh
├── src/
│ ├── *.go
│ └── *_test.go
├── go.mod
├── go.sum
└── dist/ # build output
Console版:
./scripts/build-console.sh※ これらのスクリプトは配布向けに -trimpath と -ldflags "-s -w" を付けてビルドします。
macOSアプリ版:
./scripts/build-macos-app.sh出力: dist/jorro.app, dist/jorro.dmg
Windows GUI版:
./scripts/build-windows-gui.shmacOS / Linux(Console):
go build -o ./dist/jorro-cli ./srcWindows(Console):
go build -o .\dist\jorro-cli.exe .\srcWindows GUI:
GOOS=windows GOARCH=amd64 go build -ldflags "-H=windowsgui" -o ./dist/jorro.exe ./srcgo test ./...