Skip to content

DennisYang0611/fuhui

Repository files navigation

赴会 · 活动运营工作台

面向线下活动的报名、签到、渠道二维码、飞书多维表格同步和数据复盘工作台。项目使用 Next.js 16、React 19 和 MongoDB。

功能

  • 活动创建、复制、报名截止与签到截止时间
  • 可编辑的动态报名表与拖拽排序
  • 公开报名、扫码签到与渠道预设二维码
  • 报名用户管理、批量签到和数据导出
  • 飞书 Base 字段与线索双向同步
  • 管理员角色、操作日志和活动数据看板

快速开始

npm ci
npm run dev -- --hostname 0.0.0.0

打开 http://localhost:3000/setup。首次运行时,系统会在服务端日志输出 QIANDAO_SETUP_TOKEN。配置页只需填写 MongoDB 连接串和该部署令牌。

数据库自动配置

系统会从连接串路径读取数据库名;未指定时默认使用 checkin_station,并自动识别空数据库或已有数据库:

  1. 使用 root 或其他数据库管理员连接时,自动创建仅拥有目标数据库 readWrite 权限的随机应用账号,只保存受限连接串。
  2. 使用目标数据库的 readWrite 连接时,直接保存该连接串。
  3. 自动创建必要索引;空数据库会创建 admin 超级管理员,并在配置完成页一次性展示随机初始密码。
  4. 已有数据库会保留原管理员数据,并直接跳转登录页。

系统会生成新的运行认证密钥。已有数据库中的飞书 App Secret 如由其他实例加密,需要登录后在系统设置中重新填写。

Sealos DevBox 部署

在发布前完成构建:

npm ci
npm run build
chmod +x entrypoint.sh

Sealos 的 Entry Point 填写:

./entrypoint.sh

entrypoint.sh 只启动已构建产物,不会在容器启动时重新构建。

请为运行目录挂载持久化存储,或通过 QIANDAO_DATA_DIR 指向持久化卷。该目录保存数据库连接和会话密钥,必须仅对应用进程可读。

安全配置

  • 不要把 .env.localdata/runtime-config.json 或任何真实凭证提交到 Git。
  • 公网非 TLS MongoDB 可以完成配置,但页面会显示安全警告;生产环境优先使用 Sealos 集群内网 Service 地址或启用 TLS。
  • 建议在部署平台密钥管理中设置 SETUP_TOKEN。未设置时,系统会自动生成并输出到服务日志。
  • 完成配置后,部署令牌文件会自动删除。
  • 飞书 App Secret 使用 AES-256-GCM 加密保存,不会从管理接口回显。

可选环境变量

变量 用途
QIANDAO_DATA_DIR 运行配置和初始化令牌目录,默认为 ./data
SETUP_TOKEN 首次配置的部署令牌,至少 16 位
MONGODB_URI 非交互式部署的 MongoDB URI
MONGODB_DB 非交互式部署的数据库名称
AUTH_SECRET 非交互式部署的会话与凭证加密密钥,至少 32 位

如果使用环境变量跳过 /setup,必须同时配置 MONGODB_URIAUTH_SECRET,并将它们保存在部署平台的 Secret 管理中。

运行脚本

npm run dev      # 开发服务
npm run build    # 生产构建
npm run start    # 启动生产服务

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors