ProjectZomboid:DedicatedServer
renegademaster/zomboid-dedicated-server
- renegademaster/zomboid-dedicated-server - Docker Image | Docker Hub
- (서버) docker-compose 설정 - 프로젝트 좀보이드 마이너 갤러리
이 이미지는 "루트가 없는" 이미지이므로 root 사용자로 실행하면 안 됩니다. 서버를 실행하기 위한 최소 지침:
우선, 전용 폴더를 만든다.
두 개의 빈 폴더를 만든다.
그리고 ZomboidDedicatedServer
폴더에, 스팀에서 다운받은 "Project Zomboid Dedicated Server" 내용을 그대로 옮긴다.
ZomboidConfig
에는 아무것도 없어도 상관 없다. (최초 실행시 자동 생성)
renegademaster/zomboid-dedicated-server docker 이미지를 다운받고 실행한다:
# Pull the latest image:
docker pull renegademaster/zomboid-dedicated-server:latest
# Run the server (with bare minimum options):
docker run --detach \
--mount type=bind,source="$(pwd)/ZomboidDedicatedServer",target=/home/steam/ZomboidDedicatedServer \
--mount type=bind,source="$(pwd)/ZomboidConfig",target=/home/steam/Zomboid \
--publish 16261:16261/udp --publish 16262:16262/udp \
--name zomboid-server \
docker.io/renegademaster/zomboid-dedicated-server:latest
포트
서버에서 사용할 수 있는 포트는 총 3개이지만 반드시 2개만 필요합니다.
이름 | 기본 포트 | 설명 | 필수의 |
DEFAULT_PORT | 16261 | 연결을 수신하기 위해 서버에서 사용하는 포트입니다. | yes |
RCON_PORT | 27015 | RCON 연결/명령을 수신하기 위해 서버에서 사용하는 포트. | no |
UDP_PORT | 16262 | 클라이언트 연결을 용이하게 하기 위해 서버에서 사용하는 추가 포트입니다. | yes |
Optional environment variables
Argument | Description | Values | Default |
ADMIN_PASSWORD | Server Admin account password | [a-zA-Z0-9]+ | changeme |
ADMIN_USERNAME | Server Admin account username | [a-zA-Z0-9]+ | superuser |
BIND_IP | IP to bind the server to | 0.0.0.0 | 0.0.0.0 |
GAME_VERSION | Game version to serve | [a-zA-Z0-9_]+ | public |
GC_CONFIG | Specifices Java GC to use | [a-zA-Z0-9_]+ | ZGC |
MAP_NAMES | Map Names (e.g. North;South) | map1;map2;map3 | Muldraugh, KY |
MAX_RAM | Maximum amount of RAM to be used | ([0-9]+)m | 4096m |
STEAM_VAC | Use Steam VAC anti-cheat | (true|false) | true |
TZ | Set the timezone for the container | [A-Z]+ | UTC |
USE_STEAM | Create a Steam Server, or a Non-Steam Server | (true|false) | true |
Docker-Compose example
version: "3.8"
services:
zomboid-dedicated-server:
build:
context: .
dockerfile: docker/zomboid-dedicated-server.Dockerfile
image: "docker.io/renegademaster/zomboid-dedicated-server:latest"
container_name: zomboid-dedicated-server
restart: "no"
environment:
- "ADMIN_PASSWORD=changeme"
- "ADMIN_USERNAME=superuser"
- "AUTOSAVE_INTERVAL=15"
- "BIND_IP=0.0.0.0"
- "DEFAULT_PORT=16261"
- "GAME_VERSION=public"
- "GC_CONFIG=ZGC"
- "MAP_NAMES=Muldraugh, KY"
- "MAX_PLAYERS=16"
- "MAX_RAM=4096m"
- "MOD_NAMES="
- "MOD_WORKSHOP_IDS="
- "PAUSE_ON_EMPTY=true"
- "PUBLIC_SERVER=true"
- "RCON_PASSWORD=changeme_rcon"
- "RCON_PORT=27015"
- "SERVER_NAME=ZomboidServer"
- "SERVER_PASSWORD="
- "STEAM_VAC=true"
- "UDP_PORT=16262"
- "USE_STEAM=true"
- "TZ=UTC"
ports:
- target: 16261
published: 16261
protocol: udp
- target: 16262
published: 16262
protocol: udp
- target: 27015
published: 27015
protocol: tcp
volumes:
- ./ZomboidDedicatedServer:/home/steam/ZomboidDedicatedServer
- ./ZomboidConfig:/home/steam/Zomboid/
내가 사용한 스크립트
#!/usr/bin/env bash
MOD_NAMES="CombatText;FRUsedCarsNLF;FRUsedCarsNRN;FRUsedCars;FRUsedCarsFT;MinimalDisplayBars;modoptions;PlayersOnMap;fastkeys41;firearmmod;TheStar;"
WORKSHOP_ITEMS="1510950729;2004998206;2169435993;2184990011;2256623447;2286124931;2619072426;2732804047;"
docker run -d \
--mount type=bind,source="$(pwd)/server",target=/home/steam/ZomboidDedicatedServer \
--mount type=bind,source="$(pwd)/config",target=/home/steam/Zomboid \
--publish 16261:16261/udp \
--publish 16262:16262/udp \
--name zpserver \
-e "ADMIN_PASSWORD=yourpassword" \
-e "ADMIN_USERNAME=yourname" \
-e "AUTOSAVE_INTERVAL=15" \
-e "BIND_IP=0.0.0.0" \
-e "DEFAULT_PORT=16261" \
-e "GAME_VERSION=public" \
-e "GC_CONFIG=ZGC" \
-e "MAP_NAMES=Muldraugh, KY" \
-e "MAX_PLAYERS=8" \
-e "MAX_RAM=4096m" \
-e "MOD_NAMES=${MOD_NAMES}" \
-e "MOD_WORKSHOP_IDS=${WORKSHOP_ITEMS}" \
-e "PAUSE_ON_EMPTY=true" \
-e "PUBLIC_SERVER=true" \
-e "SERVER_NAME=yourZpServer" \
-e "SERVER_PASSWORD=0000" \
-e "STEAM_VAC=true" \
-e "UDP_PORT=16262" \
-e "USE_STEAM=true" \
-e "TZ=UTC" \
docker.io/renegademaster/zomboid-dedicated-server:latest
Mods
추가할 모드 목록은 Project Zomboid#Mods항목 참조.
server.ini파일의 두 변수를 수정하면 된다. Mods
와 WorkshopItems
이다.
# Enter the mod loading ID here. It can be found in \Steam\steamapps\workshop\modID\mods\modName\info.txt
Mods=
#...
# List Workshop Mod IDs for the server to download. Each must be separated by a semicolon. Example: WorkshopItems=514427485;513111049
WorkshopItems=
참고로 docker.io/renegademaster/zomboid-dedicated-server:latest
도커 이미지로 모드를 추가했다면 필요한 데이터는 자동으로 다운받아지므로 걱정하지 않아도 된다.
다른 플레이어가 서버에 접속하면 알아서 관련 파일이 다운받아진다.
WARNING |
단 서버에서 사용하지 않는 모드를 활성화하면 튕기므로 가급적 다른 모드는 비활성화 해야 한다 |
Examples
Mods=CombatText;FRUsedCarsNLF;FRUsedCarsNRN;FRUsedCars;FRUsedCarsFT;MinimalDisplayBars;modoptions;PlayersOnMap;fastkeys41;firearmmod;TheStar;
WorkshopItems=1510950729;2004998206;2169435993;2184990011;2256623447;2286124931;2619072426;2732804047;
참고로 지도를 적용하려면 먼저 적용된 순서로 지도에 반영되는듯(?) 하다.
기존 멜드로에다 레이븐크릭을 넣고 싶다면 다음과 같이 넣어야 한다:
See also
- Project Zomboid
- ProjectZomboid:DedicatedServer
- ProjectZomboid:ServerINI - server.ini
- ProjectZomboid:SendboxVars - server_SendboxVars.lua
- Blackhole:ProjectZomboid:History - 내가 친구들이랑 진행한 설정 및 관련 정보