Despliega Ghost en Pethost con un clic
Una plataforma de publicación para blogs y newsletters
Qué pasa
- Inicias sesión en Pethost o creas una cuenta, con una passkey, GitHub o Google.
- ¿Aún no tienes máquina? Eliges un plan y te preparamos una. El enlace espera en tu navegador hasta que esté lista.
- Nuevo proyecto se abre en la app, y haces clic en Crear proyecto.
- En un par de minutos la app está en marcha en su propia dirección con HTTPS. Sus secretos se generan al azar para ella, y sus datos entran en el backup de cada noche.
- Es un proyecto como cualquier otro: su compose.yaml, su .env, sus logs y un terminal están en el panel, y tu agente puede cambiarlo, volver a una versión anterior o restaurarlo.
Primeros pasos
Crea la cuenta de propietario en /ghost; el primer inicio tarda alrededor de un minuto. Hazlo enseguida: hasta entonces la página está abierta para cualquiera que tenga la dirección. El correo funcionará cuando agregues las variables mail__ de Ghost al .env del proyecto y vuelvas a desplegar.
Qué ejecuta
La plantilla es este compose.yaml y las variables que escribe en el .env del proyecto. Pethost ejecuta el archivo tal como está escrito.
services:
ghost:
image: ghost:6-alpine
restart: unless-stopped
depends_on:
db:
condition: service_healthy
# Mail settings (mail__transport, mail__options__host, ...) go into .env.
env_file: .env
environment:
url: ${URL}
server__host: 0.0.0.0
database__client: mysql
database__connection__host: db
database__connection__user: ghost
database__connection__password: ${DB_PASSWORD}
database__connection__database: ghost
# Ghost emails a code to every new device that signs in. Without mail
# that locks the owner out, so it is off. Remove this line once mail works.
security__staffDeviceVerification: "false"
volumes:
- content:/var/lib/ghost/content
db:
image: mysql:8.4
restart: unless-stopped
environment:
MYSQL_DATABASE: ghost
MYSQL_USER: ghost
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
volumes:
- db:/var/lib/mysql
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -p$$MYSQL_ROOT_PASSWORD --silent"]
interval: 5s
timeout: 5s
retries: 12
start_period: 60s
volumes:
content:
db: