Cómo Instalar Ghost CMS en Digital Ocean

¿Quieres instalar Ghost CMS en Digital Ocean pero no sabes por dónde empezar? En esta guía paso a paso aprenderás cómo instalar Ghost CMS en Digital Ocean listo para producción, configurar dominio, añadir llave SSH, obtener un SSL automático y tener el primer acceso al panel de Ghost.
Ghost CMS es una plataforma de blogging en constante crecimiento, construida y desarrollada con JavaScript, Node.js, HTML y CSS, mientras que Digital Ocean es un proveedor de servicios en la nube enfocado en ser simple, rápido y mas económico que otras plataformas (AWS, Google Cloud, Microsoft Azure). Gracias a la colaboración de estas dos empresas, ofrecen al público una solución sencilla y fácil de implementar, para instalar Ghost CMS en Digital Ocean de una vez listo para producción, y con muy pocos clicks.
Guía paso a paso para configurar Ghost CMS en producción
- Requisitos Previos
- Instalar Ghost CMS en Digital Ocean
- Configurar Dominio en Digital Ocean
- Finalizar Setup de Ghost CMS
Requisitos Previos
Es necesario verificar y completar los requisitos previos de instalación, son muy importantes para que mas adelante no encuentres tropiezos y no pierdas las ganas de ensayar Ghost CMS. Yo me encargo de que lleguemos hasta el final de esta guía con éxito, tu te encargas de seguir el paso a paso; que sea un acuerdo entre nosotros.
Registrarse en Digital Ocean
Debes crear una cuenta en Digital Ocean, es muy sencillo y puedes hacerlo con tu correo electrónico y no demorarás mas de 5 minutos, para mi sorpresa, una vez inscritos nos regalan $200 dolares en créditos gratuitos para un periodo de 60 días (punto para Digital Ocean 😉). Es decir, tienes 2 meses para probar gratis lo que necesites sin que sobrepases el valor de los productos o servicios en $200 dolares, la verdad, es mas que suficiente.

Pero hay un pequeño truco, debes registrar una tarjeta de crédito en DigitalOcean para confirmar tu identidad, cuando la registras se realiza un cobro simbólico de $1 dolar, que a los pocos minutos (o cuando DO confirme tu identidad) te los regresa a tu tarjeta de crédito como un mensaje de compra rechazada. Seguidamente el panel de administración te muestra el mensaje que tienes $200 créditos gratuitos (imagen anterior).
Puedes tener la confianza que si no superas los limites del plan gratis en DigitalOcean, no se te cobraran recargos a tu tarjeta, es decir, no debes superar los $200 dolares gratuitos en 60 días.
Si el mensaje de Action Needed no desaparece, no vas a poder instalar ningún producto o servicio de DigitalOcean.

Comprar un Dominio
Es necesario que adquieras uno para que puedas configurar el dominio para Ghost CMS en Digital Ocean. Hay maneras de conseguir dominios gratuitos (lo revisaremos en otro artículo), también hay proveedores de pago, algunos son empresas grandes y de buena reputación como Hostinger, GoDaddy y el mismo DigitalOcean, también hay proveedores locales a tu país/región, y puedes elegir cualquiera que conozcas o te genere confianza.
Lo que hacen muchas personas (y me sumo a ese grupo) es comprar un dominio en Hostinger, en lo personal nunca he probado con otro proveedor 😅, pero por los años que llevo usándolo me parece bueno, de confianza y económico, de igual manera puedes elegir el que mas te guste.
Aquí lo importante es cómo apuntar dominio de Hostinger a Digital Ocean, o como hacerlo desde tu proveedor de preferencia, para mi situación, entre al panel de administración de Hostinger a la sección de Dominios y desde allí poder configurar los servidores DNS de DigitalOcean.
- ns1.digitalocean.com
- ns2.digitalocean.com
- ns3.digitalocean.com


Instalar Ghost CMS en Digital Ocean
Ahora si, hemos llegado al punto álgido y mas importante del proceso, la instalación, y para familiarizarnos con el entorno en DO debes aprender este concepto, ¿Qué es un Droplet en DigitalOcean? Es básicamente una máquina virtual o servidor en la nube que puedes instalar y administrar fácilmente, lo fascinante para nosotros, es que Digital Ocean tiene algunos droplets con software pre-instalado para facilitar las configuraciones, la comunidad también conoce esta metodología como One-Click App.
Iniciar Instalación
Te confirmo lo que estas pensando, Digital Ocean tiene un droplet pre-configurado para Ghost CMS, lo que nos reduce el proceso de instalación de manera significativa. Ve al panel de administración de DigitalOcean y en la izquierda busca la opción de droplets.




