Docker 部署
如果您的服务器支持 Docker,可以使用 Docker 来部署 dst-admin-go
。
快速运行,第一次需要等待十几分钟下载饥荒服务器,如果需要挂载出去请参考下面的命令
shell
docker run -d \\
--name dst-admin-go \\
-p 8082:8082 \\
-p 10999:10999/udp \\
-p 10998:10998/udp \\
hujinbo23/dst-admin-go:1.5.1
使用 Docker Hub 镜像
dst-admin-go
提供了官方 Docker 镜像,您可以直接从 Docker Hub 拉取并运行:
bash
# 创建必要的目录
mkdir -p ~/dstsave
mkdir -p ~/steamcmd
mkdir -p ~/dst-dedicated-server
# 拉取指定版本的镜像(推荐使用具体版本而不是 latest)
docker pull hujinbo23/dst-admin-go:1.5.1
# 运行容器
docker run -d \\
--name dst-admin-go \\
-p 8082:8082 \\
-p 10999:10999/udp \\
-p 10998:10998/udp \\
-v ~/dstsave:/root/.klei/DoNotStarveTogether \\
-v ~/dstsave/back:/app/backup \\
-v ~/steamcmd:/app/steamcmd \\
-v ~/dst-dedicated-server:/app/dst-dedicated-server \\
-v ~/dstsave/dst-db:/app/dst-db \\
-v ~/dstsave/password.txt:/app/password.txt \\
-v ~/dstsave/first:/app/first \\
hujinbo23/dst-admin-go:1.5.1
参数说明
-d
: 后台运行容器--name
: 指定容器名称-p 8082:8082
: 管理面板端口映射-p 10999:10999/udp
: 游戏服务器主端口映射-p 10998:10998/udp
: 游戏服务器次端口映射-v ~/dstsave:/root/.klei/DoNotStarveTogether
: 挂载游戏存档目录-v ~/dstsave/back:/app/backup
: 挂载存档备份目录-v ~/steamcmd:/app/steamcmd
: 挂载 SteamCMD 目录-v ~/dst-dedicated-server:/app/dst-dedicated-server
: 挂载饥荒专用服务器目录-v ~/dstsave/dst-db:/app/dst-db
: 挂载玩家日志文件-v ~/dstsave/password.txt:/app/password.txt
: 挂载密码文件-v ~/dstsave/first:/app/first
: 挂载初始化标识文件
路径说明
容器内各组件的路径如下:
- 容器存档启动路径:
/root/.klei/DoNotStarveTogether
- 容器存档备份路径:
/app/backup
- 容器存档模组路径:
/app/mod
- 容器玩家日志路径:
/app/dst-db
(这是一个文件) - 容器服务日志路径:
/app/dst-admin-go.log
(这是一个文件) - 容器启动饥荒路径:
/app/dst-dedicated-server
- 容器启动steamcmd:
/app/steamcmd
first
文件: 代表是否第一次登录,如果没有这个文件会跳转到初始化界面设置账号
使用 docker-compose (推荐)
创建 docker-compose.yml
文件:
yaml
version: '3'
services:
dst-admin-go:
image: hujinbo23/dst-admin-go:1.5.1
container_name: dst-admin-go
ports:
- "8082:8082"
- "10999:10999/udp"
- "10998:10998/udp"
volumes:
- ${PWD}/dstsave:/root/.klei/DoNotStarveTogether
- ${PWD}/dstsave/back:/app/backup
- ${PWD}/steamcmd:/app/steamcmd
- ${PWD}/dst-dedicated-server:/app/dst-dedicated-server
- ${PWD}/dstsave/dst-db:/app/dst-db
- ${PWD}/dstsave/password.txt:/app/password.txt
- ${PWD}/dstsave/first:/app/first
restart: unless-stopped
然后运行以下命令启动服务:
bash
# 启动服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
安装 SteamCMD 和饥荒专用服务器
在宿主机上安装 SteamCMD 并下载饥荒专用服务器:
bash
# 创建目录
mkdir -p ~/steamcmd
mkdir -p ~/dst-dedicated-server
# 下载并安装 SteamCMD
cd ~/steamcmd
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
# 使用 SteamCMD 安装饥荒专用服务器
./steamcmd.sh +login anonymous +force_install_dir ~/dst-dedicated-server +app_update 343050 validate +quit
管理容器
bash
# 查看运行状态
docker ps
# 查看日志
docker logs dst-admin-go
# 实时查看日志
docker logs -f dst-admin-go
# 停止容器
docker stop dst-admin-go
# 启动容器
docker start dst-admin-go
# 重启容器
docker restart dst-admin-go
# 删除容器
docker rm dst-admin-go
首次运行初始化
首次运行容器时,由于缺少 first
文件,系统会跳转到初始化界面要求设置管理员账号和密码。您可以通过以下方式创建该文件以跳过初始化:
bash
# 创建 first 文件
touch ~/dstsave/first
# 创建 password.txt 文件(格式:用户名:密码)
echo "admin:your_password" > ~/dstsave/password.txt
文件权限问题
在 Linux 系统上,可能会遇到文件权限问题。可以通过以下方式解决:
- 确保挂载目录的权限正确:bash
# 设置正确的所有者(将 1000 替换为您运行 Docker 的用户 ID) sudo chown -R 1000:1000 ~/dstsave sudo chown -R 1000:1000 ~/steamcmd sudo chown -R 1000:1000 ~/dst-dedicated-server
配置 dst-admin-go 面板
- 打开浏览器访问
http://IP:8082
- 注册用户并登录(各个选项均可随意填写)
- 进入"房间设置"并配置令牌
注意事项
- 防火墙需要开放相应的端口(默认 8082 端口用于管理面板,UDP 10999 和 10998 端口用于游戏服务器)。
- 如果需要持久化数据,请确保正确挂载所有数据卷。
- 饥荒服务器文件需要在主机上通过 SteamCMD 下载,并挂载到容器中。
- 推荐使用具体版本号而不是
latest
标签,以确保环境一致性。