{"repo":"AgenticLab-team/web","free":true,"listed":false,"github":"https://github.com/AgenticLab-team/web","clone":"git clone https://github.com/AgenticLab-team/web.git","description":"一个微信群社区的站内门户：群聊存档与全文检索，加上论坛、积分、称号、开放 API 与 GitHub 生态。只有群成员能登录。","language":"TypeScript","stars":13,"topics":["community","drizzle-orm","forum","nextjs","pwa","react","sqlite","typescript","wechat"],"license":null,"category":"databases-storage","readme_excerpt":"Agentic Lab 一个微信群社区的站内门户 —— 把群聊存档下来、可检索， 并在它上面长出论坛、积分、称号、活动、资源库、开放 API。 --- 它不是一个通用的论坛程序 整个站建立在一条硬约束上： 只有微信群成员能登录。 账号是靠在群里向机器人发一条验证码建立的， 没有公开注册入口 。 所有可见性判定（谁能看哪条消息、谁的主页对谁可见）都以 「你们有没有共同的群」为准。 如果你想拿它当一个开放注册的社区来用，要改的不是一两个开关， 而是这条前提本身 —— 它渗在权限、可见性、同步、榜单每一层里。 有什么 --- --- 群聊存档 全文检索（FTS5 + 中文分词）、按人/按群/按时间的活跃度画像 论坛 版块、可见性收口、匿名帖、投票、悬赏、精华、草稿、定时发布 积分与赛季 打卡、榜单、商店、称号、补签卡 开放 API 令牌 + scope，读帖发帖、读群消息、逐群授权的代发（强制署名） GitHub 生态 账号绑定、项目目录、帖子里的链接自动展开成卡片 管理后台 30 个页面：权限矩阵、审计、封禁申诉、备份演练、健康检查 PWA 可安装、Web Push、离线兜底 --- 跑起来 需要 Node 22+（开发用的是 24）。数据库是本地 SQLite 文件，不需要额外的数据库服务。 打开 http://localhost:3000 。 第一次进去是没有账号的 —— 登录要走微信绑定，而那需要上游 API（见下）。 只想看看界面的话， npm run bootstrap 之后库里已经有版块、权限点和角色， 可以自己往 users 表里插一行再造一个会话。 常用脚本 命令 做什么 --- --- npm run bootstrap 迁移 + 种子 + 拉群列表。幂等 npm run sync 从上游同步消息与成员 npm run health 定时任务的一轮：探活、备份、各种结算、告警投递 npm run backup 本地备份（ npm run offsite 推异地） npm run db:generate 改完 src/lib/db/schema/ 之后生成迁移 npm test 跑全部测试（tsx 的 test runner，不做类型检查） 单跑一个测试文件： --- 依赖哪些外部服务 只有第一项是必须的，其余不配就是对应功能整体不出现 —— 不会报错，也不会半死不活 。 这是这个仓库里反复出现的一条原则：半套配置比没配置更糟， 它会让功能真的跑起来、真的失败，然后失败被当成偶发问题忽略掉。 服务 必须？ 不配会怎样 --- --- --- NekoBot API （微信侧的消息与机器人接口） 是 站起不来 —— 登录、同步、群列表全靠它 Web Push（VAPID，自己生成） 否 只有站内通知，没有系统推送 GitHub OAuth App 否 GitHub 绑定整个功能不出现：入口不渲染、路由 404 S3 协议的对象存储（R2 / B2 / MinIO） 否 没有异地备份副本，磁盘挂了备份跟着一起没 一个 LLM API 否 链接摘要、语义检索这些降级成没有 各自的环境变量、怎么申请、注意事项，都写在 .env.example 的注释里。 GitHub 绑定申请的权限 scope 是空的。 也就是说拿到的 token 只能读任何匿名访客也能读到的东西 —— 公开资料、公开仓库、公开动态。它碰不到任何私有仓库，也发不了任何东西。 抓数据走的是 /users/{login}/repos 和 /users/{login}/event","default_branch":null,"files":null,"tree":[],"storefront":"/r/AgenticLab-team","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/AgenticLab-team/web/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}