From a6eb8a415cb16b7139fda7d667b504e0df3c63e0 Mon Sep 17 00:00:00 2001 From: rogalik27 Date: Wed, 24 Jun 2026 15:03:25 +0200 Subject: [PATCH] Phase 4/5: host demos via Apache container behind Caddy deploy/smb-demos: compose + runbook for the static demo host (httpd on the proxy network, routed by Caddy at demos.mivanchenko.de). Pending a DNS A record before Caddy can issue TLS. Co-Authored-By: Claude Opus 4.8 --- deploy/smb-demos/README.md | 14 ++++++++++++++ deploy/smb-demos/docker-compose.yml | 17 +++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 deploy/smb-demos/README.md create mode 100644 deploy/smb-demos/docker-compose.yml diff --git a/deploy/smb-demos/README.md b/deploy/smb-demos/README.md new file mode 100644 index 0000000..b61c484 --- /dev/null +++ b/deploy/smb-demos/README.md @@ -0,0 +1,14 @@ +# smb-demos — public demo hosting + +Apache container on the homelab host serving the two tier demos + chooser. + +- **Host path:** `/home/mivanchenko/smb-demos/` (compose) + `site/` (= `templates/landing/`) +- **Network:** external `proxy` (shared with Caddy); Caddy reaches it as `smb-demos:80` +- **Caddyfile block:** `demos.mivanchenko.de { reverse_proxy smb-demos:80\n encode zstd gzip }` +- **DNS:** needs an A record `demos.mivanchenko.de -> 188.193.49.3` (no wildcard) +- **Reload Caddy after Caddyfile edit:** `docker exec caddy caddy reload --config /etc/caddy/Caddyfile` + +Update the live site after editing `templates/landing/`: +`scp -r templates/landing/. n8n.mivanchenko.de:/home/mivanchenko/smb-demos/site/` + +Forms POST to `https://n8n.mivanchenko.de/webhook/lead-intake` (CORS allowedOrigins=*). diff --git a/deploy/smb-demos/docker-compose.yml b/deploy/smb-demos/docker-compose.yml new file mode 100644 index 0000000..05560c1 --- /dev/null +++ b/deploy/smb-demos/docker-compose.yml @@ -0,0 +1,17 @@ +# Static demo landing pages, served by Apache on the homelab host. +# Lives at /home/mivanchenko/smb-demos on the server; site/ is templates/landing/. +# Routed by Caddy: demos.mivanchenko.de { reverse_proxy smb-demos:80 } +# Requires a DNS A record demos.mivanchenko.de -> 188.193.49.3 (no wildcard DNS). +services: + smb-demos: + image: httpd:2.4-alpine + container_name: smb-demos + restart: always + volumes: + - ./site:/usr/local/apache2/htdocs:ro + networks: + - proxy + +networks: + proxy: + external: true