跳到正文
DEV Community· Peggy·· 3 小時前AI 評分51

FeedLog 自託管指南:在 Docker、Vercel 或 Cloudflare Workers 部署 AI 支援與意見回饋看板

Self-Host FeedLog: AI Support + Feedback Boards on Docker, Vercel, or Cloudflare Workers

AI 導讀

FeedLog 自託管指南介紹如何在 Docker、Vercel 或 Cloudflare Workers 部署 AI 支援與意見回饋看板,並把支援 Widget 嵌入產品。

正文

Cover image for Self-Host FeedLog: AI Support + Feedback Boards on Docker, Vercel, or Cloudflare Workers

Peggy

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

  1. Stand up cloud (currently free) or self-host with Docker + vector.
  2. Seed Help Center collections the Agent should cite.
  3. Enable the widget in Settings → Widget; ship @feedlog/widget behind your auth.
  4. Triage inbox → boards; keep Open internal, publish Planned/In Progress on the roadmap.
  5. 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