안녕하세요 대무무입니다.
요즘 블로그의 글이 뜸했어요... 그 이유는.... 제가 팰월드에 빠져있기 때문이랍니다.
https://store.steampowered.com/app/1623730/Palworld/?l=koreana
요즘 열심히 즐기고 있는데요. 제가 원하는 설정대로 플레이 하고 싶어서 방법이 있나 찾아보다 개인이 서버를 구축해서 운영 가능하더라구요!
어떻게 사용하지?
혹시 Docker 로도 가능한가 검색했더니 이미 누가 image 를 공유하는 것을 확인했습니다.
여러 image 중 저는 요 이미지를 사용하여 docker container 를 운영중에 있습니다.
https://hub.docker.com/r/thijsvanloef/palworld-server-docker
https://github.com/thijsvanloef/palworld-server-docker
해당 링크를 참고하여 compose 파일을 만들었습니다.
services:
palworld:
image: thijsvanloef/palworld-server-docker:latest # Use the latest-arm64 tag for arm64 hosts
restart: unless-stopped
container_name: palworld-server
stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop
ports:
- 8211:8211/udp
- 27015:27015/udp
env_file:
- .env
volumes:
- ./data:/palworld/
이후 공유기에서 container 를 실행하는 호스트의 포트 8211, 27015 포트를 UDP 로 오픈하여 지인들과 함께 게임을 즐기고 있습니다.
여기서 평소와는 다른 방식이 1가지 적용된 것을 확인할 수 있습니다.
바로 env_file 입니다.
env_file 은 해당 컨테이너가 사용할 환경변수를 따로 파일로 빼서 해당 파일을 전달할 수 있는데요. 보통 리눅스에서 파일 이름 앞에 . 이 붙으면 숨김 파일입니다. 그래서 보통의 ls 명령어로도 표시가 되질 않죠.
.env 파일은 다음과 같이 생겼습니다.
TZ=Asia/Seoul
PLAYERS=32
PORT=8211
PUID=1000
PGID=1000
MULTITHREADING=true
COMMUNITY=false
PUBLIC_IP=[공유기에서 표시되는 공인 IP 입력하세요.]
PUBLIC_PORT=8211
SERVER_NAME=Palword-Server
SERVER_DESCRIPTION=Palworld-Dedicated-Server
SERVER_PASSWORD=[비공개방으로 설정하실 경우 암호를 입력해주세요.]
ADMIN_PASSWORD=[운영자가 게임 공지를 하고 싶은 경우 관리자 암호를 입력해주세요.]
UPDATE_ON_BOOT=true
RCON_ENABLED=true
RCON_PORT=25575
QUERY_PORT=27015
BACKUP_ENABLED=true
DELETE_OLD_BACKUPS=false
OLD_BACKUP_DAYS=30
BACKUP_CRON_EXPRESSION=0 0 * * *
AUTO_UPDATE_ENABLED=false
AUTO_UPDATE_CRON_EXPRESSION=0 * * * *
AUTO_UPDATE_WARN_MINUTES=30
AUTO_REBOOT_ENABLED=false
AUTO_REBOOT_WARN_MINUTES=5
AUTO_REBOOT_CRON_EXPRESSION=0 0 * * *
# 나머지 설정은 게임 수치들 입니다. 참고만 하시고 알맞게 조정하세요!
DIFFICULTY=None
DAYTIME_SPEEDRATE=0.500000
NIGHTTIME_SPEEDRATE=0.500000
EXP_RATE=4.000000
PAL_CAPTURE_RATE=4.000000
PAL_SPAWN_NUM_RATE=1.000000
PAL_DAMAGE_RATE_ATTACK=1.000000
PAL_DAMAGE_RATE_DEFENSE=1.000000
PLAYER_DAMAGE_RATE_ATTACK=4.000000
PLAYER_DAMAGE_RATE_DEFENSE=0.500000
PLAYER_STOMACH_DECREASE_RATE=0.500000
PLAYER_STAMINA_DECREASE_RATE=0.500000
PLAYER_AUTO_HP_REGEN_RATE=3.000000
PLAYER_AUTO_HP_REGEN_RATE_IN_SLEEP=5.000000
PAL_STOMACH_DECREASE_RATE=1.000000
PAL_STAMINA_DECREASE_RATE=0.100000
PAL_AUTO_HP_REGEN_RATE=1.000000
PAL_AUTO_HP_REGEN_RATE_IN_SLEEP=1.000000
BUILD_OBJECT_DAMAGE_RATE=1.000000
BUILD_OBJECT_DETERIORATION_DAMAGE_RATE=1.000000
COLLECTION_DROP_RATE=2.000000
COLLECTION_OBJECT_HP_RATE=1.000000
COLLECTION_OBJECT_RESPAWN_SPEED_RATE=0.500000
ENEMY_DROP_ITEM_RATE=2.000000
DEATH_PENALTY=All
ENABLE_PLAYER_TO_PLAYER_DAMAGE=False
ENABLE_FRIENDLY_FIRE=False
ENABLE_INVADER_ENEMY=True
ACTIVE_UNKO=False
ENABLE_AIM_ASSIST_PAD=True
ENABLE_AIM_ASSIST_KEYBOARD=False
DROP_ITEM_MAX_NUM=5000
DROP_ITEM_MAX_NUM_UNKO=100
BASE_CAMP_MAX_NUM=5
BASE_CAMP_WORKER_MAX_NUM=20
DROP_ITEM_ALIVE_MAX_HOURS=1.000000
AUTO_RESET_GUILD_NO_ONLINE_PLAYERS=False
AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS=72.00000
GUILD_PLAYER_MAX_NUM=20
PAL_EGG_DEFAULT_HATCHING_TIME=20.00000
WORK_SPEED_RATE=8.000000
IS_MULTIPLAY=True
IS_PVP=False
CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP=False
ENABLE_NON_LOGIN_PENALTY=False
ENABLE_FAST_TRAVEL=True
IS_START_LOCATION_SELECT_BY_MAP=True
EXIST_PLAYER_AFTER_LOGOUT=False
ENABLE_DEFENSE_OTHER_GUILD_PLAYER=False
COOP_PLAYER_MAX_NUM=8
REGION=
USEAUTH=True
BAN_LIST_URL=https://api.palworldgame.com/api/banlist.txt
요렇게 설정하고 다음 명령으로 container 를 시작하시면 됩니다.
# docker compose up -d
게임을 접속하여 전용 서버로 즐기시고 서버 주소와 암호 입력하셔서 게임을 즐기시면 됩니다!
'인프라' 카테고리의 다른 글
[인프라 / Docker] Slack 과 유사한 오픈 소스 협업 도구 Mattermost (0) | 2024.04.03 |
---|---|
[인프라 / Docker] Docker Container 통합 로그 뷰어 Dozzle (0) | 2024.01.10 |
[인프라 / Docker] MongoDB (with Replica-Set) (0) | 2024.01.08 |
[인프라 / Docker] 나만의 전자 도서관 Calibre-Web (1) | 2024.01.04 |
[인프라 / VPN] Tailscale 유사 Site-to-Site 설정(Subnet Router) (1) | 2024.01.03 |