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.
36 lines
979 B
Plaintext
36 lines
979 B
Plaintext
name: nextchair-${BUSINESS_SLUG}
|
|
|
|
# Generated by scripts/create-business.sh. Keep this file self-contained so
|
|
# Dockge can operate this business independently.
|
|
|
|
services:
|
|
nextchair-${BUSINESS_SLUG}:
|
|
image: ${NEXTCHAIR_IMAGE:-nextchair:latest}
|
|
container_name: nextchair-${BUSINESS_SLUG}
|
|
restart: unless-stopped
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
- nextchair-media-${BUSINESS_SLUG}:/app/storage/media
|
|
healthcheck:
|
|
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:
|
|
- nextchair-proxy
|
|
- nextchair-db
|
|
|
|
volumes:
|
|
nextchair-media-${BUSINESS_SLUG}:
|
|
name: nextchair-media-${BUSINESS_SLUG}
|
|
|
|
networks:
|
|
nextchair-proxy:
|
|
name: nextchair-proxy
|
|
external: true
|
|
nextchair-db:
|
|
name: nextchair-db
|
|
external: true
|