95 lines
2.9 KiB
YAML
95 lines
2.9 KiB
YAML
services:
|
|
traefik:
|
|
extends:
|
|
file: ${TEMPLATES_PATH}
|
|
service: default
|
|
image: traefik:v3.6.6
|
|
container_name: traefik
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
- "8079:8080"
|
|
networks:
|
|
- ip4net
|
|
environment:
|
|
TRAEFIK_EMAIL: ${EMAIL}
|
|
TRAEFIK_PUBLIC_DOMAIN: ${PUBLIC_DOMAIN}
|
|
TRAEFIK_MAIN_SERVER_NODE_IP: ${MAIN_SERVER_NODE_IP}
|
|
TRAEFIK_CROWDSEC_API_KEY: ${CROWDSEC_API_KEY}
|
|
volumes:
|
|
- "/var/log/traefik/:/var/log/traefik/"
|
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
- "${SERVICE_PATH}/traefik/letsencrypt:/letsencrypt"
|
|
- "${SERVICE_PATH}/traefik/config:/etc/traefik"
|
|
- "${SERVICE_PATH}/traefik/certs:/etc/certs"
|
|
- "${SERVICE_PATH}/traefik/html/ban.html:/ban.html"
|
|
- "${SERVICE_PATH}/traefik/html/captcha.html:/captcha.html"
|
|
labels:
|
|
# Traefik
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.traefik.service=api@internal"
|
|
- "traefik.http.routers.traefik.rule=Host(`traefik.${LOCAL_VPS_DOMAIN}`)"
|
|
- "traefik.http.routers.traefik.entrypoints=https"
|
|
- "traefik.http.routers.traefik.tls=true"
|
|
|
|
traefik-agent:
|
|
extends:
|
|
file: ${TEMPLATES_PATH}
|
|
service: default
|
|
image: hhftechnology/traefik-log-dashboard-agent:2.4.1
|
|
container_name: traefik-log-dashboard-agent
|
|
networks:
|
|
- ip4net
|
|
ports:
|
|
- "8078:5000"
|
|
volumes:
|
|
- "/var/log/traefik/:/logs:ro"
|
|
- "${SERVICE_PATH}/traefik/log-dashboard/positions:/data"
|
|
environment:
|
|
TRAEFIK_LOG_DASHBOARD_ACCESS_PATH: /logs/access.log
|
|
TRAEFIK_LOG_DASHBOARD_AUTH_TOKEN: ${TRAEFIK_DASHBOARD_TOKEN}
|
|
TRAEFIK_LOG_DASHBOARD_SYSTEM_MONITORING: true
|
|
TRAEFIK_LOG_DASHBOARD_LOG_FORMAT: json
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD",
|
|
"wget",
|
|
"--no-verbose",
|
|
"--tries=1",
|
|
"--spider",
|
|
"http://localhost:5000/api/logs/status",
|
|
]
|
|
interval: 2m
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
traefik-dashboard:
|
|
extends:
|
|
file: ${TEMPLATES_PATH}
|
|
service: default
|
|
image: hhftechnology/traefik-log-dashboard:2.4.1
|
|
container_name: traefik-log-dashboard
|
|
networks:
|
|
- ip4net
|
|
ports:
|
|
- "8077:3000"
|
|
volumes:
|
|
- "${SERVICE_PATH}/traefik/log-dashboard/dashboard:/app/data"
|
|
- "${SERVICE_PATH}/traefik/log-dashboard/positions:/data"
|
|
environment:
|
|
AGENT_API_URL: http://traefik-agent:5000
|
|
AGENT_API_TOKEN: ${TRAEFIK_DASHBOARD_TOKEN}
|
|
# Display Configuration
|
|
NEXT_PUBLIC_SHOW_DEMO_PAGE: false
|
|
depends_on:
|
|
traefik-agent:
|
|
condition: service_healthy
|
|
labels:
|
|
# traefik
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.traefik-log-dashboard.rule=Host(`traefik-dashboard.${LOCAL_VPS_DOMAIN}`)"
|
|
- "traefik.http.routers.traefik-log-dashboard.entrypoints=https"
|
|
- "traefik.http.routers.traefik-log-dashboard.tls=true"
|