194 lines
6.1 KiB
YAML
Executable File
194 lines
6.1 KiB
YAML
Executable File
networks:
|
|
core_public:
|
|
external: true
|
|
minecraft:
|
|
|
|
volumes:
|
|
mysql-data:
|
|
|
|
secrets:
|
|
minecraftrclone:
|
|
file: rclone.conf
|
|
netrc:
|
|
file: .netrc
|
|
|
|
services:
|
|
spigot:
|
|
image: 'ghcr.io/zekrotja/papermc-docker:zulu-23'
|
|
restart: unless-stopped
|
|
environment:
|
|
VERSION: "1.21.10"
|
|
BUILD: "latest"
|
|
CACHE_DOWNLOAD: "true"
|
|
XMS: 4G
|
|
XMX: 8G
|
|
MAX_AGE_BACKUP_FILES: 12d
|
|
PRE_START_BACKUP: "true"
|
|
POST_START_BACKUP: "false"
|
|
BACKUP_SUCCESS_SCRIPT: 'curl -X PUT --netrc-file /run/secrets/.netrc -H "Title: ✅ Minecraft Backup Successfull" "https://ntfy.zekro.de/minecraft_backups"'
|
|
BACKUP_FAILED_SCRIPT: 'curl -X PUT --netrc-file /run/secrets/.netrc -H "Title: ❌ Minecraft Backup Failed" -d "$$MESSAGE" "https://ntfy.zekro.de/minecraft_backups"'
|
|
DEBUG_MODE: "true"
|
|
ports:
|
|
- '24693:25565'
|
|
- '25575:25575' # RCON temporarily disabled because of security issues
|
|
- '24454:24454/udp' # voice chat
|
|
networks:
|
|
- "core_public"
|
|
- "minecraft"
|
|
volumes:
|
|
- './spigot/config:/etc/mcserver/config'
|
|
- './spigot/plugins:/etc/mcserver/plugins'
|
|
- './spigot/worlds:/etc/mcserver/worlds'
|
|
- './spigot/locals:/etc/mcserver/locals'
|
|
secrets:
|
|
- source: minecraftrclone
|
|
target: rcloneconfig
|
|
- source: netrc
|
|
target: .netrc
|
|
healthcheck:
|
|
test: >
|
|
/usr/bin/healthcheck -addr localhost:25565 -validateResponse
|
|
&& test "$(curl -o /dev/null -sLw "%{response_code}\n" http://127.0.0.1:8100)" -eq 200
|
|
start_period: 1m
|
|
start_interval: 5s
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: "10"
|
|
labels:
|
|
traefik.enable: "true"
|
|
traefik.http.routers.spigot.entrypoints: "https"
|
|
traefik.http.routers.spigot.tls: "true"
|
|
traefik.http.routers.spigot.tls.certresolver: "le"
|
|
traefik.http.routers.spigot.rule: "Host(`mc.zekro.de`)"
|
|
traefik.http.routers.spigot.priority: "100"
|
|
traefik.http.services.spigot.loadbalancer.server.port: "8100" # "8123"
|
|
|
|
caddy:
|
|
image: "caddy:latest"
|
|
restart: unless-stopped
|
|
volumes:
|
|
- "./caddy/www:/usr/share/caddy"
|
|
networks:
|
|
- "core_public"
|
|
- "minecraft"
|
|
labels:
|
|
traefik.enable: "true"
|
|
traefik.http.routers.caddy.entrypoints: "https"
|
|
traefik.http.routers.caddy.tls: "true"
|
|
traefik.http.routers.caddy.tls.certresolver: "le"
|
|
traefik.http.routers.caddy.rule: "Host(`mc.zekro.de`)"
|
|
traefik.http.routers.caddy.priority: "10"
|
|
|
|
spigot_staging:
|
|
image: 'ghcr.io/zekrotja/papermc-docker:zulu-23'
|
|
restart: unless-stopped
|
|
environment:
|
|
VERSION: "1.21.10"
|
|
BUILD: "latest"
|
|
CACHE_DOWNLOAD: "true"
|
|
DEBUG_MODE: "true"
|
|
XMS: 2G
|
|
XMX: 4G
|
|
MAX_AGE_BACKUP_FILES: 90d
|
|
# PRE_START_BACKUP: "true"
|
|
# POST_START_BACKUP: "false"
|
|
BACKUP_SUCCESS_SCRIPT: 'curl -X PUT --netrc-file /run/secrets/.netrc -H "Title: ✅ STAGING Minecraft Backup Successfull" "https://ntfy.zekro.de/minecraft_backups"'
|
|
BACKUP_FAILED_SCRIPT: 'curl -X PUT --netrc-file /run/secrets/.netrc -H "Title: ❌ STAGING Minecraft Backup Failed" -d "$$MESSAGE" "https://ntfy.zekro.de/minecraft_backups"'
|
|
ports:
|
|
- '24694:25565'
|
|
# - '25575:25575'
|
|
networks:
|
|
- "core_public"
|
|
- "minecraft"
|
|
volumes:
|
|
- './spigot_staging/config:/etc/mcserver/config'
|
|
- './spigot_staging/plugins:/etc/mcserver/plugins'
|
|
- './spigot_staging/worlds:/etc/mcserver/worlds'
|
|
- './spigot_staging/locals:/etc/mcserver/locals'
|
|
secrets:
|
|
- source: minecraftrclone
|
|
target: rcloneconfig
|
|
- source: netrc
|
|
target: .netrc
|
|
healthcheck:
|
|
test: >
|
|
/usr/bin/healthcheck -addr localhost:25565 -validateResponse
|
|
&& test "$(curl -o /dev/null -sLw "%{response_code}\n" http://127.0.0.1:8100)" -eq 200
|
|
start_period: 1m
|
|
start_interval: 5s
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: "10"
|
|
labels:
|
|
traefik.enable: "true"
|
|
traefik.http.routers.spigot_staging.entrypoints: "https"
|
|
traefik.http.routers.spigot_staging.tls: "true"
|
|
traefik.http.routers.spigot_staging.tls.certresolver: "le"
|
|
traefik.http.routers.spigot_staging.rule: "Host(`staging.mc.zekro.de`)"
|
|
traefik.http.routers.spigot_staging.priority: "100"
|
|
traefik.http.services.spigot_staging.loadbalancer.server.port: "8100" # "8123"
|
|
|
|
mysql:
|
|
image: "mariadb:latest"
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: "9dgLQmjji2NNVQAp"
|
|
volumes:
|
|
- "mysql-data:/var/lib/mysql"
|
|
- "./mysql/cfg:/etc/mysql"
|
|
- "/etc/localtime:/etc/localtime:ro"
|
|
restart: always
|
|
networks:
|
|
- "minecraft"
|
|
|
|
prometheus:
|
|
image: "prom/prometheus:latest"
|
|
command: "--web.enable-admin-api --config.file=/etc/prometheus/prometheus.yml"
|
|
ports:
|
|
- "18889:80"
|
|
expose:
|
|
- "9090"
|
|
volumes:
|
|
- "./prometheus/config:/etc/prometheus"
|
|
restart: always
|
|
networks:
|
|
- "minecraft"
|
|
labels:
|
|
com.centurylinklabs.watchtower.enable: "true"
|
|
|
|
portainer:
|
|
image: "portainer/portainer-ce:latest"
|
|
volumes:
|
|
- "./portainer:/data"
|
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
|
restart: always
|
|
networks:
|
|
- "core_public"
|
|
labels:
|
|
com.centurylinklabs.watchtower.enable: "true"
|
|
traefik.enable: "true"
|
|
traefik.http.routers.portainer.entrypoints: "https"
|
|
traefik.http.routers.portainer.tls: "true"
|
|
traefik.http.routers.portainer.tls.certresolver: "le"
|
|
traefik.http.routers.portainer.rule: "Host(`docker.mc.zekro.de`)"
|
|
traefik.http.services.portainer.loadbalancer.server.port: "9000"
|
|
|
|
grafana:
|
|
image: "grafana/grafana"
|
|
restart: unless-stopped
|
|
user: "root"
|
|
environment:
|
|
GF_SECURITY_ALLOW_EMBEDDING: "true"
|
|
volumes:
|
|
- "./grafana:/var/lib/grafana"
|
|
networks:
|
|
- "core_public"
|
|
- "minecraft"
|
|
labels:
|
|
com.centurylinklabs.watchtower.enable: "true"
|
|
traefik.enable: "true"
|
|
traefik.http.routers.grafana.entrypoints: "https"
|
|
traefik.http.routers.grafana.tls.certresolver: "le"
|
|
traefik.http.routers.grafana.tls: "true"
|
|
traefik.http.routers.grafana.rule: "Host(`grafana.mc.zekro.de`)"
|
|
|