services: db: image: postgres:17-alpine restart: unless-stopped # ports: # - 127.0.0.1:5432:5432 # only when testing from the outside healthcheck: test: ['CMD', 'pg_isready', '-U', "mc-authenticator", "minecraft_access"] timeout: 5s retries: 2 env_file: - ./env/postgres-secrets.env volumes: - "./data/postgres_data:/var/lib/postgresql/data" networks: - internal paper: image: "docker.io/eclipse-temurin:21-jre" restart: unless-stopped ports: - "127.0.0.1:25565:25565/tcp" # default mc - "127.0.0.1:25565:25565/udp" # default mc - "127.0.0.1:24454:24454/udp" # simple-voice-chat plugin # - "127.0.0.1:25575:25575/tcp" # RCON, only when testing from the outside volumes: - ./data/mc-server:/app working_dir: /app command: "java -Xms8192M -Xmx8192M -jar paper.jar nogui" stdin_open: true tty: true networks: - internet mc-authenticator: image: "minecraft-authenticator:latest" restart: unless-stopped env_file: - ./env/postgres-secrets.env - ./env/discord-secrets.env - ./env/minecraft-secrets.env - ./env/base.env volumes: - ./data/mc-server/whitelist.json:/home/python_user/app/whitelist.json:ro - ./config/mc-authenticator/mc-auth.config:/home/python_user/app/mc-auth.config:ro depends_on: - db - paper networks: - internal - internet networks: internet: enable_ipv6: true ipam: config: - subnet: fdf7:53f5:341e::/64 internal: internal: true