Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證AI platform for Finnish businesses
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Multi-tenant AI business assistant for Finnish SMBs.
Architecture source of truth: docs/ARCHITECTURE.md.
Next.js 15 (App Router) · TypeScript strict · Tailwind + shadcn/ui · Supabase (Postgres + pgvector, Auth, Storage, Realtime) · Prisma · Anthropic Claude + OpenAI · Vapi · Stripe · Resend · Upstash (Redis + QStash) · next-intl (fi/en/ar, RTL).
Owned primitives live in src/components/ui. Add more with:
• Tenant isolation (see docs/DEVELOPMENT.md §5): never import @/server/db/prisma outside檢視完整 README ↗Multi-tenant AI business assistant for Finnish SMBs.
Architecture source of truth: docs/ARCHITECTURE.md.
Next.js 15 (App Router) · TypeScript strict · Tailwind + shadcn/ui · Supabase (Postgres + pgvector, Auth, Storage, Realtime) · Prisma · Anthropic Claude + OpenAI · Vapi · Stripe · Resend · Upstash (Redis + QStash) · next-intl (fi/en/ar, RTL).
npm install
cp .env.example .env # fill in all values (env.ts fails the build otherwise)
# Database
npm run db:migrate # local development migrations
# Existing shared environments: run the read-only compatibility preflight
# before db:deploy. See docs/release-runbook.md for the protected release flow.
psql $DIRECT_URL -v ON_ERROR_STOP=1 -f prisma/sql/006_legacy_baseline_preflight.sql
npm run db:deploy # tracked baseline + feature + RLS migrations
psql $DIRECT_URL -f prisma/sql/004_storage.sql # Supabase only; safe to rerun
npm run db:seed # global prompt library + default pipeline data
# Calendar & Booking RLS is applied by the tracked Prisma migration
# 20260718000000_calendar_booking_rls. Do not run prisma/sql/005 separately.
# prisma/sql/001-003 are retained only for historical operator compatibility;
# new environments receive those database objects from tracked migrations.
# Supabase dashboard (one-time):
# - Auth → Hooks → register public.custom_access_token_hook (access token hook)
# - Auth → Providers → enable Google OAuth
# - Auth → Email templates → localized templates
# Stripe (test mode):
# - create Products syveka_starter / syveka_pro with monthly+annual EUR prices
# - paste price ids into .env
stripe listen --forward-to localhost:3000/api/v1/webhooks/stripe
npm run dev
Owned primitives live in src/components/ui. Add more with:
npx shadcn@latest add dialog dropdown-menu avatar tooltip table tabs badge select sheet sonner
docs/DEVELOPMENT.md §5): never import @/server/db/prisma outside src/server/db (ESLint-enforced). Business code uses tenantDb(ctx.orgId).docs/DEVELOPMENT.md §6): every Server Action / API handler starts with requirePermission("...").docs/DEVELOPMENT.md §9): logical Tailwind utilities only (ms-* me-* ps-* pe-* text-start).docs/DEVELOPMENT.md §10): Zod schemas in src/lib/validators are shared by forms and actions.audit().| Module | Status |
|---|---|
| Foundation: Next 15 · TS strict · Tailwind/shadcn · Prisma (30 tables) · RLS · Supabase · env validation | ✅ |
| Auth: login/register/magic link/forgot/reset/verify · onboarding · invites · org switch | ✅ |
RBAC: 5-role matrix · requirePermission · audit-logged denials | ✅ |
| AI Chat: SSE streaming · model router · guardrails · tools · citations · quotas | ✅ |
| Knowledge Base: upload → extract → chunk → embed (pgvector) → RAG | ✅ |
| CRM: contacts (search/filter/GDPR) · deals kanban · activities · audit | ✅ |
| Calendar: month view · event CRUD · Voice-AI-badged events | ✅ |
| Voice AI: Vapi sync · +358 provisioning · in-call tools · post-call pipeline | ✅ |
| Workflows: 6 triggers · 6 step types · resumable QStash runner · builder UI | ✅ |
| Billing: Stripe checkout/portal/webhooks · entitlements · usage meters · plan cards | ✅ |
| Notifications: in-app feed · Realtime badge · email templates | ✅ |
| Analytics: sales funnel · AI usage · voice sentiment (SSR SVG charts) | ✅ |
| Prompt Library: global+org templates · variables · use-in-chat | ✅ |
| Settings: profile · organization+AI instructions · members · billing · API keys · audit log | ✅ |
| Superadmin: org overview · platform usage | ✅ |
| CI/CD: lint/type/test · i18n parity · gitleaks · RLS isolation job · staged deploy | ✅ |
| Tests: unit (RBAC, chunker, citations, plans, interpolation) · RLS SQL · Playwright smoke | ✅ |
| GDPR: consent capture · retention purge job · erasure Edge Function · EU-only infra | ✅ |
Deferred to Phase 3 (per roadmap §25): public REST API surface beyond webhooks (auth helper resolveApiKey is ready), Google/Outlook calendar sync, CSV contact import UI, PWA push, reranking, custom-LLM voice mode.
npm install # (registry unavailable in the build sandbox — run locally)
npm run typecheck && npm test
node scripts/check-i18n-parity.mjs
npm run migrations:check
Release operators must follow docs/release-runbook.md.