みなさん、Google App Engineって聞いたことありますか?
あっ、それしってる。Google Docsとかでしょ?って思った方。惜しいけど違います。
Google App Engineとは、Googleが運営している宇宙最強のデータセンタを、一定量まで無料で使える仕組みなのです。
ほんとに無料なの?
Google App Engineを使って無料でサイトを立ち上げる方法にもありますが、無料割り当て分(Free Quota)だけで、かなりの規模のサイトを運営できます。1日の通信量が1GBまでなら基本的にお金はかかりません。100kB/pvとして、1日1万PVまで無料です。個人運営のサイトなら、たいていは無料利用分で足りるのではないでしょうか。
プログラム必要なんでしょ?
Google App Engineを使って無料でサイトを立ち上げる方法の方法を使えば、プログラムを一切書かずにWebサイトを構築できます。但しこの方法、静的なサイトしか公開できません。10年ほど個人でつくってたサイトを公開しておくとか、DreamWeaverとかで作ったサイトを公開しておくにはいいですが、動的な(新しい記事をブラウザから追加したり、コメントをつけたり)サイトは作れません。動的なサイトを作るには、プログラムは必要です。
でもプログラムなんて分からない。
ですよねー。RDBも使えないし、使える言語もJavaとPythonだけ。GAEのマニュアルは日本語に翻訳されてないのが多いし、敷居高いなーってのが現実だと思います。でもみなさん、Wordpressぐらいなら設置できません?PHP分かってなくてもWordpress自分で設置して活用してる人ってかなりいると思うんですよ。自分で作る必要なんてないんです。拾ってきて動かせばいいんです。それなら簡単ですよね。
※SQL4Gを使えばRDB使えます。
※quercus使えばPHP動くし、JRubyを使えばRubyが動きます
丁度いいプログラムが落ちてない
いやー、ないんですよね。TwitterのBotを動かすとか、そーいうのは結構でてくるんですけど、普通の人が使う普通なアプリケーションって落ちてないんです。普通の人が使うのってなんだろうって考えてみると、想像力かけらもないこの頭脳では、ブログぐらいしか思いつきませんでした。ってことで、ブログシステムをつくってみた。
セットアップ手順
一から説明するのも面倒なんで、まず、Google App Engineを使って無料でサイトを立ち上げる方法のステップ3「Google App Engine Launcherを使ってファイルをアップロード」まで進めてください。これで、GoogleAppEngineにデプロイ(サーバ上で動作させる)するところまで確認できるはずです。
次にgitをインストールしてください。なんていい始めると大量に脱落者が発生するのでZIPで固めたものを添付しておきます。
これをダウンロード→python-blog-system
gitでも公開してます
git@github.com:realbasic/python-blog-system.git
github
https://github.com/realbasic/python-blog-system
デプロイ
デプロイ方法は、Google App Engineを使って無料でサイトを立ち上げる方法に分かりやすく解説されているので、そちらをご参照ください。GAEの調子がわるいと、更新できたか確認中、次の確認は30秒後。みたいなメッセージが延々と表示されるかもしれませんが。そういう場合は落ち着いてしばらく待ちましょう。毎晩やってると週に1回ぐらいはデプロイしづらいときがあります。(※デプロイさえ出来れば快適にうごいてます。)
記事を投稿
さて、デプロイは終わたらブログに記事を追加ですね!でも管理画面へのリンクは表示されていません。あなたのハッキング能力が試されています!!!ってわけではありません。単に管理画面へのリンクをつけてないだけです。アドレスの末尾に /admin をつけると認証画面が表示されます。特に設定していなければ、GoogleAppEngine登録時のアカウントでログインできます。
何ができるの
現行バージョンでサポートしている機能は以下の通りです。
- 記事の投稿
これがないと始まりません。 - 記事にタグをつける
記事にタグをつけれます。タグごとに一覧表示できます。SEOの役に立つかな。 - 公開日を指定して投稿
日付指定で公開できます。 - 記事の公開/非公開を切り替え
いわゆる下書き機能ですね。 - 画像アップロード
画像アップロードすると埋め込みようのタグが出力されます。そのタグを埋めると画像が表示されます。 - URL自動リンク
本文内にURLが含まれていると自動的にリンクします。 - リスト
半角ハイフンから始まる行はリスト表示になります。 - 太字
[s]この部分が太字になります。[/s] - コメント機能
記事にコメントをつけることができます。 - RSS配信
RSSを配信できます。feedtweetを使えばTwitterに自動投稿できますね。 - GoogleAnalyticsによるアクセス集計
configにトラッキングコード設定するだけでOK
開発計画
「カテゴリ」やら、「固定ページ」やらを実装しないとまずいかなーって思ってます。PythonもGAEも素人なんで、いつになるか分かりませんけどね。あっ、デザインが微妙?なら、勝手に書き換えちゃっていいですよ。django1.2.5でHTML出力しているので出力されるHTML自体をカスタマイズできます。簡単な修正だけならcss/style.cssでもできますね。Git使われてる方は是非githubでforkとかしちゃってください。
要望などありましたら
Twitter @realbasic2009 にメッセージいただければと思います。もちろん、このブログにコメント残していただくのも大歓迎です!