Skip to content

docs(plan): hetzner demo deploy — nginx-proxy + Let's Encrypt#49

Merged
bigin merged 1 commit into
masterfrom
docs/hetzner-demo-deploy-plan
May 15, 2026
Merged

docs(plan): hetzner demo deploy — nginx-proxy + Let's Encrypt#49
bigin merged 1 commit into
masterfrom
docs/hetzner-demo-deploy-plan

Conversation

@bigin
Copy link
Copy Markdown
Owner

@bigin bigin commented May 15, 2026

Captures the architecture decision to deploy the bundled Scriptor 2.0 demo image to the Hetzner box (already provisioned) under the new domain demos.scriptor-cms.dev, with TLS termination by nginx-proxy + acme-companion (Let's Encrypt HTTP-01).

Plan covers:

  • architecture diagram (host nginx-proxy + acme-companion + scriptor demo's bundled nginx + php-fpm sharing the proxy network)
  • DNS pre-requisites at IONOS (must be set BEFORE deploy so the HTTP-01 challenge resolves)
  • filesystem layout on the box (/opt/proxy + /opt/scriptor-demo)
  • both compose files: the new /opt/proxy/docker-compose.yml and the new docker/docker-compose.prod.yml override (which uses !reset [] to drop the local-dev port-publish from the bundled compose)
  • initial deploy procedure, smoke matrix, updates, backups, rollback
  • decisions log: why Let's Encrypt over the IONOS wildcard cert, why nginx-proxy over Caddy, why two separate stacks

Implementation lands in a follow-up PR (the docker-compose.prod.yml file + README update). This commit is plan-only.

Captures the architecture decision to deploy the bundled Scriptor
2.0 demo image to the Hetzner box (already provisioned) under the
new domain demos.scriptor-cms.dev, with TLS termination by
nginx-proxy + acme-companion (Let's Encrypt HTTP-01).

Plan covers:
  - architecture diagram (host nginx-proxy + acme-companion +
    scriptor demo's bundled nginx + php-fpm sharing the proxy
    network)
  - DNS pre-requisites at IONOS (must be set BEFORE deploy so
    the HTTP-01 challenge resolves)
  - filesystem layout on the box (/opt/proxy + /opt/scriptor-demo)
  - both compose files: the new /opt/proxy/docker-compose.yml and
    the new docker/docker-compose.prod.yml override (which uses
    `!reset []` to drop the local-dev port-publish from the
    bundled compose)
  - initial deploy procedure, smoke matrix, updates, backups,
    rollback
  - decisions log: why Let's Encrypt over the IONOS wildcard cert,
    why nginx-proxy over Caddy, why two separate stacks

Implementation lands in a follow-up PR (the docker-compose.prod.yml
file + README update). This commit is plan-only.
@bigin bigin merged commit ca4e0a3 into master May 15, 2026
@bigin bigin deleted the docs/hetzner-demo-deploy-plan branch May 15, 2026 06:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant