# ๐Ÿš€ TSYS Developer Support Stack [![Docker](https://img.shields.io/badge/Docker-Compose-blue?style=for-the-badge&logo=docker)](https://www.docker.com/) [![Homepage](https://img.shields.io/badge/Homepage-Dashboard-green?style=for-the-badge&logo=homepage)](https://gethomepage.dev/) [![Wakapi](https://img.shields.io/badge/Wakapi-Time%20Tracking-orange?style=for-the-badge&logo=timetrack)](https://wakapi.dev/) [![ArchiveBox](https://img.shields.io/badge/ArchiveBox-Web%20Archive-blue?style=for-the-badge&logo=archive)](https://archivebox.io/) [![MailHog](https://img.shields.io/badge/MailHog-Email%20Testing-green?style=for-the-badge&logo=email)](https://github.com/mailhog/MailHog) > **A comprehensive developer support services stack with automatic service discovery** ---
## ๐Ÿ“‹ Table of Contents - [๐ŸŒŸ Overview](#-overview) - [๐Ÿ—๏ธ Architecture](#๏ธ-architecture) - [โšก Quick Start](#-quick-start) - [๐Ÿ”ง Services](#-services) - [๐Ÿ“Š Service Access](#-service-access) - [๐Ÿ› ๏ธ Configuration](#๏ธ-configuration) - [๐Ÿ” Health Checks](#-health-checks) - [๐Ÿ“ Development](#-development) - [๐Ÿšจ Important Notes](#-important-notes) --- ## ๐ŸŒŸ Overview The TSYS Developer Support Stack provides a comprehensive suite of developer tools designed to enhance productivity and streamline development workflows. This demo-ready stack includes: - **๐Ÿ  Homepage** - A beautiful, customizable dashboard with automatic service discovery - **โฑ๏ธ Wakapi** - Self-hosted time tracking for developers - **๐Ÿ—„๏ธ ArchiveBox** - Web archiving solution for saving web content - **๐Ÿ“ง MailHog** - Email testing service for development - **๐Ÿณ Docker Socket Proxy** - Secure Docker API access - **๐Ÿ—„๏ธ PostgreSQL** - Reliable database backend (ready for additional services) - **๐Ÿ›ก๏ธ Pi-hole** - DNS-based ad blocking and network monitoring - **๐Ÿ“Š Portainer** - Web-based Docker container management - **๐Ÿ“ˆ InfluxDB** - Time series database for metrics storage - **๐Ÿ“Š Grafana** - Analytics and visualization platform - **๐ŸŽจ Draw.io** - Web-based diagramming and flowchart application - **๐Ÿ“ Kroki** - Service for converting text diagrams to images --- ## ๐Ÿ—๏ธ Architecture ```mermaid graph TB subgraph "TSYS Developer Support Stack" A[Homepage Dashboard
Port: 4000] C[Wakapi Time Tracking
Port: 4002] D[ArchiveBox
Port: 4003] F[MailHog
Port: 4005] G[Docker Socket Proxy
Port: 2375] H[PostgreSQL
Internal] I[Pi-hole
Port: 4006] J[Portainer
Port: 4007] K[InfluxDB
Port: 4008] L[Grafana
Port: 4009] M[Draw.io
Port: 4010] N[Kroki
Port: 4011] end A --> C A --> D A --> F A --> G A --> I A --> J A --> K A --> L A --> M A --> N subgraph "External Access" O[Developer Browser
192.168.3.6] end O --> A O --> C O --> D O --> F O --> I O --> J O --> K O --> L O --> M O --> N ``` --- ## โšก Quick Start ### ๐ŸŽฏ Prerequisites - [Docker](https://www.docker.com/) 20.10+ - [Docker Compose](https://docs.docker.com/compose/) 2.0+ - Git ### ๐Ÿš€ One-Command Deployment ```bash # Clone the repository git clone cd TSYSDevStack/Support # Start all services docker compose -f docker-compose-simple.yml up -d # Wait for services to be healthy (optional) docker compose -f docker-compose-simple.yml ps ``` That's it! ๐ŸŽ‰ All services will be available within 60 seconds. --- ## ๐Ÿ”ง Services | Service | Description | Port | Health Check | Status | |---------|-------------|------|--------------|--------| | **Homepage** | Developer dashboard with service discovery | `4000` | โœ… HTTP Check | ๐ŸŸข Active | | **Atuin** | Synced shell history database | `4001` | โœ… HTTP Check | ๐ŸŸข Active | | **Wakapi** | Time tracking for developers | `4002` | โœ… HTTP Check | ๐ŸŸข Active | | **ArchiveBox** | Web archiving solution | `4003` | โœ… HTTP Check | ๐ŸŸข Active | | | **Tube Archivist** | YouTube media archiving | `4004` | โœ… HTTP Check | ๐ŸŸก Starting | | | **MailHog** | Email testing service | `4005` | โœ… HTTP Check | ๐ŸŸข Active | | | **Docker Socket Proxy** | Secure Docker API access | `2375` | โœ… HTTP Check | ๐ŸŸก Starting | | | **PostgreSQL** | Database for Atuin | `5432` | โœ… DB Check | ๐ŸŸข Active | | | **Elasticsearch** | Search engine for Tube Archivist | `9200` | โœ… HTTP Check | ๐ŸŸข Active | | | **Pi-hole** | DNS management and network monitoring | `4006` | โœ… HTTP Check | ๐ŸŸข Active | | | **Portainer** | Web-based Docker container management | `4007` | โœ… HTTP Check | ๐ŸŸข Active | | | **InfluxDB** | Time series database for metrics | `4008` | โœ… HTTP Check | ๐ŸŸข Active | | | **Grafana** | Analytics and visualization platform | `4009` | โœ… HTTP Check | ๐ŸŸข Active | | | **Draw.io** | Web-based diagramming application | `4010` | โœ… HTTP Check | ๐ŸŸข Active | | | **Kroki** | Diagrams as a service | `4011` | โœ… HTTP Check | ๐ŸŸข Active | --- ## ๐Ÿ“Š Service Access ### ๐Ÿ  Homepage Dashboard ``` http://192.168.3.6:4000 ``` - **Features**: Service discovery, system monitoring, quick links - **Auto-discovery**: All services automatically detected via Docker labels - **Widgets**: Resource monitoring, search, datetime ### โฑ๏ธ Wakapi Time Tracking ``` http://192.168.3.6:4002 ``` ### ๐Ÿ—„๏ธ ArchiveBox Web Archiving ``` http://192.168.3.6:4003 ``` - **Features**: Save web pages, full-text search, tag organization - **Demo Mode**: Open access for testing web archiving - **Storage**: File-based archive with SQLite metadata ### ๐Ÿ“ง MailHog Email Testing ``` http://192.168.3.6:4005 ``` - **Features**: Web interface for email testing, SMTP capture - **SMTP Port**: 1025 for application testing - **Demo**: Open access for email development ### ๐Ÿ›ก๏ธ Pi-hole DNS Management ``` http://192.168.3.6:4006/admin/index.php ``` - **Features**: DNS-based ad blocking and network monitoring - **Demo Credentials**: admin / demo_password - **DNS Ports**: 53 (TCP/UDP) for DNS resolution ### ๐Ÿ“Š Portainer Container Management ``` http://192.168.3.6:4007 ``` - **Features**: Web-based Docker container management - **Demo Credentials**: admin / demo_password - **Capabilities**: Container lifecycle, image management, volumes ### ๐Ÿ“ˆ InfluxDB Time Series Database ``` http://192.168.3.6:4008 ``` - **Features**: High-performance time series data storage - **Demo Credentials**: admin / demo_password - **Organization**: tsysdemo, Bucket: demo_metrics ### ๐Ÿ“Š Grafana Analytics Platform ``` http://192.168.3.6:4009 ``` - **Features**: Analytics and visualization for time series data - **Demo Credentials**: admin / demo_password - **Data Source**: Pre-configured InfluxDB connection ### ๐ŸŽจ Draw.io Diagramming ``` http://192.168.3.6:4010 ``` - **Features**: Web-based diagramming and flowchart creation - **Export Options**: PNG, SVG, PDF, and more - **Demo Mode**: No authentication required ### ๐Ÿ“ Kroki Diagrams as a Service ``` http://192.168.3.6:4011 ``` - **Features**: Convert text diagrams to images - **Supported Formats**: PlantUML, Mermaid, GraphViz, and more - **API**: RESTful interface for diagram generation --- ## ๐Ÿ› ๏ธ Configuration ### ๐Ÿ“ Directory Structure ``` Support/ โ”œโ”€โ”€ docker-compose-simple.yml # Simplified orchestration file โ”œโ”€โ”€ demo.env # Environment configuration file (rename from demo.env if needed) โ”œโ”€โ”€ start-stack.sh # Startup script โ”œโ”€โ”€ test-stack.sh # Test suite โ”œโ”€โ”€ homepage/ โ”‚ โ””โ”€โ”€ config/ โ”‚ โ”œโ”€โ”€ settings.yaml # Homepage configuration โ”‚ โ”œโ”€โ”€ docker.yaml # Docker integration โ”‚ โ””โ”€โ”€ bookmarks.yaml # Quick links โ””โ”€โ”€ README.md # This file ``` ### ๐Ÿงช Environment Configuration The stack uses the `demo.env` file for configuration. To customize settings: 1. Review the default settings in `demo.env` 2. Make changes as needed (especially PUID, PGID, and passwords) 3. The startup scripts will use this file directly ### ๐Ÿ” Demo Credentials > โš ๏ธ **WARNING**: These are demo credentials only. Do not use in production! | Service | Username | Password | Database | |---------|----------|----------|----------| | PostgreSQL | `atuin` | `demo_password` | `atuin` | | Pi-hole | `admin` | `demo_password` | - | | Portainer | `admin` | `demo_password` | - | | InfluxDB | `admin` | `demo_password` | tsysdemo/demo_metrics | | Grafana | `admin` | `demo_password` | - | | Wakapi | - | - | SQLite | | ArchiveBox | - | - | SQLite | | Draw.io | - | - | - | | Kroki | - | - | - | --- ## ๐Ÿ” Health Checks All services include comprehensive health checks: ### ๐Ÿ“Š Check Service Status ```bash # View all services and their health docker-compose ps # Check logs for any service docker-compose logs # Monitor health in real-time watch docker-compose ps ``` ### ๐Ÿฉบ Health Check Details | Service | Check Type | Interval | Timeout | Retries | |---------|------------|----------|---------|---------| | Homepage | HTTP GET `/` | 30s | 10s | 3 | | Wakapi | HTTP GET `/` | 30s | 10s | 3 | | ArchiveBox | HTTP GET `/` | 30s | 10s | 3 | | MailHog | HTTP GET `/` | 30s | 10s | 3 | | Pi-hole | HTTP GET `/admin/index.php` | 30s | 10s | 3 | | Portainer | HTTP GET `/` | 30s | 10s | 3 | | InfluxDB | HTTP GET `/ping` | 30s | 10s | 3 | | Grafana | HTTP GET `/api/health` | 30s | 10s | 3 | | Draw.io | HTTP GET `/` | 30s | 10s | 3 | | Kroki | HTTP GET `/health` | 30s | 10s | 3 | | Docker Socket Proxy | HTTP GET `/` | 30s | 10s | 3 | | PostgreSQL | `pg_isready` | 30s | 10s | 3 | --- ## ๐Ÿ“ Development ### ๐Ÿ”ง Customization #### Adding New Services 1. Add service to `docker-compose.yml` 2. Add Homepage labels for auto-discovery 3. Update `homepage/config/docker.yaml` 4. Include health checks #### Modifying Homepage Edit files in `homepage/config/`: - `settings.yaml` - Main configuration - `docker.yaml` - Container monitoring - `bookmarks.yaml` - Quick links ### ๐Ÿ”„ Common Commands ```bash # Start all services docker compose -f docker-compose-simple.yml up -d # Stop all services docker compose -f docker-compose-simple.yml down # View logs docker compose -f docker-compose-simple.yml logs -f # Rebuild services docker compose -f docker-compose-simple.yml up -d --build # Clean up volumes (โš ๏ธ destroys data) docker compose -f docker-compose-simple.yml down -v ``` --- ## ๐Ÿšจ Important Notes ### โš ๏ธ Demo Environment - **Purpose**: Demonstration and testing only - **Data Persistence**: None! All data is stored in ephemeral Docker volumes that are destroyed when the stack is removed - **Security**: Hardcoded credentials, no encryption, bind mounts removed for security - **Network**: All services exposed to localhost only ### ๐Ÿ”’ Production Considerations For production deployment, consider: - ๐Ÿ” Secure credential management - ๐Ÿ”’ HTTPS/TLS encryption - ๐Ÿ›ก๏ธ Network isolation - ๐Ÿ’พ Persistent storage solutions - ๐Ÿ“Š Monitoring and alerting - ๐Ÿ”„ High availability - ๐Ÿ—‚๏ธ Backup strategies for important data ### ๐Ÿ› Troubleshooting | Issue | Solution | |-------|----------| | Services not starting | Check Docker daemon, verify ports | | Health checks failing | Review logs, check resource availability | | Cannot access services | Verify firewall, check port binding | | Data not persisting | Ensure volumes are properly mounted | --- ## ๐Ÿ“ž Support For issues and questions: 1. Check service logs: `docker-compose logs ` 2. Verify health status: `docker-compose ps` 3. Review configuration files 4. Check port availability ---
**๐ŸŽ‰ Happy Developing! ๐ŸŽ‰** *Built with โค๏ธ for the TSYS Development Team* --- [![GitHub](https://img.shields.io/badge/GitHub-Repository-black?style=for-the-badge&logo=github)](https://github.com/your-org/TSYSDevStack)