djangohosting(not cloud)

去年の4/1に書いたエントリでは、Django Cloudがどうのとか書いてたけど、実際はただのDjangoホスティングサーバなんだよね。
自分のホームページ( http://tokibito.orz.hm/ )は1年ぐらい前からこの自前のアプリケーションサーバを使って動かしてる。

$ django-admin.py startproject helloworld

これでできたプロジェクトディレクトリをFTPでまるごとホスティングのサーバにアップロードすればすぐにアクセスできる。
http://helloworld.tokibito.wsgiapp.com/
こんな感じ。
ユーザのアカウントは管理画面から作れるようにしてる。
何人かの知り合いにも少し使ってもらってる。
知り合いでちょっと遊んでみたいなって人は連絡よろ。

うんちくそのた

結構前の話だけど、ソースはひっそりと公開してた。
tokibito / djangohosting — Bitbucket
ライセンスについては特に明記してないけど、いつも通り修正BSDにしようかなと思ってる。
このサーバを作った理由は以下の通り。

  • AppEngineいいけどDjangoそのまま使えないんだよね
  • そんなにアクセス来るわけじゃないからスケールしなくていいんだよね
  • Djangoは楽に作れていいんだけどデプロイの設定面倒くさいんだよね
  • 一台のサーバでいっぱいDjango動かしたいんだよね
  • ほら、PHP好きな人ってFTPでアップロードしてすぐ動かせるのを好むし!

CGI動作でいいんじゃねー、っていう気もするけど、そのうちappengineライクにプロセス保持とかするならpythonで最初から書いておこうかなと思った、管理楽だし。
ホスティングサーバはnginx+djangohostingの構成で動かしていて、今は1台で20サイトぐらい動かしてる。
DBはsqliteを使ってるのだけど、負荷があがったらアプリケーションサーバの台数を増やしてMySQLとかを使うこともまあできる。
スケールって難しいのだけど、作ってみて思ったのは、この手のサーバってセキュリティまわりが本当に大変だなと。Apacheとかでも一緒なのだろうけど、権限1つとっても、chrootしたりアプリケーションコードは別のユーザで実行したりとか。
今年はもうちょっと頑張ってこのサーバを改造していきたいね。
4/1に書いてるけどこれは4/1メソッドではない。ぬるぽ