/rwr-profile-server

Running with Rifles Girls FrontLine mod web backend server

Primary LanguageRustGNU General Public License v3.0GPL-3.0

RWR GFL 存档管理服务

快速上手

该项目依赖前端运行,对应前端:https://github.com/Kreedzt/rwr-profile-web

下载前端构建后代码,然后下载本项目构建后代码,配合 nginx 托管,并放置 config.json 文件和 users.json 文件,最后从命令行启动该项目即可

config.json(需要与该项目同目录):

{
  // rwr 存档目录,建议使用相对路径
  "rwr_profile_folder_path": "temp/profiles",
  // 服务器数据目录,不能为空,路径必须存在 users.json
  "server_data_folder_path": "temp/data",
  // 服务器日志目录
  "server_log_folder_path": "temp/logs",
  // 服务器上传存档临时目录,目标路径必须存在
  "server_upload_temp_folder_path": "temp/upload_temp"
}

users.json(需要放在 config.json 中设置的 server_data_folder_path 路径中)

user_list 内容可以为空, 即为空数组也行, 第一次可以通过 web 页面注册用户, 然后手动修改 admin 标识

{
  "user_list":[
    {
      // 用户名
      "name":"AAA",
      // 对应的存档用户 id
      "user_id":1432226718,
      // 密码(编码后)
      "password":"YWFh",
      // 是否管理员标识
      "admin":1
    }
  ]
}

开发

该项目提供了前端界面, 可用前端界面来进行开发调试: https://github.com/Kreedzt/rwr-profile-web

该项目采用 Rust 语言编写,需要 Rust 开发环境

启动开发环境的命令:

cargo run

会绑定在 8080 端口工作

构建

该项目采用 Rust 语言编写,需要 Rust 开发环境

编译需执行以下命令:

cargo build --release

编译后在根目录的 target/release 内生成二进制文件(exe),该文件可用终端直接运行。

编译后可用 upx 二次缩小体积,通常缩小到 700k 左右

upx --best --lzma target/release/rwr-profile-server

特性

  • 用户接口(user)
    • 提供基本的注册与登录
  • 玩家数据接口(person)
    • 查询单条玩家信息
    • 更新单条玩家信息
    • 查询所有玩家信息
    • 经验重置到 5 星
    • 更新背包
    • 更新仓库
    • 更新改造
    • 为所有玩家背包插入指定物品
    • 为选定玩家背包插入指定物品
    • 下载存档
    • 上传存档
  • 玩家记录信息接口(profile)
    • 下载存档
    • 上传存档

部署

该项目仅是后端,需要前端项目一起部署

可用 nginx 部署

nginx.conf 反向代理如下配置即可:

server {
        listen 9090;
        server_name localhost;

        # 前端页面
        location / {
            root /dist;
            try_files $uri $uri/ /index.html;
            index index.html;
        }

        # API 转发
        location /api/ {
         	proxy_set_header HOST $host;
        	proxy_set_header X-Forwarded-Proto $scheme;
       	 	proxy_set_header X-Real-IP $remote_addr;
        	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:8080/;
        }
}

在此二进制同路径放置 config.json 文件

config.json(需要与该项目同目录):

{
  // rwr 存档目录,建议使用相对路径
  "rwr_profile_folder_path": "temp/profiles",
  // 服务器数据目录,不能为空,路径必须存在 users.json
  "server_data_folder_path": "temp/data",
  // 服务器日志目录
  "server_log_folder_path": "temp/logs",
  // 服务器上传存档临时目录,目标路径必须存在
  "server_upload_temp_folder_path": "temp/upload_temp"
}

server_data_folder_path 路径放置 users.json:

user_list 内容可以为空, 即为空数组也行, 第一次可以通过 web 页面注册用户, 然后手动修改 admin 标识

{
  "user_list":[
    {
      // 用户名
      "name":"AAA",
      // 对应的存档用户 id
      "user_id":1432226718,
      // 密码(编码后)
      "password":"YWFh",
      // 是否管理员标识
      "admin":1
    }
  ]
}

协议