Imagen Docker
Ghost en Docker. Anclada, endurecida, MySQL 8.
Ghost es una plataforma open source de publicación y newsletters usada por blogs, revistas y creadores independientes. Es un CMS moderno sobre Node.js, con un editor limpio, membresías y suscripciones de pago nativas, newsletters por correo y un API REST y de Admin completo.
¿Prefieres no correrla tú? Ghost administrado desde $5/mes
# Ghost en Docker, base fijada por digest docker pull ghcr.io/remarkablecloud/ghost:6.63.0-r2 docker compose up -d
- Build actual
6.63.0-r2, actualizada 10 sept 2026- Base
- Ghost 6 (Alpine), anclada por digest
- Qué trae
- Configuración por variables, pareja MySQL 8, healthcheck a prueba de proxy, un volumen de contenido
- Licencia de origen
- Ghost: MIT
La imagen
Qué agrega nuestra imagen.
Qué cambia frente a Ghost original, y por qué importa en producción.
Base anclada por digest
La imagen se construye desde ghost:alpine@sha256:04a476... (Ghost 6.63.0, Node 22, Alpine). Anclar por digest mantiene las reconstrucciones reproducibles: la base cambia solo cuando subimos el digest a propósito, nunca por accidente.
Healthcheck consciente del reverse proxy
Un HEALTHCHECK consulta el API del sitio admin de Ghost enviando X-Forwarded-Proto: https, así el chequeo recibe un 200 en vez de seguir la redirección de HTTP a HTTPS. Tu plataforma puede retener tráfico hasta que Ghost esté listo de verdad.
Configuración por variables de entorno
La url y cada ajuste database__* vienen de variables de entorno, así que una misma imagen corre sin cambios de una laptop a producción. Nada específico del entorno va horneado.
Tags inmutables y changelog publicado
Los tags siguen <version>-r<build> y nunca se mueven, y cada build queda registrado en el changelog que además alimenta las notificaciones de seguridad. El tag publicado actual es ghcr.io/remarkablecloud/ghost:6.63.0-r2.
Córrela tú, o no
La misma imagen en los dos casos.
Descárgala y córrela donde quieras, o deja que corramos Ghost por ti en un servidor administrado con actualizaciones, monitoreo y snapshots.
Corre Ghost por tu cuenta
- Descárgala de GHCR y córrela en cualquier host Docker
- La guía de abajo: compose, entorno, respaldos, actualizaciones
- Tú la actualizas, respaldas y vigilas
Ghost en un servidor administrado
- Instalada por nosotros desde esta misma imagen, $0 por la app
- Actualizaciones con un snapshot antes, monitoreo y firewall administrado
- Un servidor de 1 GB desde $5/mes facturado anual, con espacio para más apps
La guía
Córrela en producción.
Un resumen para producción, escrito por quienes construyen la imagen. La guía técnica completa, con compose, entorno, endurecimiento, respaldos y actualizaciones, está en inglés.
Resumen de producción
Dos contenedores: Ghost (Node 22 sobre Alpine, HTTP interno detrás de tu proxy TLS) y MySQL 8, el único motor soportado en producción por Ghost 6. Toda la configuración entra por variables (url, database__*), así que la misma imagen corre igual en cualquier entorno. El estado se reparte entre MySQL (posts, miembros, ajustes) y el volumen /var/lib/ghost/content (temas, imágenes): respalda ambos juntos. Para actualizar, cambia al tag -rN nuevo y recrea; los tags nunca se mueven.
La guía técnica completa (Compose, variables, hardening, respaldos y upgrades) está disponible en inglés: ver la guía completa.
Changelog
Cada build se fija por digest y queda registrado aquí, así ves qué cambió antes de descargar un tag nuevo.
-
6.63.0-r2Actual 10 sept 2026 Primera entrada del changelog. Cubre el build promovido actual,6.63.0-r2; un tag anterior6.63.0-r1de la misma versión de origen existe y queda reemplazado por este.
Ghost y otros nombres de productos son marcas de sus respectivos titulares. RemarkableCloud no está afiliada a ellos ni cuenta con su respaldo.
FAQ
Ghost en Docker: respuestas.
Respuestas cortas de quienes construyen y corren esta imagen.
¿Esta imagen incluye base de datos?
No. Ghost 6 requiere MySQL 8, que corre como contenedor aparte o servicio administrado. El compose independiente incluye un servicio MySQL 8 por conveniencia.
¿Puedo usar SQLite o MariaDB?
No para producción. Ghost 6 soporta solo MySQL 8. La imagen se configura para MySQL por las variables database__*.
¿Cómo funciona HTTPS si el contenedor solo sirve HTTP?
El TLS se termina en el reverse proxy (Traefik en la App Platform). Define url con tu dominio https:// para que Ghost emita enlaces correctos, y el proxy reenvía X-Forwarded-Proto: https.
¿Por qué el healthcheck envía un header X-Forwarded-Proto?
Cuando url es HTTPS, Ghost redirige con 301 las peticiones HTTP planas. El header le dice a Ghost que la petición original ya era HTTPS, así la sonda interna recibe un 200 y la plataforma puede confiar en la señal de salud.
¿Dónde se guardan mis datos?
Posts, miembros y ajustes viven en MySQL. Temas, imágenes y subidas viven en el volumen de contenido en /var/lib/ghost/content. Respalda ambos juntos.
Descárgala, o deja que la corramos.
La misma imagen corre Ghost en nuestros servidores administrados, con actualizaciones y monitoreo incluidos.