想象一下:一个小型 CNC 加工厂,图纸散落在工程师的硬盘里,物料清单在 Excel 表格中,客户沟通记录在邮箱里,每次找一份历史项目的 DXF 文件都要翻半天。市面上的 ERP 系统要么太重、要么太贵,部署和维护成本远超小团队的承受能力。这个开源项目正是冲着这个痛点来的——一个用 Django 6.1 和 HTMX 构建的自托管 CRM/ERP,专为工程和制造团队设计,把项目、任务、物料、技术图纸、文档和内部知识全部收进一个统一工作区。

先说技术栈,它没有采用时下流行的前后端分离方案,而是走了服务端渲染 + 轻量交互的路线:后端是 Django 6.1(Python 3.14+,数据库默认 SQLite),前端用 HTMX 2.0.4(一种让 HTML 片段直接与服务器交互的库,不用写复杂 JavaScript)配合 Alpine.js 3.x(一个轻量级的 JS 交互框架)和 Tailwind CSS 4。整个界面通过 HTMX 的 slide-over 表单实现增删改查,不需要页面跳转,体验接近单页应用,但没有 Node 重型构建链的负担。

功能上,它覆盖了制造团队的核心场景。每个项目创建后会自动生成一个编号文件夹,比如 `{编号}_{名称}_Project/`,里面按 documents、drawings、models 等子文件夹自动归类,无需手动整理。项目完成后可以归档,保持工作区整洁。物料和 BOM(物料清单,制造一个产品所需的全部零件和原材料列表)按项目管理,支持分类、定价和附件。工程文件方面,支持 DXF(CAD 图纸交换格式)、STEP 和 STL(3D 模型格式)的上传和预览。知识库模块可以把网页文章通过链接直接保存,自动转成 Markdown 文件落盘,图片和附件也一并归档,内容同时存在数据库和磁盘上,方便迁移和备份。

架构上,项目拆成了 14 个 Django app,包括 core、accounts、companies、contacts、projects、materials、tasks、notes、documents、library、parts、assistant、calendar_app、generator。所有业务模型都继承 TimeStampedModel,自动带 created_at、updated_at、created_by 和 is_active 字段,配合软删除机制,数据不会真正丢失。全局搜索覆盖所有实体类型,活动日志通过 GenericForeignKey 记录每一次 CRUD 操作。项目还支持 ZIP 导出/导入,带 JSON manifest,方便备份和迁移。

最让我意外的是 AI 助手的深度。它不只是聊天机器人,而是通过 COMMANDS 模式直接操作 CRM 数据。比如输入“Create project 001, Office Building on 2026-06-15”或“Add material Bolt 50 to project Test”,系统用基于正则的意图检测解析自然语言,然后执行对应的业务操作。AI 提供商可配置 Ollama(本地模型)、Anthropic、OpenAI、Google、Mistral、Groq、DeepSeek、OpenRouter、OpenCode 等,API 密钥用 AES-GCM(一种对称加密算法)加密存储。浏览器代理功能还能让 AI 访问网页、下载文件,但做了 SSRF(服务端请求伪造,防止攻击者诱导服务器访问内网)保护、路径遍历保护和开放重定向保护,写操作需要两步确认,并有 10 秒撤销窗口和审计日志。这些安全细节说明它不是简单堆功能,而是考虑了真实部署环境的风险。

部署也很简单:Python 虚拟环境、pip install、npm run build、migrate、collectstatic、createsuperuser 就能跑起来,Windows 下还提供了 install.bat 一键脚本,默认凭据 admin/admin。版本号用 `0.7.{git_commit_count}` 自动生成,挺有 geek 风格。许可证是 MIT,可以放心改。

这个项目的思路对开发者很有启发:如果你所在的小团队需要内部业务系统,不必一上来就上重型框架,Django + HTMX 的组合依然能做出体验流畅、功能完整的工具。AI 与业务系统的集成也不一定非要复杂的 Agent 框架,用命令模式加意图检测就能解决很多实际需求。当然,它默认 SQLite,适合单机或小规模并发;如果要上生产,可能需要换 PostgreSQL 并补充备份策略。但作为自托管 CRM 的参考实现,它把“轻量、本地、够用”这三个词诠释得很到位。

阅读原文 → 返回 AI 技术文档

内容与图片版权归原作者所有 · 原文: https://github.com/OlegUshakov-pl/CRM