nginx × SCGI で運用するの初めてなので、復習兼ねてメモする。
Fossil: How To Configure A Fossil Server に 4つの運用方法が書いてあってその4つめ Fossil as SCGI が参考になる。
location /demo_project/ {
include scgi_params;
scgi_pass localhost:9000;
scgi_param SCRIPT_NAME "/demo_project";
}
nginx の設定に書き込むのは上の通りで、SCRIPT_NAME という名前がついているがスクリプトのローカルパスではなく、そのまま URI を書けばいい。また、ポートは、fossil server $REPOSITORY --scgi --localhost --port 9000 のように実行する際に指定できる。
外からアクセスする場合でも --localhost オプションはつけて大丈夫。nginx がローカルにアクセスするから。
外部からの push
basic 認証の書式みたいに URI の頭に ユーザ名@ をつければ認証のパスワードを聞いてくれる。hook で fossil update (= fossil checkout --latest) したいところだが、ちょっとそれは今のところ簡単にできそうにない。仕方ないから Yo で update するようにした。
参考:
- Fossil: not authorized to write - Stack Overflow
- users of fossil-scm distributed project management software - version control, wiki, and bug / ticket tracking TH1 exec コマンドを使えば
exec fossil updateを admin の TH1 で試しつつ、Transfers に設定すればいい気がする。でも、ここで提案されている exec は最新版のソースには無いので、どうなるか分からない。 - YoApp/BarRecommendor Yo の仕組み作るのに参考にした。