arc-frp/node/docker-compose.yml

154 lines
3.4 KiB
YAML
Raw Permalink Normal View History

2025-07-03 15:50:13 -04:00
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