Skip to content

[User Story] Create ghost-compose template and static files #84

@noahwhite

Description

@noahwhite

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.tftpl template created with env_file sourcing both .env.config and /var/mnt/storage/ghost-compose/.env.secrets
  • env.config.tftpl template created with non-secret configuration variables
  • caddy/Caddyfile static file created using {$VAR} syntax for runtime secret substitution
  • caddy/snippets/ActivityPub static file created
  • caddy/snippets/Logging static file created
  • caddy/snippets/SecurityHeaders static file created
  • caddy/snippets/TrafficAnalytics static file created
  • mysql-init/create-databases.sh static 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.config and 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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions