Files
Snap.Server/README.md
wangdage12 01f51d82cd Update README with deployment requirements
Added resource and environment requirements for deployment.
2026-02-07 21:56:24 +08:00

3.4 KiB
Raw Blame History

Snap.Server

Snap.Hutao新后端API

部署方法

资源和环境要求
服务器硬件: 最低1核CPU1GB内存

运行环境:
Windows10及以上、Windows Server 2019及以上、Linux
Python3.12及以上
MongoDB

在服务器生成RSA密钥

执行以下代码在根目录生成密钥:

from Crypto.PublicKey import RSA

# 生成 2048 位 RSA 密钥对
key = RSA.generate(2048)

private_key = key.export_key()
public_key = key.publickey().export_key()

with open("private.pem", "wb") as f:
    f.write(private_key)

with open("public.pem", "wb") as f:
    f.write(public_key)

print("Keys generated.")

确保客户端的公钥和生成的相同,否则将无法使用账户功能

创建配置文件

创建config.json文件,示例内容如下:

{
  "SECRET_KEY": "jwt_secret_key",
  "MONGO_URI": "mongodb+srv://wdgwdg889_db_user:xxxxxx@cluster0.eplrcvl.mongodb.net/?appName=Cluster0",
  "TIMEZONE": "Asia/Shanghai",
  "ISTEST_MODE": false,
  "SERVER": {
    "HOST": "0.0.0.0",
    "PORT": 5222,
    "DEBUG": false
  },
  "JWT": {
    "ALGORITHM": "HS256",
    "EXPIRATION_HOURS": 24
  },
  "EMAIL": {
    "GMAIL_USER": "wdgwdg889@gmail.com",
    "APP_PASSWORD": "",
    "APP_NAME": "WDG Snap Hutao",
    "OFFICIAL_WEBSITE": "https://htserver.wdg.cloudns.ch/",
    "SUBJECT": "WDG Snap Hutao 验证码"
  },
  "RSA": {
    "PRIVATE_KEY_FILE": "private.pem",
    "PUBLIC_KEY_FILE": "public.pem"
  },
  "VERIFICATION_CODE": {
    "EXPIRE_MINUTES": 10
  },
  "LOGGING": {
    "LEVEL": "DEBUG",
    "FORMAT": ""
  }
}

参数说明:

参数 说明
SECRET_KEY 用于JWT签名的密钥请设置为复杂字符串
MONGO_URI MongoDB连接字符串
TIMEZONE 服务器时区
ISTEST_MODE 是否启用测试模式,测试模式下部分功能将返回默认值,不连接数据库
SERVER.HOST 服务器监听地址
SERVER.PORT 服务器监听端口
SERVER.DEBUG 是否启用Flask的调试模式
JWT.ALGORITHM JWT签名算法
JWT.EXPIRATION_HOURS JWT过期时间小时
EMAIL.GMAIL_USER 用于发送验证邮件的Gmail账号
EMAIL.APP_PASSWORD Gmail应用专用密码
EMAIL.APP_NAME 应用名称,用于邮件显示
EMAIL.OFFICIAL_WEBSITE 官方网站地址,用于邮件中的链接
EMAIL.SUBJECT 验证邮件的主题
RSA.PRIVATE_KEY_FILE RSA私钥文件路径
RSA.PUBLIC_KEY_FILE RSA公钥文件路径
VERIFICATION_CODE.EXPIRE_MINUTES 验证码过期时间(分钟)
LOGGING.LEVEL 日志记录级别生产环境建议设置为INFO
LOGGING.FORMAT 日志记录格式

开发环境启动方法

确保已安装依赖:

pip install -r requirements.txt

运行Flask应用

python app.py

生产环境启动方法

建议使用Gunicorn部署

pip install -r requirements.txt && python -m gunicorn run:app --bind 0.0.0.0:5222 --workers 4 --threads 2 --access-logfile - --error-logfile -

请根据服务器性能调整--workers--threads参数。

API文档

API文档可以在该地址访问

https://rdgm3wrj7r.apifox.cn/

注意事项

在轻量使用的场景下可以直接使用MongoDB Atlas的免费套餐但在高并发场景下建议使用自建MongoDB服务器以获得更好的性能和稳定性。

新MongoDB数据库会在写入数据时自动创建无需手动创建数据库和集合。