Cómo crear un blog desde cero con Ghost en DigitalOcean

Es posible que en algún momento de tu vida te hayas planteado empezar un blog, pero la mayoría de las veces no sabes dónde crearlo, como instalarlo, qué plataforma elegir, etc..

En este artículo voy a explicar cómo crear un blog, desde cero y paso a paso con Ghost y aprender a instalarlo en un servidor cloud como es DigitalOcean

¿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

Instalar Ghost en DigitalOcean

Digital Ocean es un servicio que te permite crear máquinas virtuales para tener tu propio servidor en la nube. Algo así como hace Amazon Web Services, pero solo enfocado a crear un servidor.

Una de las características que ofrece Digital Ocean son las imágenes preinstaladas de varias tecnologías. Podemos tener MongoDB, Node.js, Redis, etc... instalado en un click y por supuesto tenemos Ghost también.

Crear cuenta en DigitalOcean.

Web de DigitalOcean

Nos dirijimos a la web de DigitalOcean (Si te registras desde este link te obsequian con USD 10$ en el servicio, 2 meses gratis) y nos registramos con un email y una contraseña. DigitalOcean te enviará un email para confirmar tu cuenta, revisa tu bandeja de entrada y confirma el correo :)

Registro en DigitalOcean

Después nos pedirá la información de facturación. Podemos pagar con tarjeta de crédito o con Paypal.

Información de Facturación

Crear un droplet para nuestro blog

Ahora ya podemos crear nuestro Droplet. Elegimos un nombre para nuestro servidor, por ejemplo blog y el tamaño más pequeño de USD $5 al mes. Este tamaño es más que suficiente para nuestro blog. Posee 512 Mb de RAM, 20 GB de SSD y un 1TB de transferencia mensual. Actualmente mi blog alcanza las 40.000 visitas mensuales y sigo utilizando ese Droplet sin problema.

Elegir tamaño de Droplet

Seguidamente elegimos la región. Si tu blog está orientado a España o Europa, es conveniente que esté ubicado en una región cercana como puede ser Amsterdam, Londres o Frankfurt. Si está orientado al público asiático, te recomiendo que elijas Singapur y si está destinado o tu mayor tráfico vendrá de países de latinoamérica o USA, elige entonces las regiones de New York, San Francisco o Toronto. En mi caso para este ejemplo voy a elegir Londres.

Elegir región de Droplet

La siguiente opción es elegir la imagen. En la sección aplicaciones podemos elegir Ghost v0.7.0 y además de Ghost y Node, lleva también el sistema operativo incluido. Elegimos esa.

Elegir aplicación Ghost

La última sección es elegir si queremos usar una clave privada para conectarnos mediante SSH al servidor o si preferimos hacerlo por contraseña. Es recomendable usar clave privada, es más seguro que una contraseña y más cómodo para nosotros.

Ya tenemos nuestro droplet creado.

Droplet creado

Una vez creado, ya tenemos todo funcionando. Si vemos en el panel de control DigitalOcean nos da una IP privada que será donde tengamos corriendo la aplicación. En mi ejemplo es la IP 178.62.97.7.

Panel de control de DigitalOcean

Si en un navegador web voy a esa dirección podré ver Ghost corriendo: http://178.62.97.7

Blog recién creado con Ghost

Administrando nuestro blog desde el panel de Ghost

Para poder entrar al panel de administración de Ghost, debemos ir a la URL /ghost de tu servidor. En este caso http://178.62.97.7/ghost.

Bienvenido a Ghost

Al ser nuestra primera visita, crearemos el usuario administrador del blog, con nuestro nombre, email y una contraseña. También podemos subir una fotografía de perfil.

Registro de usuario en Ghost

Como Ghost soporta multiusuario, podemos invitar a otros usuarios como redactores del blog. Si no, podemos saltarnos este paso.

Invitar a más redactores al equipo

Una vez creadas las cuentas de usuario accedemos al editor. La parte izquierda es el editor en si, en formato Markdown, y la derecha es cómo se verá realmente en el HTML final.

Panel de control en Ghost

El formato Markdown es muy cómodo para editar textos y darles estilos. A continuación puedes ver una lista de los comandos más habituales.

Formato Markdown

Obtener un nombre de dominio

Vale, tenemos ya nuestro blog creado, pero recordar una dirección IP no es algo que nos guste mucho, queremos nuestro propio nombre de dominio, que se vende mejor y es más facil de recordar que unos números.

Una de las mejores opciones es Namecheap, un servicio que te permite comprar nombres de dominio a un precio bastante asequible.

Buscar nombre de dominio

Simplemente elige el nombre que más te guste y Namecheap te buscará los que estén libres.

Elegir nombre de dominio

Puedes pagar con tarjeta de crédito o con saldo de Paypal, igual que en DigitalOcean.

Lo siguiente es conectar el nombre de dominio con nuestro servidor web creado en DigitalOcean. Esto lo hacemos a través de los DNS de Namecheap.

Nos dirigimos a nuestro perfil en Namecheap Y en Dashboard pulsamos en el botón Manage del dominio que acabamos de registrar. Dentro de esta opción, vamos a la pestaña AdvancedDNS

Advanced DNS

Pulsamos en el botón Add Record y añadimos un nuevo registro de tipo A, que son los que nos permiten indicarles una dirección IP. Rellenamos el formulario con los datos y la IP que nos proporcionó DigitalOcean y como host ponemos * para que todos los subdominios vayan al mismo dominio. (Así las URLs con www redirigirán al dominio principal)

Registro tipo A

Salvamos y esperamos un tiempo (entre 20 minutos y 1hora) a que la información se propague por los servidores de nombres (DNS). Ahora es momento de hacer unas últimas configuraciones.

Configuraciones

En el menú Settings/General puedes cambiar el nombre del blog y la descripción

Cambiar nombre del blog

También puedes cambiar tu foto de perfil en team/tu_usuario así como tu biografía y más datos

Editar autor

Y en Seetings/Navigation puedes añadir páginas estáticas para diferentes secciones de tu web como pueden ser un Acerca de Mi, Contacto, etc..

Navegación

URL de nuestro dominio

Debemos indicarle a Ghost cuál es el nombre de dominio que hemos registrado, lo hacemos en el fichero /var/www/ghost/config.js en el servidor, que contiene la configuración básica de la aplicación blog. Dentro de la propiedad production.url

production: {
  url: "http://mihipsterblog.com",
  ...
}

Servicio de mail

El mismo fichero del mail. La configuración del servicio de mail sirve para recuperar la contraseña y por si Ghost ha de enviarte algún aviso via correo electrónico. Puedes configurarlo con Gmail o servicios como Mandrill, Mailgun, etc..

production: {
  url: 'http://mihipsterblog.com',  
  mail: {  
    transport: 'SMTP',
    options: {
        service: 'Mailgun',
        auth: {
            user: 'correo@miblog.com',
            pass: '123456789'
        }
    }
  }
}

En la documentación de ghost tienes más información al respecto.

Temas personalizados

El aspecto del blog o theme, puede ser modificado. Tienes a tu disposición una gran cantidad de themes creados gratuitamente por la comunidad y también de pago pero a unos precios bastante asequibles comparados con Wordpress.

Los themes van alojados en la carpeta /var/www/ghost/content/themes y la estructura que siguen suele ser la siguiente:

/nombre_theme
├── /assets
|   └── /css
|       ├── screen.css
|   ├── /fonts
|   ├── /images
|   ├── /js
├── default.hbs
├── index.hbs [Necesario]
└── post.hbs [Necesario
└── package.json [Muy necesario]

Para poder cambiar el theme, debemos subir los ficheros a esa carpeta. Una opción muy común es utilizar curl desde el servidor a un repositorio de github y descomprimirlo en dentro de la carpeta /var/www/ghost/content/themes y después en el panel de control elegir el theme recién instalado.

Para que Ghost reconozca el theme recién instalado, deber reiniciar el servicio desde la terminal. Eso lo puedes hacer con el comando

$ sudo service ghost restart

Y voilá ya tienes tu blog ultra-hipster en Ghost corriendo y listo para que publiques tu contenido. Y si tienes dudas, tienes a tu disposición la documentación oficial de Ghost bastante completa.