Deployment Redesign
CI / ci (push) Canceled after 0s

Implemented the deployment redesign.
- Added Dockge-first-class stacks:
  - [stacks/infra/compose.yaml]
  - [stacks/caddy/compose.yaml]
- Added reusable business template: [deploy/business-compose.yaml.template]
- Added automated provisioning: [scripts/create-business.sh]
- Added per-business database/user, secrets, media volume, private networks, and Caddy route generation.
- Removed Traefik and manual business Compose files.
- Updated environment templates, .gitignore, and deployment documentation in [README.md]
Validation completed:
- Docker Compose config passed for infra, Caddy, and generated business stacks.
- Shell syntax validation passed.
- Registry image tags containing / were tested.
- No remaining Traefik or obsolete deployment references found.
This commit is contained in:
Stefan Lazic committed 2026-09-04 20:32:06 +01:00
1 parent 5472db320e
commit 764d087eac
13 files changed
+289 -380

No files matched your search

+5 -20
View File
@@ -1,20 +1,5 @@
# Shared infrastructure config — see docker-compose.infra.yaml for the
# full setup sequence. Copy this to `.env.infra` (kept out of git — see
# .gitignore) and fill in real values.
#
# docker network create next-chair-edge
# docker compose -f docker-compose.infra.yaml --env-file .env.infra up -d
# ── MySQL (shared server — one database per business, created manually
# per business, see docker-compose.infra.yaml's own header) ────────────
MYSQL_ROOT_PASSWORD="replace-me"
# Host-machine port MySQL is reachable on, e.g. for a GUI client over an
# SSH tunnel — every business's app container always reaches it via the
# shared Docker network and the service name `next-chair-mysql`, never
# this.
MYSQL_HOST_PORT=3306
# ── Traefik (reverse proxy + automatic TLS via Let's Encrypt) ──────────
# Let's Encrypt sends renewal/expiry notices here — use a real address
# you actually check, not a placeholder.
ACME_EMAIL="you@example.com"
# Shared infrastructure config. Copy to `.env.infra`; the real file is
# ignored by git and is also read by scripts/create-business.sh.
MYSQL_ROOT_PASSWORD="replace-with-a-long-random-password"
# Optional loopback-only port for an SSH tunnel or local admin tool.
MYSQL_HOST_PORT=127.0.0.1:3306