Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A desktop CRM for working cash offers on homes through listing agents: who was contacted, notes per deal and per property, follow-ups as tasks, and a pipeline from first comping to closing.
Built from the design handoff in design_handoff_deal_crm/ (the HTML there is a reference, not code that ships).
Stack: Next.js 16 (App Router) · React 19 · TypeScript · Tailwind 4 · Postgres on Supabase (email login) · Drizzle ORM.
Dashboard · Leads (server-side filters, sorts, search, saved views, bulk actions, paging) · Board · Deal detail · Add/Edit deal · Tasks · Agents · Agent profile · Schedule modal · Settings.
Filtering, sorting, search and paging all run in the database, so Leads, the deal picker and agent search work with thousands of deals.
npm install
.env.example to .env.local and fill it in:
| Variable | Where to get it |
|---|---|
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase → Project Settings → API |
DATABASE_URL | Supabase → Connect → Transaction pooler string (server only, never exposed to the browser) |
crm schema and leaves any other schema alone:
npm run db:migrate
/login:
npm run dev
[email protected] npm run db:seed
| Command | What it does |
|---|---|
npm run dev / build / start | Next.js |
npm run db:migrate | Applies db/migrations/*.sql in order, once each |
npm run db:seed | Sample data (refuses if the user already has deals) |
npm test | Unit tests for URL/filter parsing, formatting, time zones and the stage model |
npm run lint | ESLint |
proxy.ts protects every route except /login. Every query is scoped by the verified user id, every table has an owner column, and composite foreign keys stop a row from pointing at another user's deal. Row-level security is on for all tables, and the browser-facing roles have no access to the crm schema at all.app/(app)/… authenticated screens (dashboard, leads, board, deals, tasks, agents, settings)
app/login sign in / sign up
components/ shared UI (Button, Modal, Sidebar, ScheduleModal, …)
lib/ queries, server actions, spec/validation, formatting
db/migrations/ SQL schema (source of truth for constraints, triggers and RLS)
scripts/ migrate + seed
tests/ unit tests
Add the three environment variables above to the project, run npm run db:migrate once against the production database, and deploy. Use the pooler connection string for DATABASE_URL.
app/api/dealio (the Anthropic + DealioDesk MCP route) predates this build and is untouched; it needs ANTHROPIC_API_KEY, DEALIO_MCP_URL, DEALIO_MCP_TOKEN.