Debian自建饥荒服务器

搭建饥荒服务器最早是同学一起玩饥荒产生的需求。从最早拿着1c2g的Windows腾讯云到CreeperHost香港、狗云CMI折腾,最后回到腾讯广州,雕栏玉砌应犹在。

折腾过程学期了很多东西,一直没有记录下来。我觉得比较麻烦的还是开mods和文件的配置,搭建方面如果使用脚本或是Docker能够一气呵成。文章思来想去不知怎么写,改来改去最后选择用最简单的方法解决问题。文章采用最简写法,有问题可以评论或是联系我。

# 安装Docker

# 一键脚本

1
2
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

# 手动(Debian)

1
apt install docker.io docker-compose -y

# 启动服务

They write their server setup instructions like sh*t, so we made this Docker image to simplify things.

# 创建docker-compose.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
version: "3.5"

services:
  dst-server:
    image: jamesits/dst-server:latest
    container_name: dst
    restart: "on-failure:5"
    ports:
      - "10999-11000:10999-11000/udp"
      - "12346-12347:12346-12347/udp"
    volumes:
      - /home/dst/.klei/DoNotStarveTogether:/data
#      - /home/dst/supervisor.conf:/etc/supervisor/supervisor.conf:ro
    stop_grace_period: 6m
  • image 可选lastest nightly等
  • 可自定义supercisor关闭洞穴等

# 编辑 supervisord

 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
34
35
36
37
38
39
40
41
42
43
44
45
[supervisord]
nodaemon=true
logfile=/dev/null
logfile_maxbytes=0
pidfile=/var/run/supervisord.pid

[unix_http_server]
file=/var/run/supervisor.sock

[rpcinterface:supervisor]
supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock

[program:dst-server-master]
user=%(ENV_DST_USER)s
group=%(ENV_DST_GROUP)s
command=dontstarve_dedicated_server_nullrenderer -skip_update_server_mods -persistent_storage_root %(ENV_DST_USER_DATA_PATH)s -ugc_directory %(ENV_DST_USER_DATA_PATH)s/ugc -cluster Cluster_1 -shard Master
startsecs=40
startretries=0
autorestart=unexpected
exitcodes=0
stopwaitsecs=720
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
stderr_logfile=/dev/fd/2
stderr_logfile_maxbytes=0

[program:dst-server-cave]
user=%(ENV_DST_USER)s
group=%(ENV_DST_GROUP)s
command=dontstarve_dedicated_server_nullrenderer -skip_update_server_mods -persistent_storage_root %(ENV_DST_USER_DATA_PATH)s -ugc_directory %(ENV_DST_USER_DATA_PATH)s/ugc -cluster Cluster_1 -shard Caves
startsecs=40
startretries=0
autorestart=unexpected
exitcodes=0
stopwaitsecs=720
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
stderr_logfile=/dev/fd/2
stderr_logfile_maxbytes=0

[group:dst-server]
programs=dst-server-master,dst-server-cave

# 添加用户与用户组

1
2
useradd dst
groupadd dst-server

# 赋予目录权限

1
chown dst:dst-server /home/dst

# 修改配置

进入当前目录下的 .klei/DoNotStarveTogether/DoNotStarveTogether/Cluster_1修改文件

  • cluster_token.txt服务器令牌,去科雷官网获取

  • cluster.ini服务器配置,按需修改

  • mods/dedicated_server_mods_setup.lua按需添加mod

  • Master或Caves中添加 modoverrides.lua用于配置mod

    需要本地生成拷贝至此(这里骂一下克雷)

至此重启docker就能愉快地玩耍了

# 手动搭建

可以参考How to setup dedicated server with cave on Linux,虽然有些小细节问题,不过写得还挺好的,最早转向Linux用的就是这篇文章搭建。

# 饥荒联机私服

dst.moe

# 博主的挂机服

控制台快速连接命令:

c_connect("afk.kenshin.naaloh4.com", 10999)

# 挂机服配置

  • description: Website dst.moe | Telegram t.me/dst_zh | Powered by jamesits/dst-server

  • modoverrides.lua:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    
    return {
      ["workshop-1981709850"]={
        configuration_options={
          clean_interval=240,
          dsc=true,
          language="EN",
          reroll_cd=600,
          showcounter=true,
          undestroyable=false
        },
        enabled=true
      }
    }
    
  • dedicated_server_mods_setup.lua:

    1
    
    ServerModSetup("1981709850")
    
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计