多年后再次打开了steam的这个游戏,发现增加了很多内容~
偶尔玩玩吧,主要没人一起,用服务器搭建就不太合算~
前提条件
- Linux x86_64并运行Docker(18.05.0-ce或更高版本)。
- 您可能需要一个公共IP才能使服务器可以从Internet访问。
- 您需要4个UDP端口公开给公共网络。(
UDP 10999
(主服务器)11000
(洞穴);UDP 12346
和 12347
用于steam连接。这些端口不能改变。) - CPU:1核足以用于小型服务器(不要超过30帧)。
- 内存:我们建议为服务器保留1G内存,每位活跃用户再加上60M。
- 磁盘大小:Docker映像占用1.5GiB,并且您至少需要另一个5MiB来存储映射,配置和日志。建议使用4GiB可用磁盘空间。
开始搭建
下载镜像
开启Docker–注册表–搜索框输入starve–搜索–双击jamesits/dst-starve–选择latest–选择
等待下载完成
启动镜像
在群晖/docker
下创建DST
文件夹,复制以下内容并保存为 docker-compose.yml
(使用UTF-8)文件到DST文件夹里
注意volumes部分需要修改成自己对应的地址
1
2
3
4
5
6
7
8
9
10
11
| version: '3.5'
services:
dst-server:
image: jamesits/dst-server:latest
restart: "on-failure:5"
ports:
- "10999-11000:10999-11000/udp"
- "12346-12347:12346-12347/udp"
volumes:
- /volume2/docker/DST:/data/DoNotStarveTogether
stop_grace_period: 6m
|
进入群晖的ssh获取root权限
sudo -i
进到docker-compose.yml文件目录下面
cd /volume2/docker/DST
执行
docker-compose up -d
可以进入群晖Docker容器详情里的终端机查看具体运行情况,/docker/DST/Cluster_1 目录会生成一些文件,确认完成后我们先停止掉饥荒服务器容器
配置服务器
获取KLEI用户ID
电脑打开饥荒游戏,点左下角的账号即可看到KLEI用户ID,复制备用
获取服务器token
上面的页面切换到游戏选项卡点击饥荒联机版游戏服务器,输入一个名称添加服务器,复制生成的服务器token备用
编辑配置文件
打开/docker/DST/Cluster_1 目录
将服务器token填入cluster_token.txt
,将用户ID填入adminlist.txt
(管理员列表)和whitelist.txt
(白名单列表),保存文件。
编辑cluster.ini
文件,参考如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| [NETWORK]
cluster_name = pulnd.com (房间名称)
cluster_description = pulnd.com (房间说明)
cluster_password = pulnd.com (房间密码)
offline_cluster = false
lan_only_cluster = false
whitelist_slots = 1
cluster_intention = social
autosaver_enabled = true
tick_rate = 30
[GAMEPLAY]
game_mode = endless
max_players = 6
pvp = true
pause_when_empty = true
vote_kick_enabled = false
[STEAM]
steam_group_only = false
steam_group_id = 0
steam_group_admins = false
[MISC]
console_enabled = true
max_snapshots = 6
[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
master_port = 10998
cluster_key = MsAhBOXhhnElO5IPKr4G
|
配置服务器mod
不需要mod的可以跳过这个步骤
进入群晖里的/docker/DST/Cluster_1/mods
(饥荒mods文件夹)下,编辑dedicated_server_mods_setup.lua
文件,将你需要的mod添加进去,不填的话服务器会直接显示无mod
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| --There are two functions that will install mods, ServerModSetup and ServerModCollectionSetup. Put the calls to the functions in this file and they will be executed on boot.
--ServerModSetup takes a string of a specific mod's Workshop id. It will download and install the mod to your mod directory on boot.
--The Workshop id can be found at the end of the url to the mod's Workshop page.
--Example: http://steamcommunity.com/sharedfiles/filedetails/?id=350811795
--ServerModSetup("350811795")
--ServerModCollectionSetup takes a string of a specific mod's Workshop id. It will download all the mods in the collection and install them to the mod directory on boot.
--The Workshop id can be found at the end of the url to the collection's Workshop page.
--Example: http://steamcommunity.com/sharedfiles/filedetails/?id=379114180
--ServerModCollectionSetup("379114180")
ServerModSetup("1185229307")
ServerModSetup("1271089343")
ServerModSetup("2114886212")
ServerModSetup("378160973")
ServerModSetup("458587300")
ServerModSetup("501385076")
|
打开饥荒游戏,在本地建立一个世界并开启你想要的服务器mod,世界生成后退出,找到本地数据将modoverrides.lua
文件分别上传到/volume2/docker/DST/Cluster_1
下的Master
和Caves
文件夹里。
本地数据可以打开游戏点左下角的数据会自动打开文件夹,根据自己参见世界的顺序找到对应文件夹
modoverrides.lua
文件示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| return {
["workshop-1185229307"]={ configuration_options={ distance=20, timeout=10 }, enabled=true },
["workshop-1271089343"]={
configuration_options={ bekkitt_skeleton_pen=0, null_option=true, skeleton_player=true },
enabled=true
},
["workshop-2114886212"]={
configuration_options={ Blue=0, Display="target", Green=0, Projectile=true, Red=1, Type="hit" },
enabled=true
},
["workshop-378160973"]={
configuration_options={
ENABLEPINGS=true,
FIREOPTIONS=2,
OVERRIDEMODE=false,
SHAREMINIMAPPROGRESS=true,
SHOWFIREICONS=true,
SHOWPLAYERICONS=true,
SHOWPLAYERSOPTIONS=2
},
enabled=true
},
["workshop-458587300"]={ configuration_options={ Ownership=false, Travel_Cost=32 }, enabled=true },
["workshop-501385076"]={ configuration_options={ quick_harvest=true }, enabled=true }
}
|
开始运行
打开群晖Docker–容器–选中dst-server–操作–启动
可以进入详情–终端机查看具体运行情况,如果出现问题可以根据反馈内容自行调整
如果一切顺利,那么你进入游戏搜索你创建的房间名就可以找到并加入游戏了!
参考文章
[1]. 群晖中的小小饥荒世界—利用群晖Docker搭建 Don’t Starve Together 服务器
[2]. 饥荒联机专用服务器搭建教程
[3]. 不要挨饿专用服务器Docker映像