Instalar Ghost v1 en Centos 7 sin ghost-cli

En la nueva versión de Ghost tenemos el Ghost CLI que ayuda en la automatización de muchas tareas como:

  • instalar: solo ejecutando el comando ghost install
  • actualizar: solo ejecutando el comando ghost update
  • ... entre otras (en otro post explicare como utilizar los comandos de ghost-cli)

Lastimosamente esta herramienta esta diseñada y pensada para correr sobre Ubuntu, tratando de instalar Ghost tuve muchos problemas y tarde horas y horas buscando una solución la cual la dejo a continuación:

  1. Instalar Yarn
    Tu actualmente no necesitas instalar yarn, pero como Ghost proporciona un archivo yarn.lock, podria ser buena idea usuarlo. Además en general, yarn me parece mejor que npm.

curl -o- -L https://yarnpkg.com/install.sh | bash

  1. Descargar el Zip
    Para descargar la ultima versión solo debes ejecutar el siguiente comando:

curl -L https://ghost.org/zip/ghost-latest.zip -o ghost-latest.zip

Y puedes extraerla donde quieras, por ejemplo:

unzip ghost-latest.zip -d ghost && cd ghost

  1. Instalar dependencias
    Ubicate dentro de la carpeta donde has instalado Ghost y ejecuta el siguiente comando:

yarn install

  1. Configuración
    Como no estamos utilizando Ghost-Cli nos toca crear el archivo de configuración manualmente, sin embargo hay algunas configuraciones de entorno predefinidas ubicadas ene el directorio de Ghost y podemos simplemente copiarlas (En el directorio raiz de Ghost ejecutar):

cp core/server/config/env/config.production.json config.production.json

Edítelo config.production.jsonsegún sus necesidades (especialmente la databaseconfiguración). Además, debe especificar la URL y la configuración del servidor dentro de su archivo de configuración; al final su archivo debería verse más o menos así:

{
    "url": "<URL_OF_YOUR_BLOG>",
    "server": {
        "host": "127.0.0.1",
        "port": <DESIRED_PORT>
    },
    "database": {
        "client": "mysql",
        "connection": {
            "host"     : "127.0.0.1",
            "user"     : "<DB_USER>",
            "password" : "<DB_PASSWORD>",
            "database" : "<DB_NAME>"
        }
    },
    "auth": {
        "type": "password"
    },
    "paths": {
        "contentPath": "content/"
    },
    "logging": {
        "level": "info",
        "rotation": {
            "enabled": true
        },
        "transports": ["file", "stdout"]
    }
}
  1. Knex Migrator

Ghost utiliza la herramienta llamada "Knex migrator" para realizar las migraciones de la base de datos, primero ñnecesitamos instalarla:

npm install -g knex-migrator

Despues correrlo
NODE_ENV=production knex-migrator init

Esto creara todas las tablas que necesitas para Ghost en tu base de datos.

  1. Ejecutarlo
    Listo eso es todo. Ahora ya puedes ejecutarlo con:

NODE_ENV=production node index.js

No usar Ghost CLI probablemente tiene sus desventajas, pero en caso de que no puedas simplemente ejecutarlo, esta podría ser una solución para hacer que Ghost 1.0 funcione.