¿Qué es Ghost?

Ghost es un sistema de blogging basado en Node.js. Es un firme rival de Wordpress, aunque éste último es un CMS más potente en cuanto a funcionalidades extras a base de plugins. Pero en cuanto a sistema de escritura Ghost a mi parecer, le gana la batalla a Wordpress.

Ventajas de Ghost frente Wordpress

  • Ghost es más liviano, su carga de página es más rápida que un Wordpress por defecto
  • La modificación de los Themes es más sencilla que en Wordpress No necesita plugins para SEO o mejorar el rendimiento.
  • Existe buena documentación y una gran comunidad

Desventajas de Ghost frente a Wordpress

  • Necesitas un Servidor propio o virtual, o una plataforma que soporte Node.js. Con Wordpress puedes usar cualquier hosting que soporte PHP.
  • Únicamente sirve para blogging. Es complicado montar un eCommerce con Ghost frente a Wordpress
  • Es más reciente que Wordpress que ya tiene una larga trayectoria
Pasos:
  1. Instalamos Apache
  • Si ya lo tenemos instalado entonces actualizamos nuestra Raspberry Pi
  1. Instalamos Node.js:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

sudo apt-get install nodejs

sudo apt-get install build-essential

  1. Instalamos Ghost:
  • Para ello vamos utilizar la herramienta Ghost-Cli:

npm install ghost-cli@latest -g

  • Cambiamos directorio donde queremos tener instalado nuestro Ghost:

cd /var/www/nuestroghostblog

  • Instalamos la ultima versión de Ghost ejecutando:

ghost install

  • Precedemos a instalar el "unzip" si no lo tenemos:

sudo apt-get install unzip

  • Extraemos el archivo descargado al directorio ghost y se elimina el archivo eliminado:

sudo unzip -d ./ghost/ ghost-latest.zip && rm ghost-latest.zip && cd ghost

  1. Configurar Ghost:
  • Una vez que Ghost esta instalado, primero instalamos SQLite3 via npm de la fuente:

sudo npm install sqlite3 --build-from-source

  • Ahora integramos Ghost en la plataforma:

sudo npm install --production

Se paciente esto puede llegar a tardar unos 5 minutos

  • Crearemos y editaremos el archivo config.js con nano nuestra configuración:

sudo cp config.example.js config.js && nano config.js


Guardamos lo editado con Ctrl+X, luego "y" y pulsamos enter.

  • Para vamos a realizar el test de arranque de Ghost:

sudo npm start --production

Cerramos Ghost Ctrl + C

  • Copiamos el archivo  .conf predeterminado, para cambiarlo al nombre que nosotros queramos:

cp /etc/apache2/sites-available/default.conf /etc/apache2/sites-available/tupaginaweb.conf

  • Ahora procedemos a editarlo:

nano /etc/apache2/sites-available/tupaginaweb.conf

Donde aparece ServerName vamos a introducir nuestro dominió y en DocumentRoot el nombre del directorio donde se encuentra nuestra pagina web:

    ServerName tupaginaweb.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/ghost

    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:2368/
    ProxyPassReverse / http://127.0.0.1:2368/

Guardamos lo editado con Ctrl+X, luego "y" y pulsamos enter.

Activamos el servició proxy http:

sudo a2enmod proxy_http

  • Una vez configurado, solo queda activar la pagina:

a2ensite tupaginaweb.conf

  • Reiniciamos el servició:

service apache2 restart

  • Ejecutamos de Ghost de nuevo:

sudo npm start --production

Mientras que este ejecutado Ghost. Realizamos la prueba de acceder mediante nuestro dominio y se va a cargar la pagina web correspondiente.


Esta configuración ya esta lista, pero si salimos de la ventana de terminal o cerramos la sesión SSH que ha iniciado este proceso, entonces se cierra también el Ghost. Para resolverlo procedemos que Ghost se ejecute para siempre automáticamente.

  • Para tener Ghost siempre arrancado ejecutamos los siguientes comandos:

cd /var/www/ghost sudo npm install -g pm2 echo "export NODE_ENV=production" >> ~/.profile source ~/.profile pm2 kill pm2 start index.js --name ghost pm2 dump sudo pm2 startup ubuntu

Listo!

Ya lo tenemos activado correctamente para que Ghost arranque automáticamente al encender la Raspberry Pi, para visualizar el estado están los siguientes comandos:

pm2 status

pm2 stop <process ID>

pm2 monit

pm2 logs


Notas adicionales:

  • Temas para el Ghost Blog Aqui vas a encontrar una gran variedad de temas para nuestro Ghost Blog, para descargar es mediante los siguientes comandos:
  • Cambiamos de directorio al:

cd /var/www/nuestroghostblog/content/themes

  • Ejecutamos el comando wget para descargar el tema en el directorio

wget https://github.com/godofredoninja/Mapache.git

  • Si nuestro ghost lo queremos con un HTTPS hay que realizar la siguiente configuración:
  • Activamos este modulo:

a2enmod headers

  • Luego editar nuestro nano /etc/apache2/sites-available/ghost-le-ssl.conf y añadir la siguiente linea justo antes del </Virtualhost>:

RequestHeader set X-Forwarded-Proto "https"

  • Accedemos al archivo de configuración de Ghost:

nano /var/www/ghost/config.js

  • Y rellenamos los campos de esta manera:

production: {     url: 'https://tupaginaweb.com',

  • Reiniciamos Raspberry y ahora con HTTPS debemos de  acceder.
  • Notas de comandos:

Logs dir: /content/logs/

$ ghost start: Start ghost

$ ghost restart: Restart ghost

$ ghost run: Test if the ghost can start successfully

$ ghost uninstall: Re-install ghost

$ ghost update: Upgrade ghost

$ ghost update — force: Force upgrade if there are errors

$ ghost update –rollback: Revert to the earlier version if an upgrade fails

$ sudo npm i -g ghost-cli@latest: Upgrade Ghost-CLI

$ ghost ssl-renew: Renew ssl certificate

$ ls ./system/files/*.conf: System configuration files