Ghost CMS: La Odisea
Parece que lo mío con el self-hosting es una odisea constante, comparable a la de Homero o la espacial… Y es que cuando quieres, pero no sabes, todo es más cuesta arriba, cual pendiente del Angliru… se sube pero hay que lidiar con las piernas, la cabeza y, sobre todo, la gravedad….
Uno de mis anhelos al hospedar mis propias aplicaciones, es migrar éste blog. WordPress, mi querido WordPress, se ha vuelto un monstruo que necesita mucho mantenimiento. En mi opinión, después de usarlo muchos años en diferentes etapas, ya no sirve para el que quiere abrir un simple blog.
En esa tesitura, he mirado migrar a sitios estáticos como Hugo o Jekyll, pero he leído muchas bondades de Ghost, un CMS similar a WordPress, pero más moderno y más limpio.
Así que vamos a ello. Con Docker, por supuesto.
services:
ghost:
image: ghost:6
container_name: ghost_blog
restart: unless-stopped
ports:
- "2368:2368"
depends_on:
- db
environment:
url: https://localhost:2368 #URL de tu dominio
mail__transport: SMTP
mail__options__host: smtp.gmail.com
mail__options__port: 587
mail__options__secure: "false"
mail__options__auth__user: XXXX@gmail.com #un email de Gmail.
mail__options__auth__pass: XXXXXXXXXXX #clave de Gmail.
database__client: mysql
database__connection__host: db
database__connection__user: ghostuser
database__connection__password: password #cambiar clave
database__connection__database: ghostdb
volumes:
- ./content:/var/lib/ghost/content
db:
image: mysql:8
container_name: ghost_mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: ghostdb
MYSQL_USER: ghostuser
MYSQL_PASSWORD: password #cambiar clave
volumes:
- ./db_data:/var/lib/mysql
volumes:
db_data:
Si usas el docker-compose oficial de Ghost CMS, instala perfectamente pero una vez cierras sesión, no vas a poder loguearte de nuevo. Necesita enviarte un código para poder hacerlo y no puede si no lo configuras…. Pero eso no lo pone en ningún sitio….
Éste docker-compose lo he sacado de un blog personal, pero no recuerdo cual. El autor, a diferencia de otros, recomienda configurar un email, en éste caso de Gmail, para autentificarte….
Éste paso se omite en muchos docker-compose que he probado y me daba un problema al loguearme para poder postear o simplemente toquetear.
Y es que Ghost CMS (según el autor) es un sistema pensado para la monetización, para crear comunidades en torno al blog/página que creas. Tiene todos los elementos como sistema de pagos, membresía… ya integrado, facilitando mucho la tarea.
Para ello necesita una cuenta autentificada y la mejor manera y quizá más sencilla, ya que casi todo el mundo tiene una cuenta de Google, es hacerlo a través de su portal.
Antes de lanzar el docker-compose, debes ir a tu cuenta de Google y crear una «Cuenta de Aplicaciones». Para ello hay unos requisitos básicos y una vez creada, debes poner la contraseña en el docker-compose de arriba, dónde pone «clave de Gmail».
Al loguearte con tu usuario y contraseña en Ghost CMS, éste te enviará un email con una clave única y ya serás dueño nuevamente.
Primer escollo solucionado…. vamos a por el segundo: la migración….
Para empezar en otro sistema, sea Ghost CMS u otro, es requisito imperativo poder pasar el contenido de éste blog. No perder nada.
Tanto Ghost CMS como WordPress disponen de herramientas para importar/exportar el contenido. Lo primero es crear una URL válida, no sirve «localhost». Lo hice a través de un proxy inverso, en mi caso Nginx. También la coloco en el docker-compose de arriba….
Ghost CMS se conecta a la url de éste blog y te dicta unos pasos sencillos a seguir. Básicamente, conectar a tu blog (???) y descargar un .zip con el contenido. Todo comienza perfecto, pero al cabo de pocos segundos…. ERROR!!. Por algún motivo, según entiendo, se pierde la comunicación con mi blog y no puede hacer la migración.
Lo intento de varias maneras, descargando en .zip, en .json, en .xlm…. incluso descargando un plugin para copias de seguridad en WordPress…. Siempre el mismo problema.
Desesperado, ya estaba pensando en reescribir todo el blog o más probable, mandar todo a la mierda e instalar WordPress….. En un alarde de desesperación, me da por descomprimir el .zip que he descargado desde WordPress. En él sólo están las imágenes subidas y un archivo .json que es realmente el blog, los artículos. Unos 150mb.
Por algún motivo, cosas de tener canas imagino, simplemente vuelvo a comprimir la carpeta en .zip, creando un nuevo archivo y vuelvo a intentarlo como antes, a través de Ghost CMS…
ET VOILÁ!!!!
El blog está en una versión de pruebas, pero se ve bien. He configurado un tema que viene por defecto, de una manera similar a éste, en forma de rejilla.
Pero pasa algo similar a WordPress con los temas. Temas gratuítos hay, pero muy limitados. La mayoría, los guays, los muy configurables, son de pago y por un montante de 50€ para arriba. No tengo nada en contra de los desarrolladores que hacen los temas, pero me parece excesivo. Muchos superan incluso los 80€.
En cuanto a la instalación quiero pensar que hay formas más simples de hacerlo. He instalado varios docker-compose de varias fuentes y siempre he encontrado el mismo problema de login. Éste lo ha solucionado. En los foros de Ghost CMS aparecen varias entradas con el problema sin aparente solución.
La migración ha venido después. Un problema extraño, pero parece que recurrente, ya que he leído también varias entradas en los foros oficiales.
Toca decidir qué hacer, si seguir con WordPress, pasar a Ghost ahora que «sé hacerlo» o intentarlo con Hugo, que me atrae mucho…. Me gustaría dar el salto en Enero….