Some checks failed
Build All Docker Images / changes (push) Has been cancelled
Build and Push App Docker Image / build (push) Has been cancelled
Build and Push Node Docker Image / build (push) Has been cancelled
Test and Lint / test-app (push) Has been cancelled
Test and Lint / test-node (push) Has been cancelled
Test and Lint / lint-dockerfiles (push) Has been cancelled
Test and Lint / security-scan (push) Has been cancelled
Build All Docker Images / build-app (push) Has been cancelled
Build All Docker Images / build-node (push) Has been cancelled
Build All Docker Images / summary (push) Has been cancelled
153 lines
3.4 KiB
YAML
153 lines
3.4 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# Home Server Agent
|
|
home-server-agent:
|
|
build: .
|
|
container_name: home-server-agent
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
- NODE_ENV=production
|
|
- API_TOKEN=${API_TOKEN:-your-secret-token-here}
|
|
- LOG_LEVEL=info
|
|
- FRPC_CONFIG_PATH=${FRPC_CONFIG_PATH:-/app/data/frpc.toml}
|
|
- FRPC_CONTAINER_NAME=${FRPC_CONTAINER_NAME:-frpc}
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- ./logs:/app/logs
|
|
- ./data:/app/data
|
|
networks:
|
|
- game-network
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- minecraft
|
|
- valheim
|
|
- terraria
|
|
|
|
# Minecraft Server
|
|
minecraft:
|
|
image: itzg/minecraft-server:latest
|
|
container_name: gameserver-minecraft
|
|
ports:
|
|
- "25565:25565"
|
|
environment:
|
|
EULA: "TRUE"
|
|
TYPE: "VANILLA"
|
|
MEMORY: "2G"
|
|
DIFFICULTY: "normal"
|
|
SPAWN_PROTECTION: "0"
|
|
MAX_PLAYERS: "20"
|
|
ONLINE_MODE: "false"
|
|
ALLOW_NETHER: "true"
|
|
ANNOUNCE_PLAYER_ACHIEVEMENTS: "true"
|
|
ENABLE_COMMAND_BLOCK: "true"
|
|
FORCE_GAMEMODE: "false"
|
|
GENERATE_STRUCTURES: "true"
|
|
HARDCORE: "false"
|
|
MAX_BUILD_HEIGHT: "256"
|
|
MAX_TICK_TIME: "60000"
|
|
SPAWN_ANIMALS: "true"
|
|
SPAWN_MONSTERS: "true"
|
|
SPAWN_NPCS: "true"
|
|
VIEW_DISTANCE: "10"
|
|
volumes:
|
|
- minecraft-data:/data
|
|
networks:
|
|
- game-network
|
|
restart: unless-stopped
|
|
labels:
|
|
- "game-server=minecraft"
|
|
|
|
# Valheim Server
|
|
valheim:
|
|
image: lloesche/valheim-server:latest
|
|
container_name: gameserver-valheim
|
|
ports:
|
|
- "2456:2456/udp"
|
|
- "2457:2457/udp"
|
|
environment:
|
|
SERVER_NAME: "My Valheim Server"
|
|
WORLD_NAME: "MyWorld"
|
|
SERVER_PASS: "secret123"
|
|
SERVER_PUBLIC: "false"
|
|
ADMINLIST_IDS: ""
|
|
BANNEDLIST_IDS: ""
|
|
PERMITTEDLIST_IDS: ""
|
|
volumes:
|
|
- valheim-data:/config
|
|
networks:
|
|
- game-network
|
|
restart: unless-stopped
|
|
labels:
|
|
- "game-server=valheim"
|
|
|
|
# Terraria Server
|
|
terraria:
|
|
image: ryshe/terraria:latest
|
|
container_name: gameserver-terraria
|
|
ports:
|
|
- "7777:7777"
|
|
environment:
|
|
WORLD: "MyWorld"
|
|
PASSWORD: "secret123"
|
|
MAXPLAYERS: "16"
|
|
DIFFICULTY: "1"
|
|
AUTOCREATE: "2"
|
|
BANLIST: ""
|
|
SECURE: "1"
|
|
LANGUAGE: "en-US"
|
|
volumes:
|
|
- terraria-data:/world
|
|
networks:
|
|
- game-network
|
|
restart: unless-stopped
|
|
labels:
|
|
- "game-server=terraria"
|
|
|
|
# Optional: Portainer for Docker management
|
|
portainer:
|
|
image: portainer/portainer-ce:latest
|
|
container_name: portainer
|
|
ports:
|
|
- "9000:9000"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- portainer-data:/data
|
|
networks:
|
|
- game-network
|
|
restart: unless-stopped
|
|
profiles:
|
|
- management
|
|
|
|
# Optional: Watchtower for automatic updates
|
|
watchtower:
|
|
image: containrrr/watchtower:latest
|
|
container_name: watchtower
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
environment:
|
|
- WATCHTOWER_CLEANUP=true
|
|
- WATCHTOWER_SCHEDULE=0 0 2 * * * # 2 AM daily
|
|
networks:
|
|
- game-network
|
|
restart: unless-stopped
|
|
profiles:
|
|
- management
|
|
|
|
volumes:
|
|
minecraft-data:
|
|
driver: local
|
|
valheim-data:
|
|
driver: local
|
|
terraria-data:
|
|
driver: local
|
|
portainer-data:
|
|
driver: local
|
|
|
|
networks:
|
|
game-network:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.20.0.0/16
|