前言

最近乘着游戏打折,入手了泰拉瑞亚,和朋友联机的时候发现网络巨差,后面了解可以自行搭建服务器,琢磨着在自己的专业领域中解决这个问题。

部署环境:

  • 群辉

也可以使用云服务器,使用后面的docker-compose.yaml文件部署也是一样的,后续简单说一下

  • 不用内网穿透
  • 需要调整防火墙端口策略

需要准备的

  • 群辉docker套件Container Manager
  • 内网穿透方案(自行选择)

1.创建目录

terraria/                          # 根目录
├── world  # 世界文件和配置  
├── plugins  # 插件(可选) 
└── logs  # 日志(可选)  
  

2.安装与配置

方式一

使用docker-compose.yaml文件

services:
  terraria-server:
    image: ryshe/terraria:latest  # 使用官方泰拉瑞亚镜像
    container_name: terraria-server  # 指定容器名称
    restart: unless-stopped  # 容器停止时自动重启(除非手动停止)
  
    ports:
      - "12345:7777"  # 将主机12345(仅示例)端口映射到容器的7777端口(游戏默认端口)
  
    environment:
      - WORLD_FILENAME=my_world.wld  # 世界文件名
  
    # 使用相对路径,世界文件保存在当前目录下的 worlds 文件夹
    # 容器会自动创建此目录(如果不存在)

    # 卷映射 - 使用相对路径
    volumes:
      - ./world:/root/.local/share/Terraria/Worlds
      - ./plugins:/plugins
      - ./logs:/tshock/logs
  
    # 完全按照原始 docker run 命令的参数顺序和格式
    command: >
      -password 你的服务器密码 -autocreate 3 -maxplayers 最大玩家数
  
  
    logging:
      driver: "json-file"  # 使用 JSON 格式日志
      options:
        max-size: "200k"  # 限制单个日志文件最大200KB
        max-file: "3"  # 最多保留3个日志文件(可选添加)
  
    # 添加健康检查
    healthcheck:
      test: ["CMD", "netstat", "-an", "|", "grep", "7777"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

创建项目

image-NWYp.png

ssh命令方式

1.创建目录下的根目录下运行

# 启动容器(后台运行)
docker-compose up -d

其他命令

# 查看容器日志
docker-compose logs -f terraria-server

# 停止容器
docker-compose down

方式二

  • 现在套件Container Manager中镜像仓库的搜索下载功能,在国内已经不好用了,这里不再介绍

下载镜像操作步骤

  1. 开启ssh登录

  2. 登录ssh终端

  3. 使用有管理员权限的账号登录

  4. 使用命令sudo -i切换到root

  5. 使用命令下载镜像

    docker pull docker.1ms.run/ryshe/terraria:latest
    
  6. 完成,回到web页面

这可以取巧使用上面的docker-compose.yaml文件,在套件Container Manager中使用创建项目的方式进行拉取镜像,后面删掉这个项目就行

配置镜像

image-giqq.png

限制资源

image-AqKc.png

整体配置,这里我是用已有的复制一个配置做示例

image-Kcow.png

需要注意的是:

  • 端口配置

  • 存储空间配置

      - 世界文件夹 /root/.local/share/Terraria/Worlds
      - 插件文件夹 /plugins
      - 日志文件夹 /tshock/logs
    
  • 环境
    除世界文件名称,其他复制填入即可

    - CONFIGPATH /root/.local/share/Terraria/Worlds
    - LOGPATH /tshock/logs
    - WORLD_FILENAME 更改成你的世界名称,不能使用中文
    - TSHOCK_LANGUAGE zh_CN
    
  • 网络

    使用bridge

  • 执行命令


      -password 你的服务器密码 -autocreate 3 -maxplayers 最大玩家数

配置说明

环境变量

变量名 说明 示例值
WORLD_FILENAME 指定启动时加载的世界文件名 my_world.wld

命令行参数

可在 docker run命令的镜像名称后添加TShock服务器参数,完整参数参考TShock文档。常用参数:

参数 说明 示例
-autocreate <size> 自动创建世界(1=小,2=中,3=大) -autocreate 2
-world <path> 指定世界文件路径 -world /path/world.wld
-password <pwd> 设置服务器密码 -password myserver123
-maxplayers <num> 最大玩家数 -maxplayers 8

其他