Cómo crear tu Blog con Ghost + MySQL + Nginx Proxy Manager en tu NAS

Guía completa que permitirá crear tu Blog con dominio propio en tu NAS con la última versión de Ghost y servicio de Newsletter activado

Cómo crear tu Blog con Ghost + MySQL + Nginx Proxy Manager en tu NAS
Regístrate en HDS+
Es gratuito. Ten acceso a todo el contenido.
🔓
Dificultad del tutorial: Fácil

En la siguiente guía os voy a explicar el proceso para levantar un Blog con Ghost 5 apoyado por una base de datos MySQL 8 y Nginx Proxy manager para poder usar tu propio dominio. No solamente eso, además te enseñaré a configurarlo para que funcione el registro de usuarios y el envío de las Newsletter.

Algunos compañeros me han pedido la realización de este tutorial ya que la mayoría que están disponibles por la red o están desactualizados o directamente no funcionan. Uno de los motivos reside en que Ghost 5, la última versión del CMS nos exige contar con una BBDD que sea MySQL 8, y da problemas con SQLite o MariaDB.

HDS+ está levantado sobre la última versión de Ghost. Aunque todavía está en activo Bitnarios, la transición a HDS+ está siendo más que satisfactoria. Hace mucho que Wordpress dejó de gustarme como CMS.

Instalando Ghost 5 + MySQL 8

El Docker-Compose que os expongo a continuación es totalmente funcional, pero tendremos que cambiar los valores volumes por los nuestros, así como también los parámetros de database__connection__ y MYSQL_ para una mayor seguridad. Eso sí, podéis tomar como referencia el Compose inferior.

Lo primero que tendréis que hacer, y siempre antes de ejecutar el Stack en Portainer, es crear dos carpetas dentro de volume1/docker : ghost y mysql, las cuales van mapeadas en el Compose y albergarán los archivos del CMS y de la base de datos.

Portainer: Guía de instalación y configuración
Herramienta estrella para la creación y gestión de Docker.
🚨
IMPORTANTE: También es vital la variable url, la cual deberemos de indicar o bien la del dominio que vayamos a usar (Ej. https://hdsplus.co), o por el contrario la IP local del NAS seguida del puerto como muestra el Compose inferior.
version: '3.8'

services:
  ghost:
    image: ghost:latest
    container_name: ghost
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - 2368:2368
    environment:
      # see https://ghost.org/docs/config/#configuration-options
      database__client: mysql
      database__connection__host: db
      database__connection__user: demouser
      database__connection__password: demopassword
      database__connection__database: ghostdemo
      url: http://192.168.1.30:2368
      #NODE_ENV: development
    volumes:
      - /volume1/docker/ghost:/var/lib/ghost/content

  db:
    image: mysql:latest
    container_name: ghost-db
    command: mysqld --default-authentication-plugin=mysql_native_password
    restart: unless-stopped
    ports:
      - 3310:3306
    environment:
      # see https://hub.docker.com/_/mysql
      MYSQL_ROOT_PASSWORD: PruebaGhost
      MYSQL_DATABASE: ghostdemo
      MYSQL_USER: demouser
      MYSQL_PASSWORD: demopassword
    volumes:
      - /volume1/docker/mysql:/var/lib/mysql

Una vez modificado el Compose con vuestros valores, creamos un nuevo Stack, le asignamos un nombre y lo pegamos en Portainer. Para finalizar hacemos clic en Deploy the stack y si hemos hecho todo correctamente, nos generará los dos dockers correctamente.

Una vez ha finalizado la creación de los dos contenedores, para acceder a Ghost:

· Panel de administración: http://IPdelNAS:2368/ghost o https://tudominio.com/ghost

· Web: http://IPdelNAS:2368 o https://tudominio.com

Una vez finalizado el setup inicial, ya tendremos acceso completo al Blog. Solamente nos faltará usarlo mediante nuestro propio dominio. Para ello continuamos con el tutorial.

Usando tu propio dominio

Para usar tu propio dominio será tan sencillo como crear un proxy inverso mediante Nginx Proxy Manager. Si todavía no lo tienes instalado o no sabes como proceder, te recomiendo que leas el tutorial dedicado.

Cómo instalar y configurar Nginx Proxy Manager en tu NAS
Guía detallada sobre cómo instalar tu Proxy Inverso en un NAS con certificado Let’s Encrypt.

Es tan sencillo como agregar el dominio o subdominio que vayamos a usar con Ghost, y apuntarlo a la instalación local en el NAS. Deberéis de marcar las mismas opciones que muestro en las imágenes inferiores. El Certificado SSL será obligatorio.

Ya tendremos el blog completamente funcional, aunque como sabréis uno de los puntos fuertes de Ghost, es la posibilidad de enviar diferentes Newsletter a tus usuarios, o del mero hecho de avisarles vía email cada vez que publicamos un nuevo Post

Añadiendo Mailgun como servidor de correo y Newsletter

Para hacer esto posible, y permitir que se registren usuarios en nuestro Blog, o enviar Newsletters, únicamente tenemos la opción de usar Mailgun. Para ello:

ℹ️
Mailgun en su mayoría de planes son de pago. Para obtener un plan gratuito (hasta 1.000 emails mensuales), deberemos de crear cuenta con 3 meses de prueba, y después, cambiamos al plan Pay-As-You-Go (PAYG).
  1. Nos creamos una cuenta en Mailgun.
  2. Nos vamos a Domains y hacemoc clic en Add New Domain.
  3. Introducimos el dominio donde tenemos alojado nuestro Ghost y el cual queremos que emite los emails.
  4. Actualizamos las DNS que se nos indique en nuestro dominio.
  5. Verificamos el dominio que todo esté correcto.

Una vez nos hayamos creado nuestra cuenta y configurado nuestro dominio, deberemos de hacer dos pasos adicionales para activarlo en tu instalación de Ghost:

Lo primero será añadir las siguientes variables al Docker-Compose para que nos funcione:

🚨
Tendremos que cambiar los valores de: mail__options__auth__user y mail__options__auth__pass por los nuestros.
mail__options__service=Mailgun
mail__transport=SMTP
[email protected]
mail__options__auth__pass=<MAILGUN-SMTP-PASSWORD>
mail__options__host=smtp.eu.mailgun.org
mail__options__port=465
mail__options__secureConnection=true

Y para finalizar, activar la opción dentro del panel de administración de Ghost en Settings - Email newsletter.

Para obtener la clave de la API de Mailgun, en el Dashboard de Mailgun deberemos de ir a Settings - API Keys y copiar la clave de la API privada. Private API Key.

Para probar que funciona correctamente, entramos en la edición de cualquier de los posts de nuestro Blog y hacemos clic en Email newsletter. Introducimos una dirección de Email donde queramos probar que se recibe correctamente y pulsamos en Send test email.

Invítame a un café



Más artículos

Cómo borrar la VRAM de tu Router Asus y maximizar el rendimiento

Cómo borrar la VRAM de tu Router Asus y maximizar el rendimiento

Limpia la memoria de tu Router antes de actualizar el Firmware y maximiza el rendimiento.

Por Joan