안녕하세요 대무무입니다.
요즘 블로그의 글이 뜸했어요... 그 이유는.... 제가 팰월드에 빠져있기 때문이랍니다.
https://store.steampowered.com/app/1623730/Palworld/?l=koreana
Palworld on Steam
Fight, farm, build and work alongside mysterious creatures called "Pals" in this completely new multiplayer, open world survival and crafting game!
store.steampowered.com
요즘 열심히 즐기고 있는데요. 제가 원하는 설정대로 플레이 하고 싶어서 방법이 있나 찾아보다 개인이 서버를 구축해서 운영 가능하더라구요!
어떻게 사용하지?
혹시 Docker 로도 가능한가 검색했더니 이미 누가 image 를 공유하는 것을 확인했습니다.
여러 image 중 저는 요 이미지를 사용하여 docker container 를 운영중에 있습니다.
https://hub.docker.com/r/thijsvanloef/palworld-server-docker
Docker
hub.docker.com
https://github.com/thijsvanloef/palworld-server-docker
GitHub - thijsvanloef/palworld-server-docker: A Docker Container to easily run a Palworld dedicated server.
A Docker Container to easily run a Palworld dedicated server. - GitHub - thijsvanloef/palworld-server-docker: A Docker Container to easily run a Palworld dedicated server.
github.com
해당 링크를 참고하여 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 |