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

> Source: <https://dev.to/peggggykang/self-host-feedlog-ai-support-feedback-boards-on-docker-vercel-or-cloudflare-workers-5df1>
> Published: 2026-10-29 09:08:36+00:00

Optional later: OAuth providers, transactional email (status notifications, password reset), and object storage for attachments.

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.

Customers should not leave your product to ask a question or cast a vote. Install the package:

```
npm install @feedlog/widget
```

Guest-only bootstrap:

``` js
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](https://help.feedlog.ai/developers/widget).

`vector`.
`@feedlog/widget` behind your auth.
