Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A workforce management portal for an AI Automation Consultancy — attendance, tasks, payroll, leave, expenses, and company announcements. Built with Next.js, Prisma (Postgres), and Vercel Blob for document storage — designed to deploy to Vercel with real, persistent data.
You need a Postgres database and a Vercel Blob store before the app will run — see Setting up storage below. Once you have both:
Open http://localhost:3000.檢視完整 README ↗A workforce management portal for an AI Automation Consultancy — attendance, tasks, payroll, leave, expenses, and company announcements. Built with Next.js, Prisma (Postgres), and Vercel Blob for document storage — designed to deploy to Vercel with real, persistent data.
You need a Postgres database and a Vercel Blob store before the app will run — see Setting up storage below. Once you have both:
npm install
cp .env.example .env # then fill in DATABASE_URL, DIRECT_URL, BLOB_READ_WRITE_TOKEN, SESSION_SECRET
npx prisma migrate deploy # creates the tables
npm run db:seed # only needed once, or after resetting the database
npm run dev
Open http://localhost:3000.
Running npm run db:seed creates one admin account and a handful of sample employee accounts — see prisma/seed.ts for the exact emails and starter passwords it uses. New employees added through the Employees page get a starter password shown on screen right after creation.
Change every seeded password immediately after first login — never leave a seeded/default password in place on a real deployment, and never commit real credentials to this file or anywhere else in the repo.
This project (ceo-portal under the linked Vercel account) already has both provisioned via Vercel's Storage tab:
POSTGRES_* / PG* vars, but this app specifically reads DATABASE_URL and DIRECT_URL, which were set manually to the pooled and unpooled connection strings Neon provided.BLOB_READ_WRITE_TOKEN — nothing else needed for that one.SESSION_SECRET was generated separately (a different random value per environment) and added under Settings → Environment Variables.Important gotcha: Neon's pooled connection string alone isn't enough for Prisma — it needs &pgbouncer=true appended to DATABASE_URL, or every query fails with Can't reach database server even though the pooled endpoint is perfectly reachable (Prisma's prepared-statement usage doesn't work against PgBouncer's transaction-pooling mode without that flag). DIRECT_URL (unpooled, used only for migrations) does not need this flag.
If you ever need to redo this setup from scratch (new project, rotated database, etc.):
DATABASE_URL to Neon's pooled connection string plus &pgbouncer=true, and DIRECT_URL to the unpooled one, for all three environments (production/preview/development).SESSION_SECRET.vercel link, then vercel env pull .env.local.Neon's compute also auto-suspends when idle — the very first query after a period of inactivity can take several seconds and occasionally times out once before succeeding on retry. This is normal and only affects cold starts, not steady traffic.
git push # Vercel deploys automatically (GitHub integration is connected)
# or, from the CLI:
npx vercel --prod
Migrations run automatically as part of every build (prisma migrate deploy && next build, see package.json), so there's nothing extra to do after a schema change beyond pushing.
npm run dev # start the dev server
npm run build # production build
npm start # run the production build
npm run db:studio # browse/edit the database in Prisma Studio
npm run db:seed # re-seed departments, admin, and sample employees
npm run db:migrate # apply pending migrations to the database in DIRECT_URL
secure in production, so the app must be served over HTTPS there — Vercel does this by default./api/documents/[id]) that checks the requester is an admin or the owning employee before streaming the file.npx prisma migrate reset against your Postgres database, careful — this is destructive) and run npm run db:seed again.