init v2
This commit is contained in:
183
docker-compose.yml
Executable file
183
docker-compose.yml
Executable file
@@ -0,0 +1,183 @@
|
||||
networks:
|
||||
core_public:
|
||||
external: true
|
||||
minecraft:
|
||||
|
||||
volumes:
|
||||
mysql-data:
|
||||
|
||||
secrets:
|
||||
minecraftrclone:
|
||||
file: rclone.conf
|
||||
|
||||
services:
|
||||
spigot:
|
||||
image: 'ghcr.io/zekrotja/papermc-docker'
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
VERSION: "1.21.4"
|
||||
BUILD: "latest"
|
||||
CACHE_DOWNLOAD: "true"
|
||||
XMS: 4G
|
||||
XMX: 8G
|
||||
MAX_AGE_BACKUP_FILES: 15d
|
||||
PRE_START_BACKUP: "true"
|
||||
POST_START_BACKUP: "false"
|
||||
BACKUP_SUCCESS_SCRIPT: 'curl -X PUT -u "minecraft_backups:dn89v573w490852348905b3c2458" "https://ntfy.zekro.de/minecraft_backups?title=✅ Minecraft Backup Successfull"'
|
||||
BACKUP_FAILED_SCRIPT: 'curl -X PUT -u "minecraft_backups:dn89v573w490852348905b3c2458" -d "$$MESSAGE" "https://ntfy.zekro.de/minecraft_backups?title=❌ Minecraft Backup Failed"'
|
||||
DEBUG_MODE: "true"
|
||||
ports:
|
||||
- '24693:25565'
|
||||
# - '25575:25575' # RCON temporarily disabled because of security issues
|
||||
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
|
||||
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'
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
VERSION: "1.21.4"
|
||||
BUILD: "latest"
|
||||
CACHE_DOWNLOAD: "true"
|
||||
XMS: 2G
|
||||
XMX: 4G
|
||||
# MAX_AGE_BACKUP_FILES: 15d
|
||||
# PRE_START_BACKUP: "true"
|
||||
# POST_START_BACKUP: "false"
|
||||
# BACKUP_SUCCESS_SCRIPT: 'curl -X PUT -u "minecraft_backups:dn89v573w490852348905b3c2458" "https://ntfy.zekro.de/minecraft_backups?title=✅ Minecraft Backup Successfull"'
|
||||
# BACKUP_FAILED_SCRIPT: 'curl -X PUT -u "minecraft_backups:dn89v573w490852348905b3c2458" -d "$$MESSAGE" "https://ntfy.zekro.de/minecraft_backups?title=❌ Minecraft Backup Failed"'
|
||||
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
|
||||
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: on-failure
|
||||
user: "root"
|
||||
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`)"
|
||||
|
||||
Reference in New Issue
Block a user