KeterでYesodを動かす。HomeKeterでYesodを動かす。2015.KeterとNginxを使って、Yesodをdaemonとして起動してみたので、まとめです。結果として、Yesodはsandboxにインストールする。本番環境には、バイナリのみ配置する。(今回は便宜上同じ環境です・・)な感じで動作できそうな感じになりました。hellが怖くない(?)本番環境などでは、sandboxが消えちゃった時のことを考えると(そんなこと考えるのはおかしいかもですが、、)globalな環境にインストールしちゃっても良いのかもしれません。今回の環境は、以下のとおりです。1.8.0stackはまだ勉強中なので、、cabalを使っています。YesodをインストールするYesodとKeterをsandboxにインストールします。Haskellを使いました。7.10向けなので、LTS2を使います。配下にyesodなどのコマンドができています。やり方としては、スマートではないかもしれませんが、このコマンドを(楽に)使いたいので、パスを通しておきます。initYesodのプロジェクトのディレクトリに移動して、またもsandboxでインストールです。Haskellはなしでやっちゃいました。--only-dependenciesKeter用にYesodのプログラムを準備する苦悩の末に、Yesodのプロジェクトが出来上がったら、Keterの設定ファイル(config/keter.yml)を更新します。最低限更新が必要なのは以下かと思います。設定ファイルを更新したら、本番環境に持っていくバイナリファイルを作ります。バイナリファイルの実体は、Yesodのプログラムや設定ファイルをgzipで固めたものです。持っていくバイナリになります。keterKeterの起動準備Keterの起動ディレクトリを適当な場所に作成して、起動ファイルを準備します。incomingincomingディレクトリには、先ほど作ったYesodのプロジェクトのバイナリファイルを配置しておきます。etcディレクトリには、Keterの起動ファイル(keter.yaml)を準備します。この環境はsystemdなので、以下のようになりますが、それ以外の環境については巻末のリンクをご参照ください。nginx.serviceつづいて、Keterのsystemd用のファイル(/usr/lib/systemd/system/keter.service)を準備します。/<Keterの起動ディレクトリ>/etc/keter.yaml[Install]WantedBy=multi-user.target最後にnginxのProxyの設定(/etc/nginx/nginx.conf)を変更します。}}Keter起動!起動します。keter.serviceうまく行っていれば、設定したドメインでアクセスできるかと思います。OS起動時に自動で起動するようにするのは、こちらです。所属組織団体の公式見解とは異なる場合があります点、ご了承ください。