情怀拉满!飞牛NAS+Docker部署冒险岛,手把手教你找回童年
前言
这几天陆续有朋友留言让我继续发点游戏的部署教程,由于到了年终,手上事情确实也多,不过既然大家喜欢,那怎么也得安排一下,今天来个冒险岛服务器版,叫上当年的兄弟再刷一次扎昆!

项目介绍
本项目基于Cosmic来的汉化和优化,Cosmic 是一款针对全球枫之谷(GMS)83版本的服务器模拟器。于2021年3月上线。它基于长达十多年的服务器模拟器代码,这些模拟器从OdinMS(2008年)一直延续到HeavenMS(2019年)。这是一个以Java为主导的项目,但也包含大量用JavaScript编写的脚本。
本项目地址:https://github.com/BeiDouMS/BeiDou-Server
服务端docker仓库地址:https://github.com/BeiDouMS/BeiDou-docker
原始项目地址:https://github.com/P0nk/Cosmic

部署准备
新建存储目录
安装之前需先在docker文件夹中新建一个mxd文件夹,用于配置持久化保存,后面所有相关文件都存在这里。

准备Compose文件
打开飞牛os的docker--compose--新增项目--项目名称(填mxd,可识别即可),l路径选择上面建立好的文件夹“mxd”,选择创建docker-compose.yml,然后将下面代码复制粘贴到代码框,为了便于大家理解,我给每段代码加了注释,最后勾上创建项目后立即启动,点击创建即可:
version: '3.4' # 指定docker-compose语法版本(适配v3.4+)
services:
beidou-server-all: # 北斗服务器主服务(集成所有功能)
container_name: beidou-server-all # 容器自定义名称,便于管理
image: ghcr.io/beidoums/beidou-server-all:v1.9 # 北斗服务器镜像(v1.9版本)
environment:
TZ: Asia/Shanghai # 设置容器时区为上海,避免时间偏差
ports:
- "8686:8686" # Web管理界面端口映射
- "8484:8484" # 登录服务器端口映射
- "7575-7577:7575-7577" # 业务通道端口段映射(3个连续端口)
volumes:
- ./beidou-server-release:/opt/server # 挂载服务器配置/数据目录到容器
command: # 启动参数:覆盖数据库连接和服务地址配置
- --mybatis-flex.datasource.mysql.url=jdbc:mysql://beidou-db:3306/beidou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai # MySQL数据库连接地址
- --mybatis-flex.datasource.mysql.username=root # MySQL登录用户名
- --mybatis-flex.datasource.mysql.password=root # MySQL登录密码
- --gms.service.wan-host=127.0.0.1 # 服务公网访问地址
- --gms.service.lan-host=127.0.0.1 # 服务局域网访问地址
- --gms.service.localhost=127.0.0.1 # 服务本地回环地址
# healthcheck: # 健康检查(注释禁用,启用可取消注释)
# test: ["CMD", "wget", "--spider", "http://localhost:8686/"] # 检测8686端口存活状态
# interval: 10s # 检查间隔10秒
# timeout: 5s # 单次检查超时5秒
# retries: 10 # 重试10次仍失败则标记不健康
depends_on: # 依赖关系:等待数据库服务健康后启动
beidou-db:
condition: service_healthy # 依赖条件:beidou-db服务健康
networks:
- beidou-network # 加入自定义桥接网络
beidou-db: # MySQL数据库服务(北斗服务器依赖)
container_name: beidou-db # 数据库容器名称
image: mysql:8.4.0 # MySQL镜像版本(8.4.0)
environment:
MYSQL_ROOT_PASSWORD: "root" # MySQL root用户默认密码
ports:
- "3306:3306" # MySQL端口映射(宿主机:容器)
volumes:
- ./docker-db-data:/var/lib/mysql # 持久化MySQL数据到宿主机目录
healthcheck: # 数据库健康检查
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-proot"] # 检测MySQL服务可用性
interval: 10s # 检查间隔10秒
timeout: 5s # 单次检查超时5秒
retries: 10 # 重试10次
start_period: 10s # 启动后等待10秒再开始检查
networks:
- beidou-network # 加入自定义桥接网络
networks:
beidou-network: # 自定义桥接网络(让两个服务互通)
driver: bridge # 网络驱动:桥接模式
需要注意的是:如果代码不可用,让ai修改一下格式。如果端口有冲突,可以修改本地端口。

当然,如果害怕代码出错,可以直接在网页上下载作者准备好的yml文件,下来下来后放入前面创建的文件夹。然后在
docker--compose--新建项目,填好项目名称和路径,选择导入docker-compose文件就行,会自动识别yml文件并导入代码。下载地址:https://github.com/BeiDouMS/BeiDou-docker/tree/master。
如果怕麻烦或者网络原因无法下载的,也可以看我上一篇文章
点击创建,项目就创建成功了,看到项目正在运行就说明服务端部署成功了。

服务端配置
输入nasip+端口,比我我这里就是192.168.1.45:8686,进入服务端管理页面,默认填充好了账号密码,直接进入。

在工作台可以看到运行状态啥的。

游戏管理可以进行商城、NPC设置、怪物爆率、背包管理、百宝箱管理等各种设置。

玩家管理可以进行账户创建、封存等操作。

客户端配置
到项目发布网址下载客户端 https://github.com/BeiDouMS/BeiDou-Server/releases,如果因为网络原因无法下载,可以使用fastgithub解决。

下载并解压文件。

进入文件夹,找到config.ini文件。

打开并修改其中的服务器地址为部署机器的地址,保存退出。

体验游戏
双击beidou.exe启动游戏。

输入账号 admin,密码 admin,就可以开始游戏了。


也可以在后台服务端新建账户,给兄弟玩儿。

关于内网穿透,异地组网,具备条件的朋友可以试试域名能不能用,不行的话可以使用节点小宝极空间里的节点小宝:无公网IP也能内网穿透,远程访问NAS!、或者星空组网一类的组网软件,大家玩儿才是真的玩儿。
(我把文中的yml文件和客户端都放网盘了,有需要的可以公众号回复“冒险岛”直接下载)
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案