AppEngineの開発環境で、メール送信機能を使うために postfixを使ったgmail送信環境の構築を行ったので、メモ。
まずは、package install
% sudo aptitude install postfix libsasl2-modules
/etc/postfix/main.cf を編集
以下を追記
# tanarky added
mydomain = tanarky.com
myorigin = $myhostname
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_password
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
パスワードファイル作成
% sudo cat /etc/postfix/relay_password
[smtp.gmail.com]:587 *(Googleアカウント)*@gmail.com:*(Googleアカウントパスワード)*
% sudo postmap /etc/postfix/relay_password
% ls -l /etc/postfix/relay_password*
-rw-r--r-- 1 root root 48 2012-01-01 22:17 /etc/postfix/relay_password
-rw-r--r-- 1 root root 12288 2012-01-01 22:17 /etc/postfix/relay_password.db
% sudo rm /etc/postfix/relay_password
% ls -l /etc/postfix/relay_password*
-rw-r--r-- 1 root root 12288 2012-01-01 22:17 /etc/postfix/relay_password.db
postfix restartしてテスト送信
% sudo /etc/init.d/postfix restart
% sendmail -t ***
To: ***
From: ***
Subject: hello
world.
.
%
目次
いきなり結論。
既存ブログサービスの問題に対する考察 で考えた理想のBlog環境は 以下のものを組み合わせることにより、ほぼ満足いく環境ができた。
今見ているこのBlogのソースコードは全て
https://github.com/tanarky/tanarky.github.com
に上げている。
以下、詳細。
GitHubでは、コードだけではなく、HTMLなどのドキュメントも GitHubのサーバを用いて公開することができる。
静的なファイルであれば、HTMLやCSS/Javascriptなど公開可能。 画像ファイルも公開可能だが、無料ユーザの場合、容量制限が300Mなので、 画像ファイル置き場としてはあまり望ましくない。 PHPファイルなどサーバサイドでの動的処理は動かない。
この手段は、一部のオープンソースプロジェクトでよく利用されている。
設定な方法詳細は、 GitHub Pages を参照すれば詳しく書いてあるが ユーザごとのページ設定手順をざっと説明すると、以下の通り。
と、いたって簡単。
tanarky.github.com というドメイン名が気に入らなければ、 独自ドメイン設定も可能 。
valuedomainなどで取得済みのドメイン名が example.com だった場合、
github.example.com というサブドメインで公開したければ、
cname github pages.github.com.
サブドメインではなく、 example.com で公開したければ、
a @ 207.97.227.245
と、どちらかお好みのDNS設定をする。
次に、tanarky.github.comというリポジトリの直下に、 CNAME というファイル名で、 中身に公開したい独自ドメイン名を書く。
example.com で公開したければ、
example.com
と1行書いて保存すればOK。
これをgit pushして、DNSの設定が反映されれば設定完了。
GitHubを用いることで、無料のHTMLサーバと、 gitによるコード管理とバックアップ環境が、同時に無料で手に入ってしまった。
Blogofile とは、markdown形式やrestructuredText形式のファイルから、 静的HTMLをgenerateして、ブログページを構築してくれるPythonで書かれたツールのこと。
1コマンドでカテゴリ分類やRSSなども一括でgenerateしてくれる。
インストール方法、の前に、まずはPython環境を整える必要があるので、 Ubuntu11.10のPython開発環境を整備 を一読することをおすすめします。
綺麗なPython環境ができたところで、インストール。
% pip install blogofile
% cd ~/github/tanarky.github.com
% mkdir _blogofile
% cd _blogofile
% blogofile init simple_blog
% blogofile build
これで完了。 ポイントとしては、ディレクトリ名を "_blogofile" と "_" から始まる名前にしておくこと。
GitHub Page経由では、"_" から始まるファイル名やディレクトリ名は見えなくなるという仕様を利用するため。
github経由でソースが見れるんだから意味ないじゃん、という言い分もあるが、 GitHub Page経由では公開する必要がないファイルなので、 公開したいファイルやディレクトリと明示的に区別するために、"_" から始まる名前にしておく。
buildが終わったら、blogofileには、 Webサーバが同梱されている ので、
% blogofile serve 10080
Blogofile server started on 127.0.0.1:10080 ...
などとWebサーバを起動させれば、http://localhost:10080/でサイトを確認することができる。
投稿は、_blogofile/_post/ 以下に、markdown形式やrst形式などでファイルを置いておけば、 build実行時に勝手にブログ記事にしてくれる。
自分はrst形式に慣れているので、rst形式で記事を書いている。
デザインを1から作るのは大変なので、使ったことがある jQuery UI を使おうか、と思ったが、 このブログでは、勉強がてら、 Bootstrap from twitter を使ってみた。
アイコンなどの画像は一切ついていないが、 レイアウトなど、非常に直感的にデザインをいじることができるので満足している。
動的な処理は一切動かないので、各種ブログパーツに委ねないと、なんとも寂しいブログになるので、 好みのものを配置する。
個人的に、あまりブログパーツを置き過ぎると表示が重くなるのと、 見た目もごちゃごちゃするので、おいたのは以下のものだけ。
DISQUS は、Javascriptで動く、コメントやトラックバック機能を実現できるモジュールで、 このブログの一番下にも貼ってあるブログパーツ。
ログインしないとコメントさせない設定、など非常に機能が豊富で、 何より静的なHTMLの中でこういう機能が実現できるのが嬉しい。
静的なHTMLのブログ、ということでいくつか諦めた機能は以下。
長々と書いたが、上記のような構成のブログ環境は、アメリカなど海外ではやや浸透しつつある構成っぽい。 ぐぐると英語のページが色々ひっかかったので。
ただ、上記の設定内容を1つのページにまとめて書かれたものはなかったので、頑張って書いてみた次第。
GitHubにpushしなくても、上述の通り、Blogofileにはwebサーバも同梱されているので、 プライベートなブログとしてこっそり書くこともできるし、 個人ブログという用途だけではなく、プロジェクトページや企業ページでも使えると思うので、 興味を持った人は是非お試しください。
Blogofileの動作変更、SEO対策、記事を書く上でのgit branchの使い方、など 細かい設定点は他にも色々あるので、今後記事にしていく予定。