Tu propio blog y newsletter con Ghost: dominio, correo, miembros y copias de seguridad
Despliega Ghost con la plantilla de Zenavo, asocia un dominio con HTTPS, crea la cuenta de administrador, configura el correo para que funcionen los registros de miembros y las newsletters, y haz copias de seguridad de MySQL y de la carpeta de contenido.
Este artículo también está disponible en English, 简体中文, 繁體中文, 日本語 y Bahasa Indonesia.
Ghost es una plataforma de publicación de código abierto: artículos, membresías de pago o gratuitas y newsletters conviven en un mismo panel de administración, con un editor limpio y temas pensados para los buscadores. Si quieres un blog propio sin tener que cuidar plugins de WordPress, Ghost encaja bien.
En esta guía usamos la plantilla de Ghost de Zenavo para ejecutar Ghost y MySQL en un servidor que alquilas o que es tuyo, y después configuramos el dominio, el correo y las copias de seguridad.
Antes de empezar
- Un servidor Linux conectado a Zenavo. La plantilla pide aproximadamente 1 GB de memoria; deja margen también para MySQL.
- Un dominio para el blog, como
blog.example.com. - Una cuenta SMTP de un proveedor de correo (la usarás más adelante). Los registros de miembros, los enlaces de inicio de sesión y las invitaciones al equipo se envían por correo.
Despliega la plantilla
Abre la plantilla de Ghost. Antes de desplegar, te pide la Site URL: la dirección completa que usarán los lectores, como https://blog.example.com. Crea dos servicios:
| Servicio | Qué contiene |
|---|---|
| mysql | MySQL 8.4, volumen /var/lib/mysql, contraseña de root generada |
| ghost | ghost:5-alpine en el puerto HTTP 2368, carpeta de contenido /var/lib/ghost/content (imágenes y temas) |
La Site URL se convierte en la variable url del servicio ghost. Ghost construye todos los enlaces a partir de ella, así que debe coincidir exactamente con el dominio que acabes usando, https:// incluido.
Asocia el dominio y crea el administrador
En la pestaña Networking del servicio ghost, asocia el mismo dominio al puerto 2368, añade un registro A que apunte al servidor y espera a que esté listo el HTTPS (Dominios y HTTPS).
Abre https://blog.example.com/ghost y sigue los pasos para poner nombre al sitio y crear la primera cuenta de administrador. El panel de administración siempre está en /ghost. Como con cualquier aplicación autoalojada, hazlo tú en cuanto funcione el dominio.
Para cambiar de dominio más adelante, modifica la variable url, vuelve a desplegar y asocia el nuevo dominio. Si cambias el dominio sin tocar url, los enlaces seguirán apuntando a la dirección antigua.
Configura el correo
Ghost envía dos tipos de correo:
- Transaccional: invitaciones al equipo, restablecimiento de contraseñas, registros de miembros y enlaces de inicio de sesión. Sirve cualquier servicio SMTP.
- Newsletters masivas: artículos enviados a todos los suscriptores. Actualmente Ghost solo las envía a través de Mailgun, que se configura en el panel de administración, en Settings → Email newsletter, con tu dominio y tu clave de API de Mailgun.
Configura el correo transaccional en las Variables del servicio ghost. Ghost escribe los ajustes anidados con dobles guiones bajos:
| Variable | Ejemplo |
|---|---|
mail__transport |
SMTP |
mail__options__host |
smtp.example.com |
mail__options__port |
465 |
mail__options__secure |
true |
mail__options__auth__user |
tu usuario SMTP |
mail__options__auth__pass |
tu contraseña SMTP |
mail__from |
"Nombre del blog" <noreply@example.com> |
Vuelve a desplegar el servicio ghost y después invita a alguien al equipo o regístrate como miembro con otra dirección para comprobar que llega el correo.
Algunos proveedores de servidores bloquean los puertos SMTP salientes, lo que se manifiesta como tiempos de espera agotados. Usa otro puerto que ofrezca tu proveedor de correo (como 2525) o pide al proveedor del servidor que lo desbloquee. Configura también SPF y DKIM para tu dominio según indique tu proveedor de correo; si no, los mensajes tienden a acabar en spam.
Unos ajustes antes de empezar a escribir
- Settings → General: título del sitio, descripción, zona horaria e idioma.
- Settings → Design: elige un tema o sube el tuyo; los temas se guardan en la carpeta de contenido.
- Settings → Membership: si los lectores pueden registrarse y si algunos artículos son solo para miembros.
- Settings → Code injection: un lugar para el script de analítica, como Umami o Plausible autoalojados.
Copias de seguridad
Ghost guarda sus datos en dos sitios: los artículos, los miembros y los ajustes en MySQL; las imágenes, los temas y los archivos subidos en el volumen /var/lib/ghost/content del servicio ghost. Haz copia de seguridad de ambos.
- Haz copia de seguridad de la base de datos cuando quieras desde la pestaña Backup & Restore del servicio mysql.
- La carpeta de contenido es un volumen: detén el proyecto mientras haces la copia y luego vuelve a iniciarlo.
La exportación propia de Ghost (en los ajustes del panel de administración) guarda los artículos y los ajustes en JSON, útil para pasar a otro Ghost, pero no incluye las imágenes. Para datos importantes, descarga una copia de seguridad para conservarla y restáurala una vez en un proyecto nuevo para comprobarla. Consulta Copias de seguridad y restauración.
Actualizaciones
La plantilla usa ghost:5-alpine, así que al volver a desplegar se descarga la última versión de Ghost 5. Antes, haz copia de seguridad de MySQL y de la carpeta de contenido y lee las notas de la versión. Las actualizaciones mayores pueden migrar la base de datos, y volver a la imagen anterior puede no deshacerlo; en ese caso, restaura la copia de seguridad previa a la actualización.
Preguntas frecuentes
¿Los enlaces del sitio apuntan a localhost o al dominio antiguo?
La variable url no coincide con la dirección que estás usando. Ponle la dirección completa y correcta y vuelve a desplegar.
¿Los miembros no reciben los correos de inicio de sesión?
Busca errores de correo en los registros del servicio ghost. Normalmente el puerto SMTP está bloqueado, el usuario o la contraseña son incorrectos, o el dominio de mail__from no está verificado en tu proveedor de correo.
¿Puedo migrar desde WordPress u otra plataforma? Ghost tiene herramientas y guías oficiales de migración para WordPress, Substack y otras. Las imágenes importadas van a la carpeta de contenido, así que inclúyela en tus copias de seguridad.
¿Ghost o WordPress? Para escribir y enviar newsletters con poco mantenimiento, elige Ghost; si necesitas muchos plugins, una tienda o páginas complejas, WordPress encaja mejor. Zenavo también tiene una plantilla de WordPress.
Empieza con la plantilla de Ghost: haz que coincidan primero el dominio y url, y después crea el administrador, configura el correo y haz copias de seguridad tanto de la base de datos como de la carpeta de contenido.
Esto es lo que leen los agentes de programación, en https://zenavo.app/es-ES/blog/self-host-ghost.md.
No se pudo cargar el Markdown. Ábrelo directamente: https://zenavo.app/es-ES/blog/self-host-ghost.md