91 lines
2.4 KiB
YAML
91 lines
2.4 KiB
YAML
## You need add env variables from minepanel.env
|
|
|
|
services:
|
|
backend:
|
|
image: ketbom/minepanel-backend:latest
|
|
container_name: minepanel-backend
|
|
environment:
|
|
- NODE_ENV=production
|
|
- FRONTEND_URL=<frontend-url>
|
|
- JWT_SECRET=${JWT_SECRET}
|
|
- CLIENT_PASSWORD=${CLIENT_PASSWORD:-admin}
|
|
- CLIENT_USERNAME=${CLIENT_USERNAME:-admin}
|
|
- BASE_DIR=${BASE_DIR:-$PWD}
|
|
volumes:
|
|
- ${BASE_DIR:-$PWD}/servers:/app/servers
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- ${BASE_DIR:-$PWD}/data:/app/data
|
|
# - </path/to/backup>:/backups # Uncomment, and change to a real path, if you need backups
|
|
networks:
|
|
minepanel-network:
|
|
frontend:
|
|
ipv4_address: <ipv4-address>
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "node", "-e", "require('http').get('http://localhost:8091/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1))"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 15s
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '1.0'
|
|
memory: 1G
|
|
reservations:
|
|
cpus: '0.25'
|
|
memory: 256M
|
|
|
|
frontend:
|
|
image: ketbom/minepanel-frontend:latest
|
|
container_name: minepanel-frontend
|
|
environment:
|
|
- NEXT_PUBLIC_BACKEND_URL=<backend-url>
|
|
- NEXT_PUBLIC_DEFAULT_LANGUAGE=${NEXT_PUBLIC_DEFAULT_LANGUAGE:-en}
|
|
depends_on:
|
|
backend:
|
|
condition: service_healthy
|
|
networks:
|
|
minepanel-network:
|
|
frontend:
|
|
ipv4_address: <ipv4-address>
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000', (r) => process.exit(r.statusCode === 200 ? 0 : 1))"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 20s
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '0.5'
|
|
memory: 512M
|
|
reservations:
|
|
cpus: '0.1'
|
|
memory: 128M
|
|
|
|
mc-router:
|
|
image: itzg/mc-router:1.39.1
|
|
container_name: mc-router
|
|
ports:
|
|
- '25565:25565'
|
|
environment:
|
|
- ROUTES_CONFIG=/data/routes.json
|
|
- ROUTES_CONFIG_WATCH=true
|
|
volumes:
|
|
- ${BASE_DIR:-$PWD}/data/proxy:/data
|
|
networks:
|
|
minepanel-network:
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
frontend:
|
|
external: true
|
|
name: <network-name>
|
|
|
|
# DO NOT CHANGE THIS NETWORK!
|
|
minepanel-network:
|
|
name: minepanel-network
|
|
# DO NOT CHANGE THIS NETWORK!
|