refactor: move stack assets and wire in mailhog
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
services:
|
||||
docker-socket-proxy:
|
||||
image: ${DOCKER_SOCKET_PROXY_IMAGE}
|
||||
container_name: ${DOCKER_SOCKET_PROXY_NAME}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tsysdevstack-supportstack-demo-network
|
||||
environment:
|
||||
CONTAINERS: ${DOCKER_SOCKET_PROXY_CONTAINERS}
|
||||
IMAGES: ${DOCKER_SOCKET_PROXY_IMAGES}
|
||||
NETWORKS: ${DOCKER_SOCKET_PROXY_NETWORKS}
|
||||
VOLUMES: ${DOCKER_SOCKET_PROXY_VOLUMES}
|
||||
BUILD: ${DOCKER_SOCKET_PROXY_BUILD}
|
||||
MANIFEST: ${DOCKER_SOCKET_PROXY_MANIFEST}
|
||||
PLUGINS: ${DOCKER_SOCKET_PROXY_PLUGINS}
|
||||
VERSION: ${DOCKER_SOCKET_PROXY_VERSION}
|
||||
volumes:
|
||||
- ${DOCKER_SOCKET_PROXY_SOCKET_PATH}:${DOCKER_SOCKET_PROXY_SOCKET_PATH}
|
||||
mem_limit: ${DOCKER_SOCKET_PROXY_MEM_LIMIT}
|
||||
mem_reservation: ${DOCKER_SOCKET_PROXY_MEM_LIMIT}
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '${DOCKER_SOCKET_PROXY_CPU_LIMIT}'
|
||||
memory: ${DOCKER_SOCKET_PROXY_MEM_LIMIT}
|
||||
reservations:
|
||||
cpus: '${DOCKER_SOCKET_PROXY_CPU_LIMIT}'
|
||||
memory: ${DOCKER_SOCKET_PROXY_MEM_LIMIT}
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/"]
|
||||
interval: ${HEALTH_CHECK_INTERVAL}
|
||||
timeout: ${HEALTH_CHECK_TIMEOUT}
|
||||
start_period: ${HEALTH_CHECK_START_PERIOD}
|
||||
retries: ${HEALTH_CHECK_RETRIES}
|
||||
# Homepage integration labels for automatic discovery
|
||||
labels:
|
||||
homepage.group: "Support Stack"
|
||||
homepage.name: "Docker Socket Proxy"
|
||||
homepage.icon: "docker.png"
|
||||
homepage.href: "http://${BIND_ADDRESS}:${HOMEPAGE_PORT}"
|
||||
homepage.description: "Docker socket proxy for secure access"
|
||||
homepage.type: "docker"
|
||||
# NOTE: Docker-socket-proxy must run as root to configure HAProxy
|
||||
# user: "${TSYSDEVSTACK_UID}:${TSYSDEVSTACK_DOCKER_GID}" # Read-only access to Docker socket
|
||||
|
||||
networks:
|
||||
tsysdevstack-supportstack-demo-network:
|
||||
external: true
|
||||
name: ${TSYSDEVSTACK_NETWORK_NAME}
|
||||
@@ -0,0 +1,47 @@
|
||||
services:
|
||||
homepage:
|
||||
image: ${HOMEPAGE_IMAGE}
|
||||
container_name: ${HOMEPAGE_NAME}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tsysdevstack-supportstack-demo-network
|
||||
ports:
|
||||
- "${BIND_ADDRESS}:${HOMEPAGE_PORT}:3000"
|
||||
environment:
|
||||
- PORT=3000
|
||||
- HOMEPAGE_URL=http://${BIND_ADDRESS}:${HOMEPAGE_PORT}
|
||||
- BASE_URL=http://${BIND_ADDRESS}:${HOMEPAGE_PORT}
|
||||
- HOMEPAGE_ALLOWED_HOSTS=${BIND_ADDRESS}:${HOMEPAGE_PORT},localhost:${HOMEPAGE_PORT}
|
||||
volumes:
|
||||
- ${HOMEPAGE_CONFIG_PATH}:/app/config
|
||||
- ${DOCKER_SOCKET_PROXY_SOCKET_PATH}:${DOCKER_SOCKET_PROXY_SOCKET_PATH}:ro # For Docker integration
|
||||
mem_limit: ${HOMEPAGE_MEM_LIMIT}
|
||||
mem_reservation: ${HOMEPAGE_MEM_LIMIT}
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '${HOMEPAGE_CPU_LIMIT}'
|
||||
memory: ${HOMEPAGE_MEM_LIMIT}
|
||||
reservations:
|
||||
cpus: '${HOMEPAGE_CPU_LIMIT}'
|
||||
memory: ${HOMEPAGE_MEM_LIMIT}
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/api/health"]
|
||||
interval: ${HEALTH_CHECK_INTERVAL}
|
||||
timeout: ${HEALTH_CHECK_TIMEOUT}
|
||||
start_period: ${HOMEPAGE_STARTUP_TIMEOUT} # Longer start period for homepage
|
||||
retries: ${HEALTH_CHECK_RETRIES}
|
||||
# Homepage integration labels for automatic discovery
|
||||
labels:
|
||||
homepage.group: "Support Stack"
|
||||
homepage.name: "Homepage Dashboard"
|
||||
homepage.icon: "homepage.png"
|
||||
homepage.href: "http://${BIND_ADDRESS}:${HOMEPAGE_PORT}"
|
||||
homepage.description: "Homepage dashboard for Support Stack"
|
||||
homepage.type: "homepage"
|
||||
user: "${TSYSDEVSTACK_UID}:${TSYSDEVSTACK_DOCKER_GID}" # Direct access to Docker socket for discovery
|
||||
|
||||
networks:
|
||||
tsysdevstack-supportstack-demo-network:
|
||||
external: true
|
||||
name: ${TSYSDEVSTACK_NETWORK_NAME}
|
||||
@@ -0,0 +1,43 @@
|
||||
services:
|
||||
mailhog:
|
||||
image: ${MAILHOG_IMAGE}
|
||||
container_name: ${MAILHOG_NAME}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tsysdevstack-supportstack-demo-network
|
||||
ports:
|
||||
- "${BIND_ADDRESS}:${MAILHOG_SMTP_PORT}:1025"
|
||||
- "${BIND_ADDRESS}:${MAILHOG_UI_PORT}:8025"
|
||||
environment:
|
||||
- MH_HOSTNAME=mailhog
|
||||
- MH_UI_BIND_ADDR=0.0.0.0:8025
|
||||
- MH_SMTP_BIND_ADDR=0.0.0.0:1025
|
||||
mem_limit: ${MAILHOG_MEM_LIMIT}
|
||||
mem_reservation: ${MAILHOG_MEM_LIMIT}
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '${MAILHOG_CPU_LIMIT}'
|
||||
memory: ${MAILHOG_MEM_LIMIT}
|
||||
reservations:
|
||||
cpus: '${MAILHOG_CPU_LIMIT}'
|
||||
memory: ${MAILHOG_MEM_LIMIT}
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8025/"]
|
||||
interval: ${HEALTH_CHECK_INTERVAL}
|
||||
timeout: ${HEALTH_CHECK_TIMEOUT}
|
||||
start_period: ${HEALTH_CHECK_START_PERIOD}
|
||||
retries: ${HEALTH_CHECK_RETRIES}
|
||||
labels:
|
||||
homepage.group: "Support Stack"
|
||||
homepage.name: "Mailhog"
|
||||
homepage.icon: "mailhog.png"
|
||||
homepage.href: "http://${BIND_ADDRESS}:${MAILHOG_UI_PORT}"
|
||||
homepage.description: "Mailhog SMTP testing inbox"
|
||||
homepage.type: "mailhog"
|
||||
user: "${TSYSDEVSTACK_UID}:${TSYSDEVSTACK_GID}"
|
||||
|
||||
networks:
|
||||
tsysdevstack-supportstack-demo-network:
|
||||
external: true
|
||||
name: ${TSYSDEVSTACK_NETWORK_NAME}
|
||||
@@ -0,0 +1,49 @@
|
||||
services:
|
||||
wakaapi:
|
||||
image: ${WAKAAPI_IMAGE}
|
||||
container_name: ${WAKAAPI_NAME}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tsysdevstack-supportstack-demo-network
|
||||
ports:
|
||||
- "${BIND_ADDRESS}:${WAKAAPI_PORT}:3000"
|
||||
environment:
|
||||
- WAKAPI_PASSWORD_SALT=TSYSDevStackSupportStackDemoSalt12345678
|
||||
- WAKAPI_DB_TYPE=sqlite3
|
||||
- WAKAPI_DB_NAME=/data/wakapi.db
|
||||
- WAKAPI_PORT=3000
|
||||
- WAKAPI_PUBLIC_URL=http://${BIND_ADDRESS}:${WAKAAPI_PORT}
|
||||
- WAKAPI_ALLOW_SIGNUP=true
|
||||
- WAKAPI_WAKATIME_API_KEY=${WAKAAPI_WAKATIME_API_KEY:-""}
|
||||
tmpfs:
|
||||
- /data:rw,size=128m,uid=${TSYSDEVSTACK_UID},gid=${TSYSDEVSTACK_GID},mode=0750
|
||||
mem_limit: ${WAKAAPI_MEM_LIMIT}
|
||||
mem_reservation: ${WAKAAPI_MEM_LIMIT}
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '${WAKAAPI_CPU_LIMIT}'
|
||||
memory: ${WAKAAPI_MEM_LIMIT}
|
||||
reservations:
|
||||
cpus: '${WAKAAPI_CPU_LIMIT}'
|
||||
memory: ${WAKAAPI_MEM_LIMIT}
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/api"]
|
||||
interval: ${HEALTH_CHECK_INTERVAL}
|
||||
timeout: ${HEALTH_CHECK_TIMEOUT}
|
||||
start_period: ${WAKAAPI_INITIALIZATION_TIMEOUT} # Longer start period for wakaapi
|
||||
retries: ${HEALTH_CHECK_RETRIES}
|
||||
# Homepage integration labels for automatic discovery
|
||||
labels:
|
||||
homepage.group: "Development Tools"
|
||||
homepage.name: "WakaAPI"
|
||||
homepage.icon: "wakapi.png"
|
||||
homepage.href: "http://${BIND_ADDRESS}:${WAKAAPI_PORT}"
|
||||
homepage.description: "WakaTime API for coding metrics"
|
||||
homepage.type: "wakapi"
|
||||
user: "${TSYSDEVSTACK_UID}:${TSYSDEVSTACK_GID}" # Regular user access for non-Docker containers
|
||||
|
||||
networks:
|
||||
tsysdevstack-supportstack-demo-network:
|
||||
external: true
|
||||
name: ${TSYSDEVSTACK_NETWORK_NAME}
|
||||
Reference in New Issue
Block a user