Ahora puedes seleccionar las opciones de configuración del droplet que por defecto viene con Premium Intel para el tipo de almacenamiento de disco duro, pero es mas costoso, puedes seleccionar Regular que para nuestro objetivo es mas que suficiente y además de ser mas económico. También se habilitan características de hardware (CPU, cantidad de almacenamiento en disco duro y velocidad de transferencia de datos) y cuando yo seleccione Regular como tipo de disco, por defecto quedo seleccionado $24/mo, para mi esta bien y lo deje así, aunque puedes incluso seleccionar uno mas económico como $12/mo.

Configurar SSH Key
Llegamos a un momento crítico, configuraciones de SSH para el droplet, por defecto viene seleccionado Password pero yo te recomiendo seleccionar SSH Key (ademas de ser como esta explicado en esta guía).


Nos aparece una ventana modal, y en la parte derecha nos muestra un pequeño paso a paso para poder crear o generar nuestros datos de autenticación por medio de SSH.

Abres el símbolo del sistema (cmd) en Windows de tu computadora, o la terminal de Linux y ejecutas el comando que nos recomienda DigitalOcean, seguido de esto, la terminal nos hará unas preguntas:
- Ingresar nombre del archivo donde se guardara la llave ssh: Puedes dejarlo vació y el script generará un nombre por defecto (así lo hice yo).
- Ingresar un llave secreta: Puedes escribir una frase, palabra, contraseña con la que se encriptarán las llaves SSH y adicional, cuando te vayas a conectar a tu droplet se te solicitara esta llave a modo de contraseña, también puedes dejarle vació (pero te recomiendo asignar un Passphrase).
- Finalmente se crean los archivos de llaves SSH, el script te muestra la ruta donde quedaron almacenados, en mi caso fue C:\Users\alex/.ssh/id_edxxx y C:\Users\alex/.ssh/id_edxxx.pub. De vital importancia este último que termina con extensión pub, lo utilizaremos en el panel de administración de Digital Ocean mas adelante.
> ssh-keygen


De regreso en el panel de administración de Digital Ocean, debes copiar el contenido del archivo que termina con extensión pub, lo puedes abrir con cualquier editor de texto, lo copias y lo pegas en la ventana modal de seguridad SSH en Digital Ocean. También puedes asignarle un nombre a esta llave SSH, porque si mas adelante creas mas droplets, puedes usar la misma llave y conectarte desde tu computadora sin inconvenientes.

Crear Droplet de Ghost CMS.
Finalmente podemos crear el droplet, esto tardará unos minutos y Digital Ocean instalará automáticamente por nosotros todo el software necesario para tener Ghost CMS en producción, aunque mas adelante vienen unas configuraciones adicionales, esta metodología evita instalaciones y configuraciones manuales de la base de datos Myql, Node.js, llaves SSH, firewall de Linux ufw, Nginx, etc. (esto es ser un poco trágicos 😅 porque Ghost tiene un script que también realiza una instalación automática por nosotros, pero es un digno tema para otro artículo).


Si te fijas en donde dice IPv4, es la dirección IP pública de tu droplet, tenerla presente porque es fundamental para lo que sigue mas adelante.
Configurar Dominio en Digital Ocean
Hasta aquí, ya hemos instalo Ghost CMS en Digital Ocean, aun faltan algunas configuraciones para que todo que funcionando, pero lo mas importarte ya lo hemos solucionado.
Iniciar Configuración
¿Cómo configurar un Dominio en Digital Ocean? Primero debemos relacionar nuestro dominio a la dirección IP pública que nos entrego el droplet. En el panel de administración puedes verla donde dice IPv4 (imagen anterior), confirma muy bien la dirección IP asignada a tu droplet. Seguidamente vamos al menú Networking para apuntar dominio de Hostinger a Digital Ocean.


Escribimos nuestro dominio, y damos click en Add domain, recuerda escribirlo sin https, por ejemplo, podría ser algo así de acuerdo al dominio que hayas comprado.
noticiasdeldia.com
noticiasdeldia.blog
noticiasdeldia.io


En esta ventana es donde realmente podemos conectar el dominio de Hostinger con Digital Ocean IP, yo comento Hostinger porque es el proveedor que yo elegí, pero tu puedes tener cualquier proveedor de tu preferencia. Es importante tener en cuenta lo siguiente, en la campo Hostname debes poner el símbolo @, esto relaciona directamente el dominio que configuraste en el paso anterior.
Y en Will direct to, debes seleccionar el nombre de tu droplet, esto automáticamente lo relacionara con la dirección IP pública de tu droplet.


Verificar Configuración
Después de haber realizado las configuraciones de los pasos anteriores y haber creado el registro de dominio tipo A, la propagación de la relación entre tu dominio con la dirección IP pública en la red de Internet puede tardar hasta 48 horas (es un recordatorio que nos hacen los proveedores), sin embargo y en mi experiencia, en la mayoría de los casos no tardan mas de 1 hora, incluso a los 5 minutos ya me ha funcionado, de todas maneras hay que tener presente ese recordatorio por si puede llegar a tardar las 48 horas.
Para que puedas confirmar definitivamente si ya esta asociado tu dominio con la dirección IP pública, puedes realizar un ping a tu dominio desde una terminal de Linux o símbolo del sistema de Windows, si recibes respuesta desde la dirección IP que esta asignada en tu droplet entonces ya todo esta correcto y configurado.

Finalizar Setup de Ghost CMS
Ya tenemos todo listo para las configuraciones finales de nuestra instalación, es decir, vamos a informarle a Ghost cual es la URL o dirección web de nuestro dominio y también informarle nuestro correo electrónico para que el script automático de Digital Ocean con Ghost CMS ajusten la seguridad HTTPS con Nginx, Cerbot y Let's Encrypt (no te preocupes por como se hace, solo debemos saber que es un script automático).
Últimos Ajustes
En la sección de configuraciones de ssh establecimos nuestros archivos de seguridad, entonces vamos al símbolo de sistema de Windows o en la terminal de Linux y ejecutamos el siguiente comando, donde:
- root es el usuario por defecto que asigna el droplet al sistema operativo.
- x.x.x.x es la dirección IPv4 pública que el droplet asigno a la instalación de Ghost CMS, si no la recuerdas, puedes regresar aquí para que puedas identificarla.
> ssh root@x.x.x.x

Recuerda que si asignaste un Passphrase lo tienes que ingresar, si no lo creaste, no tienes que escribir nada y puedes dejar la pregunta en vació, esas configuraciones las hicimos unos pasos antes aquí en caso que no lo recuerdes.
Una ves te autenticas correctamente, el droplet de Ghost CMS instala las herramientas CLI, paquetes, librerías y muestra el mensaje que se realizarán unas preguntas para finalizar la configuración, presiona Enter, o si no pasa nada con Enter, presiona cualquier tecla y después Enter.

Seguidamente el script empieza a realizar las configuraciones automáticamente, y se te realizarán dos preguntas, ingresa tu dirección URL del blog (Enter your blog URL), y debes ingresarla con https, ejemplo, si el dominio que compraste es noticiasdeldia.com entonces colocas:
https://noticiasdeldia.com
Y para la pregunta de ingresa tu email (Enter your email), colocas tu correo personal (por lo menos así lo hice yo). Esto es necesario para la configuración de SSL en Digital Ocean para Ghost CMS.

Después de unos minutos, el proceso para como instalar Ghost CMS en Digital Ocean finalmente termina, el script nos avisa por un mensaje en la consola que todo fue exitosamente (ojala así haya sido para también 🙌) y nos muestra la URL del panel de administración de tu blog.

Acá tenemos que hacer unos comentarios importantes, el script automático configura Ghost CMS con una base de datos en Digital Ocean todo internamente en el droplet para el funcionamiento del blog, también queda configurado Ghost CMS con Nginx y con SSL para la conexión segura por medio del protocolo HTTPS, lo que da a nuestro nuevo sistema de blog todos los ajustes mínimos para ser un entorno eficiente, veloz y seguro. Solo nos faltaría revisar su funcionamiento y su interfaz gráfica que es realmente fabulosa, minimalista y se ajusta a los requerimientos profesionales para un sitio o blog de publicaciones, espero lo disfrutes y le encuentres un propósito así como lo he hecho yo 😉.
Probar el Blog
Ya puedes entrar a la URL de tu blog, recuerda utilizar https, y deberías ver la página de entrada, home o index con las configuraciones por defecto.

En el navegador si agregas a la dirección principal de tu blog lo siguiente: /ghost, al ser la primera vez que intentas entrar al panel de administración, se te abrirá un formulario para que te registres con tus datos, y siguiendo el ejemplo que venimos trabajando, seria algo así:
https://noticiasdeldia.com/ghost


Ya que llegaste hasta aquí, te felicito, y deseo que todo de haya funcionado correctamente para que puedas disfrutar de esta magnifica plataforma. ¿Que sigue? Empezar a aprender la estructura general de Ghost CMS para que puedas publicar tus propios artículos, como también como realizar las primeras personalizaciones.
Si tuviste problemas, quédate un poco mas, tengo una sección de errores frecuentes que puede ayudarte, y si no es así, no dudes en contactarme.