Ghost es una plataforma de blogging desarrollada sobre NodeJS y Handlebars (y con sqlLite3 por defecto) que es totalmente de Código Abierto con una idea muy clara: hacer una cosa y hacerlo muy bien. De esta manera se centran exclusivamente a la creación de contenido y nada más (por eso es tan maravilloso crear contenido como veréis más adelante).
En el siguiente tutorial vamos ha explicar como configurar Ghost en un VPS con Ubuntu 20.04 utilizando Ghost-CLI, una serie de scripts que permiten gestionar e instalar Ghost de forma muy sencilla.
Pasos previos
Este tutorial lo haremos sobre Ubuntu 20.04, pero funciona también en versiones anteriores así como Debian. Es necesario tener instalado Nginx y certbot para generar certificado SSL posteriormente. También es necesario un dominio, 1GB de RAM como mínimo y tener instalado NodeJS:

Para la documentación oficial de Ghost, también requieren de un MySQL, pero en esta ocasión vamos a realizar la instalación con SQLite.
Instalación de Ghost CMS
Todo lo que se va a configurar a continuación garantiza que funcione correctamente luego la instalación con Ghost-CLI
.
Creamos un usuario para ghost
Abre una terminal y conéctate al servidor por SSH y crea el usuario con el nombre que quieras excepto ghost
ya que puede generar conflictos con Ghost-CLI
, para este tutorial usaremos el usuario voidnull
:
# adduser voidnull
Añade el usuario al grupo sudo:
# usermod -aG sudo voidnull
Inicia sesión con el usuario:
# su - voidnull
Actualizamos paquetes
Actualizamos los paquetes del servidor:
sudo apt update
sudo apt upgrade
Instalamos Nginx
Procedemos a instalar Nginx con el siguiente comando:
sudo apt install nginx
Instalamos Ghost-CLI
Ghost-CLI es una herramienta de línea de comandos que te ayudará a instalar y configurar Ghost para su uso, de forma rápida y sencilla.
sudo npm install ghost-cli@latest -g
Creamos el directorio
Ahora creamos el directorio donde tendremos los ficheros de Ghost, en este caso habrá que ejecutar lo siguiente:
sudo mkdir -p /var/www/html/midominio.com
sudo chown voidnull.voidnull /var/www/html/midominio.com
sudo chmod 755 /var/www/html/midominio.com
cd /var/www/html/blog.arrel.email
Ejecutamos la instalación de Ghost
Tras toda esta configuración previa, procedemos a instalar Ghost con SQLite:
ghost install --db=sqlite3
La salida de este comando debería de ser algo similar a esto:
✔ Checking system Node.js version - found v14.18.1
✔ Checking logged in user
✔ Checking current folder permissions
✔ Checking system compatibility
✔ Checking memory availability
✔ Checking free space
✔ Checking for latest Ghost version
✔ Setting up install directory
☴ Downloading and installing Ghost v4.24.0 > Installing dependencies > [3/5] Fetching packages...
Cuando finalice la instalación de los paquetes, nos pedía cual es el dominio para acceder a Ghost. Para este caso, dejaremos que la url
del blog sea http://midominio.com
para acceder luego a él con un Nginx Proxy que se configurará a continuación. Luego nos pedirá de configurar SystemD
, le diremos que si. Y finalmente, iniciaremos Ghost.
✔ Finishing install process
? Enter your blog URL: http://midominio.com
✔ Configuring Ghost
+ sudo chown -R ghost:ghost /var/www/html/midominio.com/content
✔ Setting up "ghost" system user
ℹ Setting up "ghost" mysql user [skipped]
? Do you wish to set up Nginx? Yes
+ sudo mv /tmp/localhost/midominio.com.conf /etc/nginx/sites-available/midominio.com.conf
+ sudo ln -sf /etc/nginx/sites-available/midominio.com.conf /etc/nginx/sites-enabled/midominio.com.conf
+ sudo nginx -s reload
✔ Setting up Nginx
? Do you wish to set up SSL? Yes
? Enter your email (For SSL Certificate) mieamil@midominio.com
+ sudo mkdir -p /etc/letsencrypt
+ sudo ./acme.sh --install --home /etc/letsencrypt
+ sudo openssl dhparam -dsaparam -out /etc/nginx/snippets/dhparam.pem 2048
+ sudo mv /tmp/ssl-params.conf /etc/nginx/snippets/ssl-params.conf
+ sudo mv /tmp/localhost/midominio.com-ssl.conf /etc/nginx/sites-available/midominio.com-ssl.conf
+ sudo ln -sf /etc/nginx/sites-available/midominio.com-ssl.conf /etc/nginx/sites-enabled/gmidominio.com-ssl.conf
+ sudo nginx -s reload
✔ Setting up SSL
Systemd service has already been set up. Skipping Systemd setup
ℹ Setting up Systemd [skipped]
+ sudo systemctl is-active ghost_localhost
ℹ Starting Ghost [skipped]
Ghost uses direct mail by default. To set up an alternative email method read our docs at https://ghost.org/docs/config/#mail
------------------------------------------------------------------------------
Ghost was installed successfully! To complete setup of your publication, visit:
https://midominio.com/ghost/
Y listo, ya tenemos nuestro Ghost CMS instalado!
Comentarios