-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Story Summary
As a platform engineer, I want to create the ghost-compose template and static files in the OpenTofu module, so that the Docker Compose configuration can be deployed via Ignition at boot time.
✅ Acceptance Criteria
-
compose.yml.tftpltemplate created with env_file sourcing both.env.configand/var/mnt/storage/ghost-compose/.env.secrets -
env.config.tftpltemplate created with non-secret configuration variables -
caddy/Caddyfilestatic file created using{$VAR}syntax for runtime secret substitution -
caddy/snippets/ActivityPubstatic file created -
caddy/snippets/Loggingstatic file created -
caddy/snippets/SecurityHeadersstatic file created -
caddy/snippets/TrafficAnalyticsstatic file created -
mysql-init/create-databases.shstatic file created with executable permissions - All files placed under
opentofu/modules/vultr/instance/userdata/ghost-compose/
📝 Additional Context
- Design: Files should match upstream TryGhost/ghost-docker structure where applicable
- The Caddyfile must use
{$HEALTH_CHECK_TOKEN}instead of hardcoded token values - compose.yml must source two env files: local
.env.configand remote.env.secrets
📦 Definition of Ready
- Acceptance criteria defined
- No unresolved external dependencies
- Story is estimated
- Team has necessary skills and access
- Priority is clear
- Business value understood
✅ Definition of Done
- All acceptance criteria met
- Peer-reviewed
- Files syntactically valid (compose.yml, Caddyfile)
- No secrets in any created files