Files
app-catalog-felhom.eu/templates/ghost/docker-compose.yml
T
admin ac074b5176 fix(ghost): fix healthchecks for Ghost 6.x (301 redirects to external URL)
Ghost 6.x redirects all HTTP requests to the configured external URL.
- Docker healthcheck: use node http.get (accepts 301 as healthy)
- Controller probe: switch from api (expect 200) to http (any response)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 15:26:12 +01:00

48 lines
1.4 KiB
YAML

# Ghost - Professzionális blog és hírlevél platform
# Domain: ${SUBDOMAIN}.${DOMAIN}
# Database: None (file-based)
# RAM: ~150M (mem_limit: 512M) | Pi-compatible: No
#
# Environment variables:
# DOMAIN - Your domain (e.g., demo-felhom.eu)
services:
ghost:
image: ghost:6.19.2-alpine
container_name: ghost
restart: unless-stopped
environment:
- TZ=Europe/Budapest
- NODE_ENV=production
- url=https://${SUBDOMAIN}.${DOMAIN}
- database__client=sqlite3
- database__connection__filename=content/data/ghost.db
volumes:
- ghost_content:/var/lib/ghost/content
networks:
- traefik-public
deploy:
resources:
limits:
memory: 512M
healthcheck:
test: ["CMD", "node", "-e", "require('http').get('http://localhost:2368/',r=>{process.exit(r.statusCode<400?0:1)}).on('error',()=>process.exit(1))"]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
labels:
- "traefik.enable=true"
- "traefik.http.routers.ghost.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"
- "traefik.http.routers.ghost.entrypoints=websecure"
- "traefik.http.routers.ghost.tls=true"
- "traefik.http.routers.ghost.tls.certresolver=letsencrypt"
- "traefik.http.services.ghost.loadbalancer.server.port=2368"
volumes:
ghost_content:
networks:
traefik-public:
external: true