Nikola で作成した Web サイトを S3 にデプロイ
Nikola で作成した Web サイトをホスティング・公開するなら Amazon S3 を使うのが簡単です。 今回は Nikola から S3 にデプロイする方法について覚え書き。
s3cmd で S3 にデプロイ
独自ドメイン取得から S3 の設定まではできていると想定します。 (この辺りは後日簡単にまとめようと思います。)
Debian 系の Linux なら、s3cmd は apt からインストールできます。
sudo apt-get install s3cmd
まずは s3cmd の設定をします。以下のコマンドを実行します。
s3cmd --configure
ここで S3 で作成したアクセスキーとシークレットキーを設定します。
あとは conf.py の DEPLOY_COMMANDS で s3cmd を設定すれば ok です。
DEPLOY_COMMANDS = { 'default': [ "s3cmd sync -r --no-mime-magic --delete-remove output/ s3://org-technology.com/", ] }
注意点は、オプションに --no-mime-magic をつけることです。 そうしないと、デプロイした際にファイルの MIME タイプが変更されてしまい、css が読み込まれません。 これについては 以下の issue に情報がありました。
https://github.com/s3tools/s3cmd/issues/198
conf.py の設定まで終れば、あとはコンソールから以下のコマンドを実行するだけで S3 にデプロイできます。
nikola deploy
ping コマンドの設定
デプロイと一緒にバックアップや ping をしたい場合は DEPLOY_COMMANDS にコマンドを追加します。 ここでは ping コマンドの導入について紹介します。 Nikola では ping の プラグイン が公開されているので、まずはプラグインをコマンドからインストールします。
nikola plugin -i ping
あとは conf.py に ping 送信先を設定し、
PING_XMLRPC_SERVICES = [ "http://blogsearch.google.com/ping/RPC2", "http://blogsearch.google.co.jp/ping/RPC2", "http://rpc.pingomatic.com/", ] PING_GET_SERVICES = [ "http://www.bing.com/webmaster/ping.aspx?sitemap={0}".format(SITE_URL+'sitemap.xml'), "http://www.google.com/webmasters/tools/ping?sitemap={0}".format(SITE_URL+'sitemap.xml'), ]
DEPLOY_COMMANDS を
DEPLOY_COMMANDS = { 'default': [ "s3cmd sync -r --no-mime-magic --delete-remove output/ s3://org-technology.com/", "nikola ping", ] }
とすれば ok です。