¿Cómo instalar Ghost (CMS) usando Nodejs y Caddy?

Tutorial actualizado para Caddy v1 y Caddy v2

¿Cómo instalar Ghost (CMS) usando Nodejs y Caddy?

Ghost es un gestor de contenidos (CMS) diseñadado especialmente para blogs y que se caracteriza por su funcionalidad, su elevado rendimiento, integración de AMP nativa sin tener que instalar plugins y webhooks para poder enviar nuestro contenido a cualquier sitio.

Además Ghost esta desarrollado enteramente en Javascript, usando NodeJS como plataforma del lado del servidor y es un proyecto open source. En este artículo os enseñaremos como instalar Ghost usando NodeJS y Caddy de una forma sencilla.

Necesitamos una base de datos

En este caso vamos a instalar MariaDB que personalmente nos ofrece mejor rendimiendo que el servidor mysql

sudo apt-get install mariadb-server
mysql_secure_installation

Ahora necesitamos crear un usuario para nuestra DB:

mysql -u root

Mariadb creando usuarios

Importante cambiar "password" por vuestras propias claves, podéis usar cualquier carácter, pero no os recomiendo los "@" suelen dar problemas algunas veces:

CREATE USER 'ghost'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'ghost'@'localhost';

FLUSH PRIVILEGES;

#bind-address = 127.0.0.1

exit

service mysql restart

Instalamos NodeJs

Al momento de escribir este artículo la última versión LTS de NodeJS era la 12, os recomiendo ir a la web de NodeJs y comprobar la versión LTS para instalar más actual.

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
apt-get install nodejs
node -v

Instalación de Caddy

Os pongo los enlaces de instalación de Caddy, este tutorial fue actualizado para incluir el link de instalación de Caddy v2 como la configuración correcta para que funcione para las dos versiones en este post.

Instalamos Ghost Cli

sudo npm i -g ghost-cli
cd /var/www
mkdir ghost
cd ghost

Crear usuario (Remplazar "<user>" por el nombre de usuario que querais, importante no usar el nombre "ghost"):

adduser <user>

Le damos al usuarios que hemos creado permisos de administrador:

usermod -aG sudo <user>

Inicamos sesión como ese usuario:

su - <user>

Para proceder con la instalación de Ghost solo tenemos que poner en nuestra terminal el siguiente comando:

ghost install

⚠️ Importante poner vuestro nombre del dominio o subdominio con https://... aunque no lo tengáis configurado en Caddy por el momento ya que el certificado lo creará Caddy de forma automática posteriormente. Seguramente os pregunte si queréis configurar Ngix, en ese caso decirle "No" ya que le servidor web que usaremos será Caddy.

El proceso tiene que ser algo similar al siguiente:

[email protected]:/var/www/ghost# ghost install

✔ Checking system Node.js version
✔ Checking current folder permissions
System checks failed with message: 'Linux version is not Ubuntu 16'
Some features of Ghost-CLI may not work without additional configuration.
For local installs we recommend using `ghost install local` instead.
? Continue anyway? Yes
✔ Checking operating system
✔ Checking MySQL is installed
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v1.18.4
✔ Finishing install process
? Enter your blog URL: https://dominio.es
? Enter your MySQL hostname: localhost
? Enter your MySQL username: ghost
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost_prod
✔ Configuring Ghost
✔ Setting up instance
Running sudo command: useradd --system --user-group ghost
Running sudo command: chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
? Do you wish to set up Nginx? **No**
ℹ Setting up Nginx [skipped]
Task ssl depends on the 'nginx' stage, which was skipped.
ℹ Setting up SSL [skipped]
? Do you wish to set up "ghost" mysql user? **Yes**
MySQL user is not "root", skipping additional user setup
ℹ Setting up "ghost" mysql user [skipped]
? Do you wish to set up Systemd? **Yes**
✔ Creating systemd service file at /var/www/ghost/system/files/ghost_cms-tecnonucleous-com.service
Running sudo command: ln -sf /var/www/ghost/system/files/ghost_cms-tecnonucleous-com.service /lib/systemd/system/ghost_ovh-tecnonucleous-com.service
Running sudo command: systemctl daemon-reload
✔ Setting up Systemd
Running sudo command: /var/www/ghost/current/node_modules/.bin/knex-migrator-migrate --init --mgpath /var/www/ghost/current
✔ Running database migrations
? Do you want to start Ghost? **Yes**
✔ Validating config
Running sudo command: systemctl start ghost_ovh-tecnonucleous-com
✔ Starting Ghost
Running sudo command: systemctl enable ghost_ovh-tecnonucleous-com --quiet
✔ Starting Ghost
You can access your blog at https://dominio.es

Ghost uses direct mail by default
To set up an alternative email method read our docs at https://docs.ghost.org/docs/mail-config

CaddyFile para Ghost

cd /etc/caddy
nano CaddyFile

Caddyfile para Caddy v1:

dominio.com {
proxy / 127.0.0.1:2368 {
    transparent
    header_upstream X-Forwarded-Proto https
    }
}

Caddyfile para Caddy v2:

dominio.com {
    reverse_proxy 127.0.0.1:2368 {
		header_up X-Forwarded-Proto {http.request.scheme}
  }
encode gzip
}

Para aplicar los cambios en el caso de Caddy v2 usamos el comando caddy validate para ver si el Caddyfile esta correcto y después aplicamos los cambios con caddyy reload. En el caso de que usemos Caddy v1 (la versión vieja) usaremos el comando systemctl restart caddy para aplicar los cambios.

Si esta todo bien al entrar en nuestro dominio desde el navegador nos tendría que salir algo una pagina similar a la siguiente, el diseño puede varias por la evolución que tiene Ghost.

ghost-inicio

Creamos nuestra cuenta de admin

Para iniciar la creación de nuestra cuenta de admin tenemos que ingresar en la ruta "/ghost" de nuestro dominio desde el navegador. Ej: https://dominio.es/ghost

Crear cuenta en Ghost

Una vez realizado todo este proceso tendremos ghost funcionando perfectamente, espero que este pequeño tutorial os aclarará todos las dudas al respecto.


Share Tweet Send
0 Comentarios
Cargando...