Files
wings/compose.yaml
2025-12-03 12:21:58 +01:00

129 lines
3.7 KiB
YAML

services:
wings:
image: ghcr.io/pterodactyl/wings
container_name: wing
env_file:
- .env
restart: unless-stopped
networks:
- proxy
- wings0
ports:
- "2022:2022"
tty: true
environment:
TZ: "Europe/Warsaw"
WINGS_UID: 988
WINGS_GID: 988
WINGS_USERNAME: pterodactyl
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "${TMP_DIR}:${TMP_DIR}"
- "${DATA_DIR}/etc/:/etc/pterodactyl/"
- "${DATA_DIR}/logs:/var/log/pterodactyl/"
- "${DATA_DIR}/lib:/var/lib/pterodactyl/"
- "${VOLUMES_DIR}:${VOLUMES_DIR}"
labels:
- "traefik.enable=true"
- "traefik.docker.network=wings_proxy"
- "traefik.http.routers.wings.rule=Host(`${DOMAIN}`)"
- "traefik.http.routers.wings.priority=1"
- "traefik.http.routers.wings.entrypoints=websecure"
- "traefik.http.routers.wings.tls.certresolver=http"
- "traefik.http.services.wings.loadbalancer.server.port=443"
- "com.centurylinklabs.watchtower.enable=true"
traefik:
image: traefik:latest
restart: unless-stopped
container_name: traefik
command:
# - "--api.insecure=true" # jeśli chcesz włączyć panel sterowania Traefikiem --- IGNORE ---
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.http.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.http.acme.email=${TRAEFIK_EMAIL}"
- "--certificatesresolvers.http.acme.storage=/letsencrypt/acme.json"
- "--log.level=INFO"
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--providers.docker.exposedbydefault=false"
- "--metrics.prometheus=true"
- "--metrics.prometheus.addrouterslabels=true"
labels:
- "com.centurylinklabs.watchtower.enable=true"
ports:
- "80:80"
- "443:443"
# - "8080:8080" # jeśli chcesz włączyć panel sterowania Traefikiem --- IGNORE ---
networks:
- proxy
- monitoring
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "${TRAEFIK_DIR}/letsencrypt:/letsencrypt"
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
restart: unless-stopped
# ports:
# - "8080:8080" # odkomentuj, jeśli chcesz mieć dostęp do interfejsu webowego cAdvisor
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "/:/rootfs:ro"
- "/var/run:/var/run:ro"
- "/sys:/sys:ro"
- "/var/lib/docker/:/var/lib/docker:ro"
- "/cgroup:/cgroup:ro"
- "/dev:/dev:ro"
- "/etc/machine-id:/etc/machine-id:ro"
labels:
- "com.centurylinklabs.watchtower.enable=true"
networks:
- monitoring
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
volumes:
- ${PROMETHEUS_DIR}/prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
networks:
- monitoring
- proxy
labels:
- "com.centurylinklabs.watchtower.enable=true"
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/localtime:/etc/localtime:ro
environment:
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_SCHEDULE=0 */12 * * *
network_mode: bridge
networks:
wings0:
name: wings0
driver: bridge
ipam:
config:
- subnet: "10.172.0.0/16"
driver_opts:
com.docker.network.bridge.name: wings0
proxy:
external: false
monitoring:
external: false