FeedLog 自託管指南:在 Docker、Vercel 或 Cloudflare Workers 部署 AI 支援與意見回饋看板
Self-Host FeedLog: AI Support + Feedback Boards on Docker, Vercel, or Cloudflare Workers
FeedLog 自託管指南介紹如何在 Docker、Vercel 或 Cloudflare Workers 部署 AI 支援與意見回饋看板,並把支援 Widget 嵌入產品。
Optional later: OAuth providers, transactional email (status notifications, password reset), and object storage for attachments.
Similar feedback with Postgres vectors
Duplicate feature requests are the silent killer of feedback boards. FeedLog’s similar-idea path stores embeddings (documented as OpenAI text-embedding-3-large at 768 dimensions in the project README) and uses pgvector so new posts can surface near-duplicates before the board fragments.
Engineering takeaway: treat vector as a first-class dependency in your infra checklist, same as the app image. If you migrate hosts later, back up embeddings with the rest of Postgres — they are part of product memory, not cache.
Embed the Widget SDK
Customers should not leave your product to ask a question or cast a vote. Install the package:
npm install @feedlog/widget
Guest-only bootstrap:
import { createWidget } from '@feedlog/widget'
createWidget({
baseUrl: 'https://acme.feedlog.ai', // your workspace URL
theme: 'auto',
})
For product accounts, pass auth.getToken (server-signed HS256 JWT with required email and exp) and optional auth.login that opens your existing sign-in UI. Call createWidget() once in client-only startup — a Nuxt .client plugin is a natural fit; the package can be imported during SSR, but initialization must run in the browser.
openWidget() / closeWidget() / updateWidget() let you hide the default launcher and drive Help from your own nav, sync theme, and adjust zIndex so the panel does not fight your modals. When a customer sends a message, the widget shares page path, title, and meta description as Agent context (query strings and body content are excluded).
Step-by-step options, SSO claims, and troubleshooting live in the widget installation guide.
Suggested rollout for a SaaS team
- Stand up cloud (currently free) or self-host with Docker +
vector. - Seed Help Center collections the Agent should cite.
- Enable the widget in Settings → Widget; ship
@feedlog/widgetbehind your auth. - Triage inbox → boards; keep Open internal, publish Planned/In Progress on the roadmap.
- Close the loop with changelog entries when posts hit Completed.
You end up with one MIT codebase instead of a support SaaS plus a feedback SaaS — and you can inspect every migration, Nitro route, and widget call yourself.
Clone it, enable
vector, set the three required secrets, and put the widget on a staging page before you invite your first customer into the loop.
來源:DEV Community · dev.to