pandorabox.io/docker-compose.yml

200 lines
4.2 KiB
YAML

version: "2"
services:
minetest:
image: buckaroobanzay/minetest:5.5.1-r1
restart: always
networks:
- terminator
- default
ports:
- "30000:30000/udp"
depends_on:
- "postgres"
volumes:
- "./data/minetest:/data"
- "./data/crashlogs:/crashlogs"
- "./data/minetest/debug.txt:/root/.minetest/debug.txt"
- "./config/metatool.cfg:/data/world/metatool.cfg"
- "./data/pandorabox-textures:/root/.minetest/textures/server"
- "postgres_socket:/var/run/postgresql"
logging:
options:
max-size: 50m
postgres:
image: postgres:13.2-alpine
restart: always
shm_size: '2gb'
environment:
POSTGRES_PASSWORD: enter
volumes:
- "./data/postgres:/var/lib/postgresql/data"
- "postgres_socket:/var/run/postgresql"
command:
- "postgres"
- "-c"
- "shared_buffers=4GB"
- "-c"
- "synchronous_commit=off"
logging:
options:
max-size: 50m
ui:
image: buckaroobanzay/mtui:1.5
environment:
WORLD_DIR: "/data/world"
COOKIE_DOMAIN: "pandorabox.io"
COOKIE_SECURE: "true"
COOKIE_PATH: "/ui"
volumes:
- "./data/minetest:/data"
- "postgres_socket:/var/run/postgresql"
auth-proxy:
image: minetestauth/minetest-auth-proxy:1.2
depends_on:
- "minetest"
restart: always
matterbridge:
image: 42wim/matterbridge:1.25.2
volumes:
- ./config/matterbridge.toml:/etc/matterbridge/matterbridge.toml
mapserver:
image: minetestmapserver/mapserver:latest
restart: always
depends_on:
- "postgres"
- "minetest"
volumes:
- "./data/minetest/world:/minetest"
- "postgres_socket:/var/run/postgresql"
working_dir: "/minetest"
logging:
options:
max-size: 50m
wiki:
image: buckaroobanzay/mediawiki:1.35-r1
restart: always
depends_on:
- "postgres"
- "auth-proxy"
volumes:
- "./data/wiki/images:/var/www/html/images"
- "./config/LocalSettings.php:/var/www/html/LocalSettings.php"
- "./data/wiki/LocalSettings.secrets.php:/var/www/html/LocalSettings.secrets.php"
logging:
options:
max-size: 50m
nginx:
image: nginx:1.23.1
networks:
- terminator
- default
restart: always
depends_on:
- highscore
- mapserver
- wiki
- kv
- nodered
- ui
labels:
- "traefik.enable=true"
- "traefik.docker.network=terminator"
- "traefik.http.routers.pandorabox.rule=Host(`pandorabox.io`)"
- "traefik.http.services.pandorabox.loadbalancer.server.port=80"
- "traefik.http.routers.pandorabox.entrypoints=websecure"
- "traefik.http.routers.pandorabox.tls.certresolver=default"
volumes:
- "./data/nginx/nginx.conf:/etc/nginx/nginx.conf:ro"
- "./data/nginx/htpasswd:/etc/nginx/htpasswd:ro"
- "./data/nginx/routes:/routes"
- "./data/nginx/html:/html"
- "./data/backup:/backup"
- "./data/crashlogs:/crashlogs"
logging:
options:
max-size: 50m
highscore:
image: buckaroobanzay/xphighscore:1.0
restart: always
volumes:
- "./data/minetest/world:/data/world:ro"
depends_on:
- postgres
environment:
PGHOST: postgres
PGUSER: postgres
PGDATABASE: postgres
PGPASSWORD: enter
PGPORT: 5432
manager:
image: buckaroobanzay/minetest_manager
depends_on:
- minetest
restart: always
volumes:
- "./data:/data"
environment:
- WORLDMODS_DIR=/data/minetest/world/worldmods
- WORLDMODS_BRANCH=master
- MEDIADIR=/data/nginx/html/media
- DEBUG_LOG=/data/minetest/debug.txt
- ERROR_LOG_OUTPUT=/data/nginx/html/error-log.txt
logging:
options:
max-size: 50m
autoupdate-textures:
image: buckaroobanzay/git_autoupdate
restart: always
volumes:
- "./data/pandorabox-textures:/git"
environment:
- GIT_DIR=/git
autoupdate-skins:
image: buckaroobanzay/git_autoupdate
restart: always
volumes:
- "./data/minetest/world/worldmods/skinsdb/textures:/git"
environment:
- GIT_DIR=/git
kv:
image: anapsix/webdis
restart: always
environment:
- LOCAL_REDIS=true
nodered:
image: nodered/node-red:2.2.2-12-minimal
depends_on:
- postgres
restart: always
environment:
- TZ=Europe/Zurich
volumes:
- "./data/nodered:/data"
- "./data/minetest:/minetest"
- "./config/nodered.js:/data/settings.js"
logging:
options:
max-size: 50m
volumes:
postgres_socket: {}
networks:
terminator:
external: true