在 Linux 上搭建 CrepeSR (崩坏: 星穹铁道 社区服务器)
本文仅适用于基于 Arch Linux 和 Debian 的发行版 (当然, 如果你有其他发行版的安装方式也欢迎 PR), Windows 服务器的搭建可参考 CrepeSR 官方 Wiki 或 TomyJan 的教程
如遇问题请前往 @genkitCN_chat (人机验证过不了建议滚回高中)
由于 Node.js 的特性, 使用 root 权限或用户运行服务器会出现问题, 因此请参考您发行版的 Wiki 或在网络上查阅, 建立一个带有特权的新用户再进行操作
环境配置
Git
Arch Linux
1 | sudo pacman -S git --needed |
Debian
1 | sudo apt install git |
Node.js
Arch Linux
1 | sudo pacman -S nodejs-lts-gallium --needed |
Debian
1 | curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - |
npm
Arch Linux
1 | sudo pacman -S npm --needed |
Debian
1 | sudo apt install npm |
MongoDB
Arch Linux
在 Arch Linux 上安装 MongoDB 需要使用一个 AUR Tool, 在本文中以 paru
为例. 如果你已经配置好任意一个 AUR Tool, 可以跳过下一代码块
1 | git clone https://aur.archlinux.org/paru.git |
注意: 操作 AUR 包及运行相关的命令时, 不可使用 root 权限
如果运行上述命令出现问题, 你可能需要安装 core 源中的 base-devel
, 过程不再赘述
然后, 使用 paru 安装 MongoDB
1 | paru -S mongodb-bin --needed |
Ubuntu
首先, 导入 MongoDB 的 PGP 公钥
1 | sudo apt install gnupg |
然后, 根据你的系统版本选择对应的命令执行
20.04 (Focal)
1
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
18.04 (Bionic):
1
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
16.04 (Xenial):
1
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
最后, 更新软件源并安装
1 | sudo apt update |
Debian
1 | sudo apt install mongodb-org |
Python
Arch Linux
1 | sudo pacman -S python --needed |
Debian
1 | sudo apt install python3 |
mitmproxy
Arch Linux
1 | sudo pacman -S mitmproxy --needed |
Debian
1 | sudo apt install mitmproxy |
libcap
Arch Linux
1 | sudo pacman -S libcap |
Debian
1 | sudo apt install libcap2-bin |
检查安装
1 | node -v |
如果输出类似下图的版本号而不出现报错则为环境配置完成
安装 CrepeSR
拉取项目和资源
1 | git clone https://github.com/Crepe-Inc/CrepeSR --depth=1 |
在完成后, CrepeSR
文件夹内的文件结构应与下图基本一致
安装依赖
一定不要使用 root 权限或账户执行下述指令
1 | cd CrepeSR |
端口设置
使 node 允许绑定 80 与 443 端口
1 | sudo setcap cap_net_bind_service=+eip `readlink -f \`which node\`` |
运行服务端
1 | mitmdump -s proxy.py -k --set block_global=false & |
常用命令 (服务端内)
account
用于账户的操作
用法:
1 | account <create|delete> <name> [uid] |
示例:
1 | account create chitang 114514 # 创建一个名为 chitang 且 uid 为 114514 的玩家 |
target
用于指定命令的目标, 其他的命令基本都需要先使用该命令确定目标
用法:
1 | target <uid> |
示例:
1 | target 114514 |
avatar
用于操作玩家的角色
用法:
1 | avatar <add|remove> <AvatarID> |
示例:
1 | avatar add 1001 # 给指定的玩家三月七 |
AvatarID 对照表
AvatarID | 中文名 |
---|---|
1001 | 三月七 |
1002 | 丹恒 |
1003 | 姬子 |
1004 | 瓦尔特 |
1005 | 卡芙卡 |
1006 | 布洛妮娅 (银狼) |
1008 | 阿兰 |
1009 | 艾丝妲 |
1013 | 黑塔 |
1101 | 布洛妮娅 (成人) |
1102 | 希儿 |
1103 | 希露瓦 |
1104 | 杰帕德 |
1105 | 娜塔莎 |
1106 | 佩拉 |
1107 | 克拉拉 |
1108 | 桑博 |
1109 | 胡克 |
1203 | 罗刹 |
1204 | 静渊 |
1205 | 刀锋 |
1206 | 素裳 |
地图和场景
在 CrepeSR/src/data/excel
中的 MapEntryExcelTable.json
里可以找到能用来改变场景的 planeID
与 floorID
在 CrepeSR/src/server/packets
中的 GetCurSceneInfoCsReq.ts
里编辑 planeId
与 floorId
来改变场景
游戏客户端
在我的 Cloudreve 里有国服启动器, 国服游戏本体, 国际服游戏本体等资源
不过建议使用页面下方来自米哈游官方的下载链接(因为 OneDrive 真的很慢)