Este primer post lo voy a dedicar a explicar los pasos que he seguido crear este blogg. Para ello, explicaré cómo instalar y configurar Ghost en un servidor Ubuntu 12.04 LTS.

Nivel de dificultad Bajo
Tiempo estimado de puesta en práctica 2 horas
Coste 5 €/mes

¿Qué es Ghost?

Es una plataforma Open Source para crear blogs. Está desarrollada con NodeJS y tiene una interfaz de usuario limpia y clara.

Los contenidos se escriben en formato Markdown, por lo que podemos escribir de forma rápida sin prestar mucha atención al formato.

Comenzamos!

Hosting

Lo primero que necesitas es disponer de una máquina donde realizar probar todo. Puedes hacerlo sobre una máquina local propia o contratar algún servicio de cloud.

Ghost(Pro): los credores del proyecto ofrecen un hosting (de pago) completamente administrado. Si lo que quieres es olvidarte de configuraciones, actualizaciones, etc... y sólo quieres bloguear, esta es tu opción.

Amazon EC2: Amazon ofrece la posibilidad de probar sus servicios cloud de forma gratuita durante un año. Puede ser una opción interesante si te apetece probar gratis durante 12 meses Ghost y AWS.

Digital Ocean: Este proveedor ofrece máquinas virtuales preparadas para trabajar con Ubuntu 12.04 y Ghost. Te puede interesar si quieres tener algo más de control sobre la instancia y cacharrear un poco.

Instalar Ghost

Parto de la base que ya tienes el sistema operativo configurado y listo para comenzar a trabajar. Para instalar Ghost, hay que seguir los siguientes pasos:

  1. Me descargo el paquete

    $ > curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip
    
  2. Lo descromprimo

    $ > unzip -uo ghost.zip -d /home/koldo/ghost
    
  3. Instalo Ghost

    $ > npm install --production
    
  4. Actualizar la IP del host. Para ello:

    • Editamos el fichero de configuración de Ghost:

      $ > sudo vi config.js
      
    • Buscamos la clave donde está la configuración del entorno de Producción y actualizamos el valor de url, host, port

      // ### Production
      // When running Ghost in the wild, use the production environment
      // Configure your URL and mail settings here
      production: {
          url: 'http://<URL_DE_TU_DOMINIO>',
          mail: {},
          database: {
              client: 'sqlite3',
              connection: {
                  filename: path.join(__dirname, '/content/data/ghost.db')
              },
              debug: false
          },
          server: {
              // Host to be passed to node's `net.Server#listen()`
              host: '<IP_DE_TU_SERVIDOR>',
              // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
              port: '<PUERTO>'
          }
      },
      
  5. Añado al variable de entorno para indicar el entorno que se va a ejecutar

    $ > export NODE_ENV=production
    
  6. Cuando instala Ghost, ejecutar el siguiente comando para arrancar Node:

    $ > npm start
    

Nota: Para correr Node en segundo plano y en modo Producción ejecutamos:

$ > nohup npm start --production >/dev/null 2>&1 &

Crear y configurar el blog

Una vez instalado Ghost, tenemos que configurarlo. Para ello, accedemos a la URL:

http://<IP_ghost>:2368/ghost/

Nos aparecerá una pantalla donde tendremos que crearnos un primer usuario para el nuevo blog. Rellenas los datos y listo!

Ahora ya puedes empezar a escribir tus post en tu nuevo blog. Si no conoces la sintaxis de Markdown, puedes echar un ojo a esta chuleta con la sintaxis de Markdown

Añadir Disqus a Ghost

  1. Crear cuenta en Disqus

  2. Copiarme el codigo que me da discus y añadimos las variables de Discus que queremos configurar:

    • disqus_identifier: id del post donde va el comentario. En mi caso, post.id

    • disqus_title: el titulo del post

    • disqus_url: url del post para que Discus los trate como único.

El resultado quedará de la siguiente forma:

<div id="disqus_thread"></div>
<script type="text/javascript">
    /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
    var disqus_shortname = '<TU_NOMBRE_USUARIO>'; // required: replace example with your forum shortname
    var disqus_identifier = '{{post.id}}'; // make sure to use the post.id as an identifier, otherwise disqus will use the pages url per default, which might be problematic...
    var disqus_title = '{{post.title}}';
    var disqus_url = '{{post.url}}';

    /* * * DON'T EDIT BELOW THIS LINE * * */
    (function() {
        var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
        dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();
</script>
<noscript>Debes habilitar JavaScript para ver los <a href="http://disqus.com/?ref_noscript">comentarios de Disqus</a></noscript>
  1. Introducimos el snippet anterior en el fichero post.hbs. El fichero está en el directorio del theme: <root_ghost_dir>/content/themes/casper/

  2. Reiniciamos Ghost y listo.

Cómo reiniciar Ghost de forma manual

  1. Nos logeamos en el servidor vía SSH.

  2. Nos movemos al directorio donde está instalado Ghost (el blog).

  3. Ejecutar el siguiente comando para parar NodeJS (esto dejará el sitio offline):

    $ > pkill node
    
  4. Arrancamos de nuevo el servidor:

    $ > nohup npm start --production >/dev/null 2>&1 &
    

De esta forma tan fácil tiener corriendo en un servidor propio un blog con la misma pinta que este.