feat(demo): migrate 5 SelfStack services to demo stack (16→24 services)
Add Reactive Resume, Metrics, Kiwix, Resume Matcher, and Apple Health from the earlier SelfStack project. Rewrite Apple Health collector to use InfluxDB v2 with proper error handling. Update all tests, scripts, Homepage config, env template, and documentation for the expanded stack. New services: - Reactive Resume (4016) + Postgres/Minio/Chrome companions - Metrics (4021) - GitHub metrics visualization - Kiwix (4022) - offline wiki reader - Resume Matcher (4023) - AI resume screening - Apple Health (4024) - health data collector → InfluxDB v2 Also adds git policy to AGENTS.md: always commit and push automatically. 💘 Generated with Crush Assisted-by: GLM-5.1 via Crush <crush@charm.land>
This commit is contained in:
58
AGENTS.md
58
AGENTS.md
@@ -6,9 +6,15 @@ This repository contains a Docker Compose-based multi-service stack that provide
|
||||
|
||||
### Project Type
|
||||
- **Infrastructure as Code**: Docker Compose with shell orchestration
|
||||
- **Multi-Service Stack**: 16 services across 4 categories
|
||||
- **Multi-Service Stack**: 24 services across 5 categories
|
||||
- **Demo-First Architecture**: All configurations for demonstration purposes only
|
||||
|
||||
### Git Policy
|
||||
- **ALWAYS commit** after every logical unit of work — never ask permission
|
||||
- **ALWAYS push** after every commit — never ask permission
|
||||
- **Commit early, commit often** — small focused commits are preferred over large ones
|
||||
- **Never ask** "should I commit?" or "should I push?" — just do it
|
||||
|
||||
### Directory Structure
|
||||
```
|
||||
TSYSDevStack-SupportStack-LocalWorkstation/
|
||||
@@ -43,6 +49,11 @@ TSYSDevStack-SupportStack-LocalWorkstation/
|
||||
│ │ ├── tubearchivist/ # Tube Archivist configuration
|
||||
│ │ ├── wakapi/ # Wakapi configuration
|
||||
│ │ ├── mailhog/ # MailHog configuration
|
||||
│ │ ├── applehealth/ # Apple Health configuration
|
||||
│ │ ├── metrics/ # Metrics configuration
|
||||
│ │ ├── reactiveresume/ # Reactive Resume configuration
|
||||
│ │ ├── kiwix/ # Kiwix configuration
|
||||
│ │ ├── resumematcher/ # Resume Matcher configuration
|
||||
│ │ └── atuin/ # Atuin configuration
|
||||
│ └── docs/ # Additional documentation
|
||||
│ ├── service-guides/ # Service-specific guides
|
||||
@@ -125,13 +136,16 @@ docker run --rm -v "$(pwd):/workdir" hadolint/hadolint <path-to-dockerfile>
|
||||
- Pi-hole (4006) - DNS management with ad blocking
|
||||
- Dockhand (4007) - Web-based container management
|
||||
|
||||
2. **Monitoring & Observability** (ports 4008-4009)
|
||||
2. **Monitoring & Observability** (ports 4008-4009, 4021, 4024)
|
||||
- InfluxDB (4008) - Time series database for metrics
|
||||
- Grafana (4009) - Visualization platform
|
||||
- Metrics (4021) - GitHub metrics visualization
|
||||
- Apple Health (4024) - Health data collection
|
||||
|
||||
3. **Documentation & Diagramming** (ports 4010-4011)
|
||||
3. **Documentation & Diagramming** (ports 4010-4011, 4022)
|
||||
- Draw.io (4010) - Web-based diagramming application
|
||||
- Kroki (4011) - Diagrams as a service
|
||||
- Kiwix (4022) - Offline wiki reader
|
||||
|
||||
4. **Developer Tools** (ports 4000, 4012-4018)
|
||||
- Homepage (4000) - Central dashboard for service discovery
|
||||
@@ -142,7 +156,11 @@ docker run --rm -v "$(pwd):/workdir" hadolint/hadolint <path-to-dockerfile>
|
||||
- MailHog (4017 Web, 4019 SMTP) - Web and API based SMTP testing
|
||||
- Atuin (4018) - Magical shell history synchronization
|
||||
|
||||
5. **Companion Services** (internal only, no host ports)
|
||||
5. **Productivity** (ports 4016, 4023)
|
||||
- Reactive Resume (4016) - Resume builder
|
||||
- Resume Matcher (4023) - AI resume screening
|
||||
|
||||
6. **Companion Services** (internal only, no host ports)
|
||||
- ta-redis - Redis cache for Tube Archivist
|
||||
- ta-elasticsearch - Elasticsearch index for Tube Archivist
|
||||
|
||||
@@ -168,7 +186,7 @@ docker run --rm -v "$(pwd):/workdir" hadolint/hadolint <path-to-dockerfile>
|
||||
### Docker Labels (Service Discovery)
|
||||
```yaml
|
||||
labels:
|
||||
homepage.group: "Infrastructure" # Category
|
||||
homepage.group: "Infrastructure" # Category (Infrastructure|Monitoring|Documentation|Developer Tools|Productivity)
|
||||
homepage.name: "Service Display Name" # Human-readable name
|
||||
homepage.icon: "icon-name" # Icon identifier
|
||||
homepage.href: "http://localhost:PORT" # Access URL
|
||||
@@ -267,7 +285,7 @@ Before ANY file is created or modified:
|
||||
### Service Discovery Mechanism
|
||||
- **Homepage Labels**: Services automatically discovered via Docker labels
|
||||
- **No Manual Config**: Don't manually add services to Homepage configuration
|
||||
- **Group-Based**: Services organized by group (Infrastructure, Monitoring, Documentation, Developer Tools)
|
||||
- **Group-Based**: Services organized by group (Infrastructure, Monitoring, Documentation, Developer Tools, Productivity)
|
||||
- **Real-Time**: Homepage updates automatically as services start/stop
|
||||
|
||||
### FOSS Only Policy
|
||||
@@ -279,7 +297,7 @@ Before ANY file is created or modified:
|
||||
## Project-Specific Context
|
||||
|
||||
### Current State
|
||||
- **Demo Environment**: Fully configured with 16 services
|
||||
- **Demo Environment**: Fully configured with 24 services
|
||||
- **Production Environment**: Placeholder only, not yet implemented
|
||||
- **Documentation**: Comprehensive (AGENTS.md, PRD.md, README.md)
|
||||
- **Scripts**: Complete orchestration and testing scripts available
|
||||
@@ -344,10 +362,32 @@ WAKAPI_PORT=4015
|
||||
MAILHOG_PORT=4017
|
||||
MAILHOG_SMTP_PORT=4019
|
||||
ATUIN_PORT=4018
|
||||
REACTIVE_RESUME_PORT=4016
|
||||
RESUME_MINIO_PORT=4020
|
||||
METRICS_PORT=4021
|
||||
KIWIX_PORT=4022
|
||||
RESUME_MATCHER_PORT=4023
|
||||
APPLEHEALTH_PORT=4024
|
||||
|
||||
# Demo Credentials (NOT FOR PRODUCTION)
|
||||
DEMO_ADMIN_USER=admin
|
||||
DEMO_ADMIN_PASSWORD=demo_password
|
||||
|
||||
# Reactive Resume
|
||||
RESUME_POSTGRES_DB=reactive_resume
|
||||
RESUME_POSTGRES_USER=resume_user
|
||||
RESUME_POSTGRES_PASSWORD=demo_password
|
||||
RESUME_MINIO_USER=minio_user
|
||||
RESUME_MINIO_PASSWORD=demo_password
|
||||
RESUME_CHROME_TOKEN=demo_token
|
||||
RESUME_ACCESS_TOKEN_SECRET=demo_secret
|
||||
RESUME_REFRESH_TOKEN_SECRET=demo_secret
|
||||
|
||||
# Metrics
|
||||
METRICS_GITHUB_TOKEN=
|
||||
|
||||
# Apple Health
|
||||
APPLEHEALTH_INFLUXDB_BUCKET=applehealth
|
||||
```
|
||||
|
||||
## Key Files Reference
|
||||
@@ -390,5 +430,5 @@ DEMO_ADMIN_PASSWORD=demo_password
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2025-01-24
|
||||
**Version**: 1.0
|
||||
**Last Updated**: 2026-05-08
|
||||
**Version**: 2.0
|
||||
|
||||
Reference in New Issue
Block a user