内容
# Kanera
Kanera 是一款用于在工作区、工作板、列表和卡片中组织工作的项目管理应用程序。列表、标签和自定义字段在工作区级别定义,并由该工作区中的工作板共享。
[访问 kanera.app](https://www.kanera.app) | [文档](https://www.kanera.app/docs) | [快速入门](https://www.kanera.app/docs/getting-started) | [定价](https://www.kanera.app/pricing) | [功能](https://www.kanera.app/features)
## 数据模型
```text
组织
└─ 工作区
└─ 工作板
└─ 卡片
```
工作区成员可以访问工作区中的公共工作板。私有工作板可以通过工作板成员资格进一步限制访问。
工作板配置是工作区范围的:工作区中的每个工作板都使用相同的列表、标签和自定义字段。这与Trello等工具不同,后者的这些设置通常为每个工作板单独配置。
## 功能
- 看板、列表、日历、已分配工作和已完成工作视图
- 带有评论、附件、活动历史、观察者、和可分配的检查清单项的卡片
- 工作区和工作板级别的笔记
- 提及、通知、推送通知和工作区活动
- 基于触发器的自动化
- 全文搜索和筛选
- REST API、Webhooks 和 MCP 服务器
- Trello 和 Kanera 导入,支持 Excel 和 JSON 导出
- 响应式 Web 界面和可安装的渐进式 Web 应用程序
## 主机托管或自托管
Kanera 可以作为托管服务使用,也可以部署在您自己的基础设施上。
托管的 Kanera 提供 30 天的 Pro 试用期,无需信用卡。之后,团队可以继续使用 Basic 计划,升级到 Pro 计划,或自托管。有关当前计划详情,请参阅[定价](https://kanera.app/pricing)。
自托管部署使用与 Kanera Pro 相同的代码库,不按席位收费。运营人员负责基础设施、存储、维护和备份。
对于自托管:
- 标准 Docker 部署:[DEPLOY.md](DEPLOY.md)
- Dokploy 部署:[DOKPLOY_DEPLOY.md](DOKPLOY_DEPLOY.md)
- 自托管指南:[kanera.app/docs/self-host](https://www.kanera.app/docs/self-host)
## 源代码可用
Kanera 在 [Elastic License 2.0](LICENSE) 下提供源代码。您可以检查、修改和自托管该软件供自己使用。您不得将 Kanera 作为托管或托管服务提供给第三方。
Kanera 名称、徽标和品牌资产单独受 [TRADEMARKS.md](TRADEMARKS.md) 约束。
## 开发者
此存储库包含 Kanera 应用程序和支持服务。
**技术栈:** Angular 21、Fastify 5、Socket.IO 4、Postgres 18、Drizzle ORM、Valkey、Docker Compose 和 pnpm 工作区。
### 本地设置
先决条件:
- Node.js 24
- pnpm 11,通常通过 `corepack enable`
- Docker,用于本地 Postgres 和 Valkey
安装依赖项并配置环境:
```bash
pnpm install
cp .env.example .env
```
示例文件包含在 `localhost:5433` 上使用 Postgres 和在 `localhost:6379` 上使用 Valkey 的开发默认值。在将应用程序暴露在本地机器之外之前,请用唯一的随机值替换 `JWT_SECRET` 和 `MEDIA_SIGNING_SECRET`。
启动本地基础设施,运行迁移,然后启动应用程序:
```bash
pnpm dev:db
pnpm db:migrate
pnpm dev
```
在 <http://localhost:4200> 打开。
Adminer 可在 <http://localhost:8080> 访问。公共 API 和 MCP 服务器在启动时单独运行,命令为 `pnpm dev:public-api` 和 `pnpm dev:mcp`。
要加载一个逼真的演示工作区:
```bash
pnpm dev:db:reset:seed
```
种子账户详细信息位于 [dev-db-seed-content/README.md](dev-db-seed-content/README.md)。
### 有用的命令
```bash
pnpm dev # api :3000 + worker :3003 + web :4200
pnpm dev:public-api # 公共集成 API 在 :3001
pnpm dev:mcp # MCP 服务器在 :3002
pnpm dev:db # 本地 Postgres + Valkey + Adminer
pnpm dev:db:down # 停止本地数据库服务
pnpm db:generate # 生成 Drizzle 迁移
pnpm db:migrate # 应用待处理迁移
pnpm build # 构建 Web 应用程序并类型检查其他包
pnpm lint # 类型检查和 lint 所有包
pnpm test # 运行单元和集成测试套件
pnpm test:api # API 单元和路由测试
pnpm test:api:integration # API 集成测试与隔离 Postgres
```
## 存储库布局
```text
apps/api/ Fastify API、worker、公共 API、迁移
apps/web/ Angular Web 应用程序
apps/mcp/ 用于 AI 客户端的 MCP 服务器
packages/shared/ 共享模式、DTO、事件和工作区默认值
docker/ 本地和生产支持文件
```
## 架构说明
- **基于工作区的模型:** 列表、标签和自定义字段在工作板之间共享。工作区成员资格是默认访问模型;私有工作板可以进一步限制成员资格。
- **实时协作:** REST 是写入路径,Socket.IO 将类型化事件扇出到连接的客户端。
- **持久事件:** 工作板和工作区范围的事件记录在出站队列中,以便跨进程实时传递和 Webhooks。
- **公共 API 和 Webhooks:** 工作区 API 密钥支持集成,而无需暴露用户凭证。
- **MCP 支持:** AI 客户端可以通过 MCP 服务将 Kanera 连接为结构化的项目上下文。
## 许可证
在 [Elastic License 2.0](LICENSE) 下提供源代码。