Files
app-catalog-felhom.eu/templates/ghost/docker-compose.yml
T
admin acbfafaad1 ghost: 6.53.0 -> 6.64.0 (proven on 9202, R-462)
Walked through the product's own guarded Update on scratch guest 9202 during the
twenty-eight drill, seeded and read back through the app's own front door.
Evidence: felhom.eu/documentation/audits/the-28-2026-09-22/apps/ghost/verdict.json
catalog_since -> 2026-09-22 (R-452).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-22 20:16:41 +02: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.64.0-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://127.0.0.1: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