docs(demo): synchronize all documentation with 16-service stack
Fix all documentation to match the actual running stack. Every service count, port number, credential, network name, container name, and dependency is now accurate across all files. Key changes: - Remove all stale Portainer/portainer references (replaced by Dockhand) - Fix project name from tsysdevstack to kneldevstack everywhere - Fix volume name pattern (underscore not dash after project name) - Fix network names (add -network suffix, correct subnet in commands) - Fix Homepage category from Infrastructure to Developer Tools - Add companion services (ta-redis, ta-elasticsearch) to all service lists - Fix Dockhand dependency description (direct socket, not proxy) - Remove port 4005 from all host-facing health check loops and port tables - Fix broken commands (docker exec dockhand docker version, wrong volume globs) - Fix INFLUXDB_ADMIN_USER credential references from demo_admin to admin - Fix Grafana datasource user to match - Fix misleading "ports 4000-4018" range to explicit port list - Add Docker Socket Proxy internal-only notes where applicable - Update root AGENTS.md service categories to match compose labels 💘 Generated with Crush Assisted-by: GLM-5.1 via Crush <crush@charm.land>
This commit is contained in:
@@ -7,7 +7,7 @@ This document provides API endpoint information for all services in the stack.
|
||||
## Infrastructure Services APIs
|
||||
|
||||
### Docker Socket Proxy
|
||||
- **Base URL**: `http://localhost:4005`
|
||||
- **Base URL: http://docker-socket-proxy:2375 (internal only, not accessible from host)`
|
||||
- **API Version**: Docker Engine API
|
||||
- **Authentication**: None (restricted by proxy)
|
||||
- **Endpoints**:
|
||||
@@ -27,7 +27,7 @@ This document provides API endpoint information for all services in the stack.
|
||||
|
||||
### Dockhand
|
||||
- **Base URL**: `http://localhost:4007`
|
||||
- **Authentication**: Direct Docker API access
|
||||
- **Authentication**: Web UI with direct Docker socket access
|
||||
- **Features**:
|
||||
- Container lifecycle management
|
||||
- Compose stack orchestration
|
||||
@@ -156,10 +156,10 @@ This document provides API endpoint information for all services in the stack.
|
||||
### Docker Socket Proxy Example
|
||||
```bash
|
||||
# Get Docker version
|
||||
curl http://localhost:4005/version
|
||||
# curl http://localhost:4005/version (internal only)
|
||||
|
||||
# List containers
|
||||
curl http://localhost:4005/containers/json
|
||||
# curl http://localhost:4005/containers/json (internal only)
|
||||
```
|
||||
|
||||
### InfluxDB Example
|
||||
@@ -255,7 +255,7 @@ All services provide health check endpoints:
|
||||
### Testing APIs
|
||||
```bash
|
||||
# Test all health endpoints
|
||||
for port in 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4017 4018; do
|
||||
for port in 4000 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4017 4018; do
|
||||
echo "Testing port $port..."
|
||||
curl -f -s "http://localhost:$port/health" || \
|
||||
curl -f -s "http://localhost:$port/ping" || \
|
||||
|
||||
@@ -33,7 +33,7 @@ All services are accessible through the Homepage dashboard at http://localhost:4
|
||||
- **Homepage** (Port 4000): Central dashboard for service discovery
|
||||
- **Atomic Tracker** (Port 4012): Habit tracking and personal dashboard
|
||||
- **ArchiveBox** (Port 4013): Web archiving solution
|
||||
- **Tube Archivist** (Port 4014): YouTube video archiving
|
||||
- **Tube Archivist** (Port 4014): YouTube video archiving (requires internal ta-redis + ta-elasticsearch)
|
||||
- **Wakapi** (Port 4015): Open-source WakaTime alternative
|
||||
- **MailHog** (Port 4017): Web and API based SMTP testing
|
||||
- **Atuin** (Port 4018): Magical shell history synchronization
|
||||
|
||||
@@ -55,10 +55,10 @@ docker stats
|
||||
**Solution**:
|
||||
```bash
|
||||
# Check network exists
|
||||
docker network ls | grep tsysdevstack
|
||||
docker network ls | grep kneldevstack
|
||||
|
||||
# Recreate network
|
||||
docker network create tsysdevstack_supportstack-demo
|
||||
docker network create --subnet 192.168.3.0/24 --gateway 192.168.3.1 kneldevstack-supportstack-demo-network
|
||||
|
||||
# Restart stack
|
||||
docker compose down && docker compose up -d
|
||||
@@ -77,7 +77,7 @@ id
|
||||
cat demo.env | grep -E "(UID|GID)"
|
||||
|
||||
# Fix volume permissions
|
||||
sudo chown -R $(id -u):$(id -g) /var/lib/docker/volumes/tsysdevstack_*
|
||||
sudo chown -R $(id -u):$(id -g) /var/lib/docker/volumes/kneldevstack-supportstack-demo_*
|
||||
```
|
||||
|
||||
#### Issue: Docker group access
|
||||
@@ -98,13 +98,13 @@ newgrp docker
|
||||
**Solution**:
|
||||
```bash
|
||||
# Check Pi-hole status
|
||||
docker exec tsysdevstack-supportstack-demo-pihole pihole status
|
||||
docker exec kneldevstack-supportstack-demo-pihole pihole status
|
||||
|
||||
# Test DNS resolution
|
||||
nslookup google.com localhost
|
||||
|
||||
# Restart DNS service
|
||||
docker exec tsysdevstack-supportstack-demo-pihole pihole restartdns
|
||||
docker exec kneldevstack-supportstack-demo-pihole pihole restartdns
|
||||
```
|
||||
|
||||
#### Grafana Data Source Connection
|
||||
@@ -128,8 +128,8 @@ docker compose logs grafana
|
||||
# Check Dockhand logs
|
||||
docker compose logs dockhand
|
||||
|
||||
# Verify Docker socket access
|
||||
docker exec tsysdevstack-supportstack-demo-dockhand docker version
|
||||
# Verify Docker socket access (check socket is mounted)
|
||||
docker inspect kneldevstack-supportstack-demo-dockhand --format '{{.Mounts}}' | grep docker.sock
|
||||
|
||||
# Restart Dockhand
|
||||
docker compose restart dockhand
|
||||
@@ -198,13 +198,13 @@ docker stats
|
||||
|
||||
# Network info
|
||||
docker network ls
|
||||
docker network inspect tsysdevstack_supportstack-demo
|
||||
docker network inspect kneldevstack-supportstack-demo
|
||||
```
|
||||
|
||||
### Health Checks
|
||||
```bash
|
||||
# Test all endpoints
|
||||
for port in 4000 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4017 4018; do
|
||||
for port in 4000 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4017 4018; do
|
||||
curl -f -s --max-time 5 "http://localhost:$port" && echo "Port $port: OK" || echo "Port $port: FAIL"
|
||||
done
|
||||
```
|
||||
@@ -262,11 +262,10 @@ docker system prune -f
|
||||
- User must be in docker group
|
||||
|
||||
### Port Requirements
|
||||
All ports 4000-4018 must be available:
|
||||
The following host ports must be available (not a continuous range):
|
||||
- 4000: Homepage
|
||||
- 4005: Docker Socket Proxy
|
||||
- 4006: Pi-hole
|
||||
- 4007: Portainer
|
||||
- 4007: Dockhand
|
||||
- 4008: InfluxDB
|
||||
- 4009: Grafana
|
||||
- 4010: Draw.io
|
||||
@@ -278,6 +277,8 @@ All ports 4000-4018 must be available:
|
||||
- 4017: MailHog
|
||||
- 4018: Atuin
|
||||
|
||||
Note: Docker Socket Proxy (4005), Redis, and Elasticsearch are internal-only and do not require host ports.
|
||||
|
||||
## Contact and Support
|
||||
|
||||
If issues persist after trying these solutions:
|
||||
|
||||
Reference in New Issue
Block a user