Prerequisites
What you need before running answerLoops on your own infrastructure.
This page lists everything to have ready before you start the self-host quickstart. Nothing here takes long to get. Gathering it first saves you from bouncing between provider dashboards halfway through setup, which is the most common reason a first install stalls.
When you are done, you will have the tools installed, a Google sign-in client, an AI provider key, and two generated secrets.
Tools and services you need
| Requirement | Version | Notes |
|---|---|---|
| Node.js | 22 or newer | Needed to run the app outside Docker and for the CLI tools |
| pnpm | 11 or newer | The package manager the project uses |
| Docker | Latest stable | Includes Docker Compose v2. Required for the Docker setup in this guide |
| Git | Any | Needed to clone the repository |
PostgreSQL with the pgvector extension | 15 or newer | Stores your data and powers knowledge-base search |
Postgres with Docker needs no extra work. The development compose file runs pgvector/pgvector:pg16, which already includes pgvector. If you bring your own Postgres instead (Supabase, Railway, RDS, or a bare install), run CREATE EXTENSION vector; once in that database before starting the app. Every major managed provider supports the extension.
Accounts and keys
| Service | What it is for | Cost |
|---|---|---|
| Signing in. You create a Google OAuth client, as shown in OAuth setup | Free | |
| OpenAI (or another AI provider) | Drafting answers and indexing your knowledge base | Pay per use |
An OpenAI key is the simplest start: it covers both answering and knowledge-base indexing, and it is the only provider answerLoops reads from the server environment. Other providers are set per workspace in the dashboard. See AI model settings.
Optional accounts for channels
You do not need these to get started. Connect one channel first, confirm it works, then add the rest.
| Service | What it is for |
|---|---|
| Discord | Community bot |
| Slack | Community bot |
| GitHub App | Issue and Discussion ingestion, and knowledge-base sync |
Generate your secrets
Two settings need a random value. Generate each one separately:
openssl rand -hex 32Run it twice: one value for AUTH_SECRET and a different one for ENCRYPTION_KEY. Never use the same value for both.
Keep ENCRYPTION_KEY safe and do not change it after setup. It protects the API keys and tokens you save in the dashboard. If it changes, those saved credentials can no longer be read and everyone has to enter them again.