Files
Void-Bastion/server/nakama/docker-compose.yml
T

102 lines
3.1 KiB
YAML

name: void-bastion-online
services:
postgres:
image: postgres:16-alpine
container_name: void-bastion-postgres
restart: unless-stopped
environment:
POSTGRES_DB: nakama
POSTGRES_USER: nakama
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- /mnt/user/appdata/void-bastion-online/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U nakama -d nakama"]
interval: 5s
timeout: 5s
retries: 12
networks:
- backend
security_opt:
- no-new-privileges:true
nakama:
image: registry.heroiclabs.com/heroiclabs/nakama:3.37.0
container_name: void-bastion-nakama
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
NAKAMA_SERVER_KEY: ${NAKAMA_SERVER_KEY}
NAKAMA_SESSION_KEY: ${NAKAMA_SESSION_KEY}
NAKAMA_REFRESH_KEY: ${NAKAMA_REFRESH_KEY}
NAKAMA_HTTP_KEY: ${NAKAMA_HTTP_KEY}
NAKAMA_CONSOLE_PASSWORD: ${NAKAMA_CONSOLE_PASSWORD}
NAKAMA_CONSOLE_USERNAME: ${NAKAMA_CONSOLE_USERNAME}
NAKAMA_CONSOLE_SIGNING_KEY: ${NAKAMA_CONSOLE_SIGNING_KEY}
entrypoint:
- /bin/sh
- -ec
- |
/nakama/nakama migrate up --database.address "nakama:$${POSTGRES_PASSWORD}@postgres:5432/nakama" &&
exec /nakama/nakama \
--name void-bastion \
--database.address "nakama:$${POSTGRES_PASSWORD}@postgres:5432/nakama" \
--logger.level INFO \
--session.token_expiry_sec 7200 \
--socket.server_key "$${NAKAMA_SERVER_KEY}" \
--session.encryption_key "$${NAKAMA_SESSION_KEY}" \
--session.refresh_encryption_key "$${NAKAMA_REFRESH_KEY}" \
--runtime.http_key "$${NAKAMA_HTTP_KEY}" \
--runtime.js_entrypoint "build/index.js" \
--console.username "$${NAKAMA_CONSOLE_USERNAME}" \
--console.signing_key "$${NAKAMA_CONSOLE_SIGNING_KEY}" \
--console.password "$${NAKAMA_CONSOLE_PASSWORD}"
volumes:
- /mnt/user/appdata/void-bastion-online/nakama:/nakama/data
ports:
- "7350:7350"
- "127.0.0.1:7351:7351"
healthcheck:
test: ["CMD", "/nakama/nakama", "healthcheck"]
interval: 10s
timeout: 5s
retries: 12
networks:
- backend
security_opt:
- no-new-privileges:true
postgres-backup:
image: postgres:16-alpine
container_name: void-bastion-postgres-backup
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
PGPASSWORD: ${POSTGRES_PASSWORD}
entrypoint:
- /bin/sh
- -ec
- |
while true; do
pg_dump -h postgres -U nakama -d nakama -Fc -f "/backups/nakama-$$(date +%Y%m%d-%H%M%S).dump"
find /backups -type f -name 'nakama-*.dump' -mtime +14 -delete
sleep 86400
done
volumes:
- /mnt/user/appdata/void-bastion-online/backups:/backups
networks:
- backend
security_opt:
- no-new-privileges:true
networks:
backend:
name: void-bastion-backend
driver: bridge