Removed the demo business as its easier to just provision one manually.
This commit is contained in:
6 files changed
+32
-84
No files matched your search
@@ -1,55 +0,0 @@
|
||||
name: next-chair-demo-business
|
||||
|
||||
# One business's app container on the shared multi-business VPS setup —
|
||||
# see stacks/infra/compose.yaml for the shared MySQL/Caddy this attaches
|
||||
# to, and that file's header for the exact one-time setup steps
|
||||
# (create this business's database, copy .env.business.example, add a
|
||||
# Caddy site file) needed before this file can start.
|
||||
#
|
||||
# docker compose -f stacks/demo-business/compose.yaml --env-file stacks/demo-business/.env up -d
|
||||
#
|
||||
# `stacks/marios/compose.yaml` is the identical shape for another
|
||||
# business — this is also the shape the management UI (manager/)
|
||||
# generates for every new business it provisions.
|
||||
#
|
||||
# Uses the shared prebuilt image (see the repo root's README/Dockerfile —
|
||||
# `docker build -t nextchair-app:latest .` once per code update) rather
|
||||
# than building from source per business, so adding or updating a
|
||||
# business is just starting/recreating a container, not a rebuild.
|
||||
|
||||
services:
|
||||
next-chair-demo-business:
|
||||
image: nextchair-app:latest
|
||||
container_name: next-chair-demo-business
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
volumes:
|
||||
- next-chair-media-demo-business:/app/storage/media
|
||||
healthcheck:
|
||||
# No curl/wget in the node:22-alpine base image — a plain Node
|
||||
# request avoids adding a package just for this. See
|
||||
# src/app/api/health/route.ts: healthy as soon as the database is
|
||||
# reachable, even before installation completes.
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"node",
|
||||
"-e",
|
||||
"require('http').get('http://localhost:3000/api/health', r => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))",
|
||||
]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
start_period: 20s
|
||||
networks:
|
||||
- next-chair-edge
|
||||
|
||||
volumes:
|
||||
next-chair-media-demo-business:
|
||||
name: next-chair-media-demo-business
|
||||
|
||||
networks:
|
||||
next-chair-edge:
|
||||
name: next-chair-edge
|
||||
external: true
|
||||
@@ -6,11 +6,13 @@ name: next-chair-infra
|
||||
# one shared schema — see step 1 below).
|
||||
#
|
||||
# Lives in stacks/infra/, one directory per stack (each with its own
|
||||
# compose.yaml) — see stacks/demo-business/, stacks/marios/ for the same
|
||||
# shape per business, and stacks/manager/ for the management UI's own
|
||||
# stack. Deliberately separate from docker-compose.local.yaml at the
|
||||
# repo root, which is the single-business local/Docker-Desktop setup and
|
||||
# stays untouched by any of this.
|
||||
# compose.yaml) — see stacks/manager/ for the management UI's own stack.
|
||||
# Per-business stacks (stacks/<slug>/) are provisioned by the management
|
||||
# UI itself (see manager/src/lib/compose-template.ts for the shape it
|
||||
# generates) rather than kept as hand-written examples in this repo.
|
||||
# Deliberately separate from docker-compose.local.yaml at the repo root,
|
||||
# which is the single-business local/Docker-Desktop setup and stays
|
||||
# untouched by any of this.
|
||||
#
|
||||
# Stack management/provisioning is handled by NextChair Manager (see
|
||||
# manager/ at the repo root) — there is no separate stack-management UI
|
||||
@@ -31,9 +33,9 @@ name: next-chair-infra
|
||||
# initdb.d scripts only ever run once against an empty data
|
||||
# directory — so this one step is manual, run once per business:
|
||||
# docker exec -it next-chair-mysql mysql -uroot -p
|
||||
# CREATE DATABASE demo_business CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
|
||||
# CREATE USER 'demo_business'@'%' IDENTIFIED BY 'choose-a-strong-password';
|
||||
# GRANT ALL PRIVILEGES ON demo_business.* TO 'demo_business'@'%';
|
||||
# CREATE DATABASE example_business CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
|
||||
# CREATE USER 'example_business'@'%' IDENTIFIED BY 'choose-a-strong-password';
|
||||
# GRANT ALL PRIVILEGES ON example_business.* TO 'example_business'@'%';
|
||||
# FLUSH PRIVILEGES;
|
||||
# 2. Copy .env.business.example to stacks/<slug>/.env, fill it in with
|
||||
# the credentials just created and that business's domain.
|
||||
|
||||
@@ -2,8 +2,8 @@ Keeps this otherwise-empty directory tracked in git.
|
||||
|
||||
Each business gets its own <slug>.caddy file here, e.g.:
|
||||
|
||||
demo-business.example.com {
|
||||
reverse_proxy next-chair-demo-business:3000
|
||||
example-business.example.com {
|
||||
reverse_proxy next-chair-example-business:3000
|
||||
}
|
||||
|
||||
Generated by the management UI (manager/) when a business is added, or
|
||||
|
||||
Reference in new issue
Block a user