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,45 @@
#!/bin/bash
# Integration test: Service-to-service communication
set -euo pipefail
test_grafana_influxdb_integration() {
# Test Grafana can reach InfluxDB
# This would be executed after stack deployment
if docker exec tsysdevstack-supportstack-demo-grafana wget -q --spider http://influxdb:8086/ping; then
echo "PASS: Grafana-InfluxDB integration"
return 0
else
echo "FAIL: Grafana-InfluxDB integration"
return 1
fi
}
test_portainer_docker_integration() {
# Test Portainer can reach Docker socket
if docker exec tsysdevstack-supportstack-demo-portainer docker version >/dev/null 2>&1; then
echo "PASS: Portainer-Docker integration"
return 0
else
echo "FAIL: Portainer-Docker integration"
return 1
fi
}
test_homepage_discovery() {
# Test Homepage discovers all services
local discovered_services
discovered_services=$(curl -s http://localhost:4000 | grep -c "service" || echo "0")
if [[ $discovered_services -ge 14 ]]; then
echo "PASS: Homepage service discovery"
return 0
else
echo "FAIL: Homepage service discovery (found $discovered_services, expected >=14)"
return 1
fi
}
# Run integration tests
test_grafana_influxdb_integration
test_portainer_docker_integration
test_homepage_discovery