· heroku node

Ghost On Heroku

Ghostをherokuにデプロイしてみた。

以下はあくまでの自分の環境で、nodeとpostgresなど一通りの開発環境は整った環境です。

Ghostをローカルで動かしてみる

$ cd /path/to/ghost/folder/
$ npm install --production

$ npm start
$ open http://localhost:2368

herokuにpg addon追加

$ heroku addons:add heroku-postgresql:dev

$ heroku config
DATABASE_URL:                 postgres://{username}:{password}@ec2-***.compute-1.amazonaws.com:5432/{database}
HEROKU_POSTGRESQL_PURPLE_URL: postgres://{username}:{password}@ec2-***.compute-1.amazonaws.com:5432/{database}

package.json 修正

package.jsonのdependenciesにpg追加。バージョンは固定にしたほうがいいかも。。。

"dependencies": {
  ....,
  "pg": "4.2.0"
}

config.js 修正

以下の部分をproductionのところに設定する。databaseの部分は上のDATABASE_URLのところ参照

database: {
  client: 'postgres',
  connection: {
        host: 'ec2-***.compute-1.amazonaws.com',
        user: '{username}',
        password: '{password}',
        database: '{database}',
        port: '5432'
  }
},

server: {
    host: '0.0.0.0',
    port: process.env.PORT
}

Procfileファイル追加

herokuにnodejsアプリをデプロイした人にはわかると思うがProfileを作成

$ vim Procfile
web: node index.js --production

git remote, push

$ git init
$ git remote add origin git@heroku.com:{app}.git
$ git add .
$ git commit -m "Ghost"
$ git push origin master

Debug

heroku上でApplication Error!

log見てみる

$ heroku logs --tail

Ghost is running in development...

developmentで実行されたようだ。

NODE_ENVをproductionに設定

$ heroku config:set NODE_ENV=production

上のコマンドでenv設定とrebootするので、tailで完了確認できたら、もう一度アクセスしてみる。

うまく表示されたようだ

Ghost設定

$ open http://{app}.herokuapp.com/ghost/setup/

所感

設定して自分が欲しかったmarkdownで書けるようになったけど、意識高い系に似合うデザインのせいか メモ、コードを書くにはいまいち。。。