feat(demo): add complete TSYS developer support stack demo implementation

Add full demo environment with 13 services across 4 categories:
- Infrastructure: Homepage, Docker Socket Proxy, Pi-hole, Portainer
- Monitoring: InfluxDB, Grafana
- Documentation: Draw.io, Kroki
- Developer Tools: Atomic Tracker, ArchiveBox, Tube Archivist,
  Wakapi, MailHog, Atuin

Includes:
- Docker Compose templates with dynamic environment configuration
- Deployment orchestration scripts with user ID detection
- Comprehensive test suite (unit, integration, e2e)
- Pre-deployment validation with yamllint, shellcheck
- Full documentation (PRD, AGENTS, README)
- Service configurations for all components

All services configured for demo purposes with:
- Dynamic UID/GID mapping
- Docker socket proxy security
- Health checks and monitoring
- Service discovery via Homepage labels

Ports allocated 4000-4099 range with sequential assignment.

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
This commit is contained in:
2026-01-24 10:46:29 -05:00
parent c2d8b502cc
commit 937ec852eb
19 changed files with 4393 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
---
# TSYS Developer Support Stack - Grafana Dashboards Configuration
apiVersion: 1
providers:
- name: 'default'
orgId: 1
folder: ''
type: file
disableDeletion: false
updateIntervalSeconds: 10
allowUiUpdates: true
options:
path: /etc/grafana/provisioning/dashboards

View File

@@ -0,0 +1,20 @@
---
# TSYS Developer Support Stack - Grafana Datasources Configuration
apiVersion: 1
datasources:
- name: InfluxDB
type: influxdb
access: proxy
url: http://influxdb:8086
database: demo_metrics
user: demo_admin
password: demo_password
isDefault: true
jsonData:
version: Flux
organization: tsysdemo
defaultBucket: demo_metrics
tlsSkipVerify: true
secureJsonData:
token: demo_token_replace_in_production

View File

@@ -0,0 +1,34 @@
---
# TSYS Developer Support Stack - Homepage Configuration
# This file will be automatically generated by Homepage service discovery
providers:
openweathermap: openweathermapapikey
longshore: longshoreapikey
widgets:
- resources:
cpu: true
memory: true
disk: true
- search:
provider: duckduckgo
target: _blank
- datetime:
format:
dateStyle: long
timeStyle: short
hour12: true
bookmarks:
- Development:
- Github:
- abbr: GH
href: https://github.com/
- Docker Hub:
- abbr: DH
href: https://hub.docker.com/
- Documentation:
- TSYS Docs:
- abbr: TSYS
href: https://docs.tsys.dev/