팰월드 서버 직접 만들기 1탄 - 리눅스에 Docker로 서버 열기
작성일 2026-07-13 · SameOS Tools
팰월드 정식 출시를 기념해 친구 두세 명과 같이 할 전용 서버(호스팅 업체를 빌리지 않고 직접 운영하는 멀티플레이 서버)를 집 리눅스 서버에 열었습니다. 호스팅을 빌리면 월 만 원 이상이 나가지만, 이미 돌고 있는 리눅스 머신이 있다면 공짜입니다. 실제 운영 경험을 시리즈로 나눠 정리합니다 - 1탄은 서버를 띄워 친구가 접속하는 데까지, 2탄은 저장이 날아가는 함정과 백업, 3·4탄은 브라우저 관리 페이지 만들기입니다.
준비물과 사양
팰월드 전용 서버는 메모리를 많이 먹습니다. 공식 권장은 16GB이고, 소수 인원이면 8GB로도 시작은 되지만 오래 켜둘수록 사용량이 계속 늘어나 정기 재시작을 전제로 잡는 것이 좋습니다. CPU는 4코어면 충분했습니다. 소프트웨어는 Docker(프로그램을 격리된 상자에 담아 실행하는 도구)와 compose 플러그인만 있으면 됩니다. 커뮤니티에서 관리하는 팰월드 서버 이미지를 쓰면 스팀 서버 설치가 전부 자동으로 됩니다.
Docker 설치 - 명령어 몇 줄이면 됩니다
서버에 Docker가 아직 없다면 먼저 설치합니다. SSH(원격 서버에 접속해 명령을 입력하는 통로)로 서버에 들어가 아래 명령을 순서대로 입력하면 됩니다. 갓 설치한 서버라면 apt(우분투·데비안의 프로그램 설치 관리자) 목록 갱신부터 시작하세요 - curl 같은 기본 도구가 아직 없는 경우가 있습니다. 버전 확인까지 되면 팰월드용 작업 폴더를 하나 만들어 둡니다.
# 0) 새 서버라면 먼저 - 패키지 목록 갱신과 기본 도구 설치
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl
# 1) Docker 공식 설치 스크립트 (우분투·데비안·라즈베리파이 OS 등)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 2) 설치 확인 - 버전이 나오면 성공 (compose 플러그인도 함께 설치됨)
docker --version
docker compose version
# 3) (선택) sudo 없이 docker 명령을 쓰려면 - 재로그인 후 적용
sudo usermod -aG docker $USER
# 4) 팰월드 서버 작업 폴더 만들기
mkdir -p ~/palworld && cd ~/palworld
compose 구성 파일
아래 내용을 서버의 작업 폴더에 compose.yaml로 저장하고, 비밀번호 두 개는 .env 파일(비밀값만 따로 모아 두는 설정 파일)에 적은 뒤 터미널에서 docker compose up -d 를 실행하면 끝입니다. 핵심은 포트 두 개의 취급 차이입니다. 게임 접속 포트 8211은 외부에 공개하고, 관리용 REST API(웹 주소 호출로 서버에 명령을 내리는 창구) 포트 8212는 절대 외부에 노출하면 안 됩니다 - 비밀번호 하나로 서버 종료까지 가능하기 때문입니다. 127.0.0.1(그 컴퓨터 자신만 접근할 수 있는 내부 주소)에 묶어 두면 안전합니다.
# compose.yaml
services:
palworld:
image: thijsvanloef/palworld-server-docker:latest
# 운영이 안정되면 latest 대신 검증한 버전 태그로 고정하는 것을 권장
container_name: palworld # 이름 고정 - 뒤 시리즈의 docker 명령에서 사용
restart: unless-stopped # 크래시 시 자동 재기동, 수동 stop은 유지
stop_grace_period: 30s
ports:
- "8211:8211/udp" # 게임 포트 - 외부 공개
- "127.0.0.1:8212:8212" # REST API - 서버 내부 전용, 절대 외부 공개 금지
environment:
PUID: 1000
PGID: 1000
PLAYERS: 8
SERVER_NAME: "우리들의 팰월드"
SERVER_PASSWORD: "${SERVER_PASSWORD}" # 참가 비밀번호
ADMIN_PASSWORD: "${ADMIN_PASSWORD}" # REST API 인증에 사용
REST_API_ENABLED: true
RCON_ENABLED: false # REST API가 있으면 RCON은 불필요
volumes:
- ./palworld-data:/palworld
# .env (compose.yaml 옆에 두고 권한 600, 절대 공개 저장소에 올리지 말 것)
SERVER_PASSWORD=참가용비밀번호
ADMIN_PASSWORD=관리용비밀번호
실행하고 확인하기
파일은 nano(터미널에서 쓰는 간단한 메모장)로 만듭니다. 내용을 붙여넣은 뒤 Ctrl+O와 Enter로 저장하고 Ctrl+X로 닫으면 됩니다. 첫 실행은 게임 서버를 내려받느라 몇 분 걸리니, 로그를 보며 기다리다가 docker ps 목록에 palworld가 보이면 성공입니다.
# 1) 설정 파일 두 개 만들기 (~/palworld 폴더 안에서)
nano compose.yaml # 위의 compose.yaml 내용 붙여넣기 → Ctrl+O, Enter, Ctrl+X
nano .env # 비밀번호 두 줄 붙여넣기
chmod 600 .env # 소유자만 읽을 수 있게
# 2) 서버 실행 - 첫 실행은 내려받기 때문에 몇 분 걸림
docker compose up -d
# 3) 진행 로그 보기 (Ctrl+C로 빠져나오기)
docker compose logs -f
# 4) 떠 있는지 확인 - palworld가 보이면 성공
docker ps
# 5) 접속에 필요한 주소 확인
hostname -I # 내부 IP - 공유기 포트포워딩에 사용
curl ifconfig.me # 공인 IP - 친구에게 알려 줄 주소
친구가 접속하려면 - 포트포워딩
집 서버는 대부분 공유기 뒤에 있어서, 외부 친구가 들어오려면 공유기 관리 화면에서 UDP 8211을 서버 내부 IP로 포트포워딩(공유기 밖에서 온 접속을 내부 특정 컴퓨터로 넘겨주는 설정)해야 합니다. 접속은 게임의 멀티플레이 참가 화면에서 공인IP:8211을 입력하고 서버 비밀번호를 넣으면 됩니다. 가정용 회선은 공인 IP(인터넷에서 우리 집을 가리키는 주소)가 가끔 바뀔 수 있으니, 접속이 안 된다는 연락을 받기 전에 주기적으로 확인해 두면 좋습니다. 서버에 방화벽(ufw)을 켜 뒀다면 sudo ufw allow 8211/udp 로 게임 포트를 열어 주는 것도 잊지 마세요.
여기까지 하면 서버가 돌고 친구들이 들어올 수 있습니다. 그런데 팰월드 서버에는 문서에 잘 안 나오는 함정이 있습니다 - 잘못 끄면 게임 진행이 날아가고, 설정 파일을 잘못 고치면 서버가 설정을 잃습니다. 2탄에서 이 함정들과 백업 방법을 다룹니다.