Self-hosting FAQ
Quick answers for self-hosters: no Redis or pg_cron needed, OAuth callback URLs, which domain to use, turning on modules, AI with local models, image tags, upgrades, and where to report bugs.
Quick answers to the questions people ask most often when self-hosting the open-source edition of Quackback.
Do I need Redis, Dragonfly, or pg_cron?
No, you don't. Since 0.14, PostgreSQL is the only datastore. It holds your data, the background job queue, caches, rate limits, and realtime events. You need PostgreSQL 14 or newer with pgvector 0.5.0+ and pg_trgm. The pg_cron extension is not required. If you're upgrading from 0.13, delete REDIS_URL and the Redis or Dragonfly service. See System requirements and Upgrade from 0.13 to 0.14.
Do I need object storage?
Only if you want file uploads (images, attachments, logos, videos). The Docker Compose stack includes S3-compatible storage (PGSTY Silo), so uploads work out of the box. Elsewhere, point the S3_* variables at any S3-compatible service. Without storage, uploads are disabled. See Environment variables.
What callback URL do I register for a sign-in provider?
https://<your domain>/api/auth/callback/<provider>, where <your domain> is your BASE_URL and <provider> is the provider id, for example:
https://feedback.yourcompany.com/api/auth/callback/githubhttps://feedback.yourcompany.com/api/auth/callback/googlehttps://feedback.yourcompany.com/api/auth/callback/microsoft
The exact URI is shown next to each provider when you configure it in Admin > Settings > Access & Security, so copy it from there. Custom OIDC and SSO providers added before 0.14 may still use /api/auth/oauth2/callback/<id>; register whichever URI the provider's Edit view shows. See Set up OAuth providers and Set up single sign-on.
Which domain should I use?
One instance serves everything (the feedback portal, admin, widget, help center, and status page) from the domain in BASE_URL. Pick a broad hostname that fits every module you plan to use, such as support.yourcompany.com or help.yourcompany.com, rather than one named after a single feature.
The help center can also be served from its own subdomain: set it in Admin > Settings > Help Center > Domains & languages, point that hostname's DNS at the same server, and make sure your reverse proxy serves it with a valid certificate.
Why don't I see the status page, help center, or support inbox?
They're modules, and some are off until you turn them on. Go to Admin > Settings > General > Modules and switch on Support (inbox and Messenger chat), Help Center, Changelog, or Status. Feedback & Roadmaps is always on. For live chat in the widget, also enable the Messages tab in the widget settings.
Can I use AI with my own model or a local model server?
Yes, you can. AI is off until you configure it, and Quackback works with any OpenAI-compatible endpoint, including local model servers: set OPENAI_BASE_URL, OPENAI_API_KEY, AI_CHAT_MODEL, and AI_EMBEDDING_MODEL. Data for AI features goes only to the endpoint you configure. Set a per-feature model to off to disable just that feature. See Environment variables.
Which image tag should I run?
Images are published to ghcr.io/quackbackio/quackback:
Tag | What it is |
|---|---|
| A tested release. Recommended for production. |
| The most recent release |
| Built from every change merged to the main branch. Gets fixes first, but carries more risk. |
Pin a release version in production (QUACKBACK_TAG=0.14.0 in .env with Docker Compose), and back up before every upgrade. Fixes land in versioned releases; use main only if you need a specific fix before it's released and accept the risk.
How do I upgrade?
Back up the database and object storage, pull the new image, and restart. Migrations run automatically on startup. Migrations can't be reversed, so rolling back means restoring your backup. See Deploy with Docker, and for the one-time 0.13 steps, Upgrade from 0.13 to 0.14.
How do I send email?
Configure exactly one sending provider: SMTP, Amazon SES, or Resend. If more than one is configured, the app refuses to start. Without a provider, sign-in codes are printed to the server log. See Configure email delivery.
Does my instance send data to Quackback?
Only an anonymous daily usage snapshot with banded counts, never names, emails, URLs, hostnames, or content. Turn it off with DISABLE_TELEMETRY=true. See Telemetry.
Where do I report a bug or ask for help?
Open an issue on GitHub Issues with your Quackback version, deployment method, PostgreSQL version, steps to reproduce, and relevant logs (secrets removed). For questions, use GitHub Discussions. See Troubleshoot common issues first.
Related articles
Was this helpful?
Your feedback shapes what we write next.
