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 の仕組み作るのに参考にした。