Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
This is the real, working backend for Midnight Loadboard: carrier verification signup, load posting,
load claiming, and the coverage attestation safety system we designed. Your existing marketing site
(built in GoDaddy Website Builder) stays as-is — its buttons will link out to this app.檢視完整 README ↗This is the real, working backend for Midnight Loadboard: carrier verification signup, load posting, load claiming, and the coverage attestation safety system we designed. Your existing marketing site (built in GoDaddy Website Builder) stays as-is — its buttons will link out to this app.
supabase-schema.sql from this folder, copy all of it, paste it into the SQL editor, and click Run.
This creates all your tables (carriers, loads, coverage_attestations, coverage_flags).NEXT_PUBLIC_SUPABASE_URLSUPABASE_SERVICE_ROLE_KEY.env.local.example to a new file named .env.localADMIN_PASSWORD=pick-a-password-only-you-know — this protects your new admin dashboardnpm install
npm run dev
Open http://localhost:3000 — try submitting the Get Verified form and Post a Load form, check that the data shows up in your Supabase project (Table Editor tab).
Important: New carrier signups default to verified_status = 'pending'. To approve them, go to
/admin, log in with your ADMIN_PASSWORD, and you'll land on a review screen (/admin/carriers)
listing every carrier with links to their submitted CDL, insurance, and authority documents, plus their
flag counts. Click Approve or Revoke there — no need to touch Supabase directly for this.
.env.local.midnight-loadboard-app.vercel.app).On your existing GoDaddy Website Builder pages, change the button links:
https://your-vercel-url.vercel.app/get-verifiedhttps://your-vercel-url.vercel.app/post-loadhttps://your-vercel-url.vercel.app/loadsGoDaddy Website Builder lets you edit a button's link URL directly in its editor — no code needed there.
Just run supabase-schema.sql — it already includes every table, including carrier_ratings and the
insurance_alert_sent_at column.
Your Supabase project has the original tables already, so don't re-run supabase-schema.sql (it'll
error on tables that already exist). Instead, run supabase-migration-ratings-and-alerts.sql once —
same steps: SQL Editor > New Query > paste > Run. It only adds what's new: the carrier_ratings table
and the insurance_alert_sent_at column on carriers.
You'll also want to add these new environment variables (same two places as before — .env.local and
your Vercel project settings):
RESEND_API_KEY / RESEND_FROM_EMAIL — powers email delivery of the driver confirmation link when a
driver only has an email on file (no phone). Free account at resend.com.CRON_SECRET — any long random string. Set it in Vercel's project settings and Vercel will
automatically use it to authenticate the daily insurance-expiration check (see vercel.json) —
nothing else to configure.Both lead-capture forms (/dispatch/contact for Steady Wake, /nightwatch for
broker early access) can tell you which link someone clicked, if you tag the
link when you post it: add ?src=<whatever-you-want> to the end.
Example: sharing the dispatch link in the "Small Fleet Owners" Facebook group?
Post midnightloadboard.com/dispatch?src=small-fleet-owners-fb instead of the
bare link. When someone fills out the form, the admin panel
(/admin/dispatch-leads or /admin/nightwatch-leads) will show
"from: small-fleet-owners-fb" on their entry. Run
supabase-migration-lead-source-tracking.sql once (SQL Editor > New Query >
paste > Run) if you haven't already — it adds the source column both forms
write to.
No tag on the link just means the "from:" line is left off — nothing breaks.
Carriers can now share their documents with one specific broker via a private
link instead of emailing a PDF — from /my-documents, enter who it's for
("Coyote Point Brokerage") and click "Create link". The link shows only that
carrier's verification status and documents (never anyone else's), and every
time it's opened, the carrier sees exactly when and how many times — right on
their /my-documents page. Links auto-expire after 30 days, or the carrier
can turn one off early.
Run supabase-migration-document-shares.sql once (SQL Editor > New Query >
paste > Run) if you haven't already — it creates the document_shares table
this feature uses.
(This is the idea from the "NightHaul" concept — proving something's true without handing over the whole document — built with a plain database and a random link token. No blockchain or cryptocurrency involved.)
carrier_secret (issued at signup) alongside the public Carrier ID before claiming a load or updating anything - closes the impersonation gap without a full account system. Self-service re-verification is live at /reverify/[id]: carriers can resubmit updated docs themselves using that same secret, the daily insurance-expiration cron now actually pauses lapsed carriers to pending_reverification and emails them the link, and admins have a manual "Request Re-verification" button plus a copyable reverify link per carrier. Flag escalation (/admin/flags, resolve/escalate) was also already fully built in an earlier session.supabase-schema.sql — full database structure (fresh installs)supabase-migration-ratings-and-alerts.sql — incremental migration (existing installs)vercel.json — the daily insurance-expiration cron scheduleapp/api/loads/[id]/claim/route.js — the core claim + attestation trigger logic (SMS/email dispatch)app/api/attestations/[token]/route.js — where "neither" creates a flag and puts a load on holdapp/api/cron/insurance-alerts/route.js — the daily insurance-expiration warning jobapp/api/loads/[id]/rate/route.js — carrier rating submission