feat: complete MVP implementation of SupportStack with docker-socket-proxy, homepage, and wakaapi
- Implemented docker-socket-proxy, homepage, and wakaapi components using TDD approach - Created environment settings, control script, and Docker Compose files - Added comprehensive test suite for all components - Configured shared Docker network and proper resource limits - Enabled homepage integration with proper labels - Fixed homepage host validation issues for VSCode remote access - Updated status documentation with progress tracking Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
services:
|
||||
docker-socket-proxy:
|
||||
image: tecnativa/docker-socket-proxy:0.1
|
||||
container_name: tsysdevstack-docker-socket-proxy
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tsysdevstack_supportstack_network
|
||||
environment:
|
||||
CONTAINERS: "1"
|
||||
IMAGES: "1"
|
||||
NETWORKS: "1"
|
||||
VOLUMES: "1"
|
||||
BUILD: "1"
|
||||
MANIFEST: "1"
|
||||
PLUGINS: "1"
|
||||
VERSION: "1"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
mem_limit: 128m
|
||||
mem_reservation: 128m
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '0.25'
|
||||
memory: 128M
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 128M
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
start_period: 30s
|
||||
retries: 3
|
||||
# Note: No ports exposed as per requirement for internal network only
|
||||
|
||||
networks:
|
||||
tsysdevstack_supportstack_network:
|
||||
external: true
|
||||
name: tsysdevstack_supportstack_network
|
||||
@@ -0,0 +1,44 @@
|
||||
services:
|
||||
homepage:
|
||||
image: gethomepage/homepage:latest
|
||||
container_name: tsysdevstack-homepage
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tsysdevstack_supportstack_network
|
||||
ports:
|
||||
- "127.0.0.1:4000:3000"
|
||||
environment:
|
||||
- PORT=3000
|
||||
- HOMEPAGE_URL=http://localhost:4000
|
||||
- BASE_URL=http://localhost:4000
|
||||
volumes:
|
||||
- ./config/homepage:/app/config
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro # For Docker integration
|
||||
mem_limit: 256m
|
||||
mem_reservation: 128m
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '0.5'
|
||||
memory: 256M
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 128M
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/api/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
start_period: 60s # Longer start period for homepage
|
||||
retries: 3
|
||||
# Homepage integration labels for automatic discovery
|
||||
labels:
|
||||
homepage.group: "Support Stack"
|
||||
homepage.name: "Homepage Dashboard"
|
||||
homepage.icon: "homepage.png"
|
||||
homepage.href: "http://127.0.0.1:4000"
|
||||
homepage.description: "Homepage dashboard for Support Stack"
|
||||
|
||||
networks:
|
||||
tsysdevstack_supportstack_network:
|
||||
external: true
|
||||
name: tsysdevstack_supportstack_network
|
||||
@@ -0,0 +1,51 @@
|
||||
services:
|
||||
wakaapi:
|
||||
image: n1try/wakapi:latest
|
||||
container_name: tsysdevstack-wakaapi
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tsysdevstack_supportstack_network
|
||||
ports:
|
||||
- "127.0.0.1:4001:3000"
|
||||
environment:
|
||||
- WAKAPI_PASSWORD_SALT=TSYSDevStackSupportStackDemoSalt12345678
|
||||
- WAKAPI_DB_TYPE=sqlite3
|
||||
- WAKAPI_DB_NAME=/data/wakapi.db
|
||||
- WAKAPI_PORT=3000
|
||||
- WAKAPI_PUBLIC_URL=http://127.0.0.1:4001
|
||||
- WAKAPI_ALLOW_SIGNUP=true
|
||||
- WAKAPI_WAKATIME_API_KEY=${WAKAAPI_WAKATIME_API_KEY:-""}
|
||||
volumes:
|
||||
- wakaapi_data:/data
|
||||
mem_limit: 192m
|
||||
mem_reservation: 128m
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '0.3'
|
||||
memory: 192M
|
||||
reservations:
|
||||
cpus: '0.2'
|
||||
memory: 128M
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/api"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
start_period: 60s # Longer start period for wakaapi
|
||||
retries: 5
|
||||
# Homepage integration labels for automatic discovery
|
||||
labels:
|
||||
homepage.group: "Development Tools"
|
||||
homepage.name: "WakaAPI"
|
||||
homepage.icon: "wakatime.png"
|
||||
homepage.href: "http://127.0.0.1:4001"
|
||||
homepage.description: "WakaTime API for coding metrics"
|
||||
|
||||
networks:
|
||||
tsysdevstack_supportstack_network:
|
||||
external: true
|
||||
name: tsysdevstack_supportstack_network
|
||||
volumes:
|
||||
wakaapi_data:
|
||||
name: wakaapi_data
|
||||
external: true
|
||||
Reference in New Issue
Block a user