看板应用

一个基于Next.js、Ant Design和Prisma构建的看板应用,支持拖拽排序、卡片标签、优先级过滤和AI代理集成。

  • by alexwasik
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 alexwasik/wasiban

使用说明

Wasiban

使用Next.js、Ant Design和Prisma构建的看板应用程序。

特性

  • 具有拖放重新排序功能的板、列和卡
  • 卡片标签、截止日期、优先级和降价描述
  • 每张卡的状态更新和线程注释
  • 搜索和优先级过滤
  • 暗模式支持
  • 用于AI代理集成的MCP服务器

本地运行(npm+SQLite)

先决条件

  • Node.js v20.19+、v22.12+、v24.0+(prisma要求)
  • npm

设置

  1. 安装依赖项

    npm install
    
  2. 配置环境

    创建一个 .env 项目根目录中的文件:

    DATABASE_URL="file:./dev.db"
    
  3. 运行迁移

    npx prisma migrate dev
    

    这将应用迁移并自动生成Prisma客户端。

  4. 为数据库添加种子 (可选--创建示例板)

    npm run db:seed
    
  5. 启动开发服务器

    npm run dev
    

    该应用程序将在 http://localhost:3003.

有用的脚本

命令 描述
npm run dev 使用热重新加载(端口3003)启动开发服务器
npm run build 为生产而建
npm run start 启动生产服务器
npm run prisma:migrate 创建并应用新的迁移
npm run prisma:studio 打开Prisma Studio(数据库GUI)
npm run db:reset 重置并重新运行所有迁移
npm run db:seed 为数据库添加样本数据种子

使用Docker(或Podman)运行

注: 如果您位于公司代理/防火墙之后,则可能需要处理TLS证书验证。有两个选项可供选择:

选项A——禁用TLS验证(仅限开发,不适用于生产)

添加 --tls-verify=false 旗帜(波德曼)或 --insecure 标志(Docker)绕过注册表TLS。您还必须设置 NODE_TLS_REJECT_UNAUTHORIZED=0 在 build Docker的一个阶段,这样Node.js(Prisma、npm)在构建过程中进行网络调用时就可以跳过TLS验证:

# In the build stage, before the prisma commands:
ENV NODE_TLS_REJECT_UNAUTHORIZED=0
RUN npx prisma generate
RUN npx prisma migrate deploy
RUN npm run build

选项B——信任您的企业CA证书(推荐)

一种更安全的方法是将您的公司CA证书文件复制到容器中,并在任何网络调用之前的构建阶段信任它:

# In the build stage, before the prisma commands:
COPY corporate-ca.pem /usr/local/share/ca-certificates/corporate-ca.crt
RUN update-ca-certificates
RUN npx prisma generate
RUN npx prisma migrate deploy
RUN npm run build

Podman用户: Podman与Docker CLI兼容。更换每个 docker 命令如下(和 医生.md)与 podman其他一切——标志、卷语法、图像名称——都保持不变。命名卷通过以下方式进行管理 podman volume 而不是 docker volume.

看 医生.md 了解完整的Docker说明。快速启动:

  1. 塑造形象

    docker build -t wasiban .
    
  2. 运行容器

    docker run -p 3003:3003 -v wasiban-data:/app/data wasiban
    

    该应用程序将在 http://localhost:3003.

    容器在首次启动时自动运行迁移并为数据库添加种子。这 -v wasiban-data:/app/data 标志会在重新启动时保留SQLite数据库。

代码更改后的重建

docker build -t wasiban . && docker run -p 3003:3003 -v wasiban-data:/app/data wasiban

MCP服务器

Wasiban揭露了一个 模型上下文协议 服务器,这样AI代理就可以以编程方式读取和管理电路板。看 MCP.md 获取完整文档。

手动运行服务器

npm run mcp

通过Claude CLI连接

有两种连接方式-- 本地 (直接读取源文件,使用本地 dev.db)或 码头工人 (使用构建的映像及其持久卷)。

选项1——当地(建议开发)

claude mcp add --transport stdio --scope user wasiban-local \
  -- /path/to/wasiban/scripts/mcp.sh

替换 /path/to/wasiban 带有克隆仓库的绝对路径。

选项2——Docker(或Podman)

claude mcp add --transport stdio --scope user wasiban-docker \
  -- docker run -i -v wasiban-data:/app/data wasiban node ./node_modules/.bin/tsx src/mcp/server.ts

Podman用户更换 docker 随着 podman:

claude mcp add --transport stdio --scope user wasiban-docker \
  -- podman run -i -v wasiban-data:/app/data wasiban node ./node_modules/.bin/tsx src/mcp/server.ts

如果自上次构建以来进行了代码更改,请运行 docker build -t wasiban . (或 podman build -t wasiban .)首先。

可用工具

工具 说明
list_boards 列出所有板
get_board 找一块有所有列和卡片的板
create_board 创建新板
update_board 更新电路板的名称、描述或颜色
delete_board 删除板
create_column 向板中添加列
create_card 在列中创建卡片
update_card 更新卡片的标题、描述、状态更新、到期日期或优先级
move_card 将卡片移动到其他列或位置
filter_cards_by_priority 查找与优先级匹配的卡片,可选范围为板或列
get_board_labels 为电路板定义所有标签
create_label 在板上创建标签
delete_label 删除标签
add_label_to_card 在卡片上贴标签
remove_label_from_card 从卡片上移除标签
get_comments 获取卡片的所有评论
create_comment 在卡片上添加评论(支持Markdown)
delete_comment 删除评论

可用资源

资源URI 描述
boards://list 所有电路板的JSON列表
board://{id} 全板数据,包括列、卡和标签

优先级

卡片支持四个优先级,并在看板上显示自定义图标:

优先级 图标 颜色
低 --(破折号) 灰色
中号 ›(单V形) 绿色
高 ›\8250](双V形) 橙色
最高 ›

优先级可以在卡片细节抽屉中设置,并从板工具栏或通过API/MCP服务器进行过滤。

您还可以直接调用REST端点:

GET /api/cards?priority=high&boardId=<board-id>
GET /api/cards?priority=highest&columnId=<column-id>

环境变量

变量 描述 默认值
DATABASE_URL SQLite文件路径或libsql URL file:./dev.db

技术栈