Crea una cuenta en heroku

Si aún no tienes una cuenta en heroku puedes familiarizarte aquí.

Descarga Ghost v0.5.5

Puedes descargar la versión más reciente en https://ghost.org/download/ o descargar la versión 0.5.5 desde aquí.

Descomprime Ghost v0.5.5

$ unzip ghost-0.5.5.zip -d my-blog

Entra al directorio descomprimido

$ cd my-blog

Inicializa el repositorio

$ git init
$ git add -A
$ git commit -m 'Initialize repository.'

Ingorar carpeta node_modules en el repositorio

$ echo "node_modules/" > .gitignore
$ git add .gitignore
$ git commit -m 'Ignore "node_modules" directory.'

Crea un proyecto en heroku

Es posiblie que my-blog ya este ocupado en heroku, en mi caso nombre mi proyecto mc-blog, tú puedes poner el nombre que desees siempre y cuando no exista un proyecto llamado así en heroku.

$ heroku create my-blog --region eu

Habilitar PostgreSQL

PostgreSQL es la base de datos que utilizaremos para almacenar los artículos del blog.

$ heroku addons:add heroku-postgresql:dev

Definir variable de entorno DATABASE_URL

HEROKU_POSTGRESQL_CHARCOAL_URL es el nombre de la variable de entorno que generó el comando de habilitar PostgreSQL, así que deberás cambiar ese parámetro antes de ejecutar el comando siguiente:

$ heroku pg:promote HEROKU_POSTGRESQL_CHARCOAL_URL

Instalar módulo pg

Es requerido instalar el módulo pg para que Ghost pueda comunicarse con la base de datos.

$ npm install pg --save

Agregar cambios al repositorio

$ git add package.json
$ git commit -m 'Add pg as dependency.'

Habilitar Mandrill

Mandrill es un servicio que nos permitirá el envío de correo electrónicos de forma gratuita.

$ heroku addons:add mandrill

Configurar aplicación

$ cp config.example.js config.js

Reemplazar configuración de producción

Recuerda cambiar el parámetro url por el url de tu blog.

En el archivo config.js reemplazar con:

// ### Production
production: {
  url: 'http://my-blog.com',
  mail: {
    transport: 'SMTP',
    host: 'smtp.mandrillapp.com',
    options: {
      service: 'Mandrill',
      auth: {
        user: process.env.MANDRILL_USERNAME,
        pass: process.env.MANDRILL_APIKEY
      }
    }
  },
  database: {
    client: 'postgres',
    connection: process.env.DATABASE_URL,
    debug: false
  },
  server: {
    host: '0.0.0.0',
    port: process.env.PORT
  }
}

Agregar cambios al repositorio

$ git add config.js
$ git commit -m 'Configure application.'

Habilitar entorno de producción en heroku

$ heroku config:set NODE_ENV=production

Desplegar aplicación a heroku

$ git push heroku master

Con esto ya deberías tener tu blog corriendo en http://my-blog.herokuapp.com (recuerda que si usaste un nombre de proyecto en heroku diferente a my-blog el url cambiaría).

Si tienes un dominio [minombre].com y deseas configurar el subdominio blog.[minombre].com deberás configurar un CNAME en tu DNS.

Cuando tengas configurado el CNAME en tu DNS faltaría ejecutar el siguiente comando:

$ heroku domains:add blog.minombre.com

Ya con eso deberías esperar una hora o más para poder visitar http://blog.minombre.com y ver tu blog.

Para configurar tu blog con tus credenciales visita http://mc-blog.herokuapp.com/ghost/.