answerLoopsanswerLoopsDocs
Self-hosting guide

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

RequirementVersionNotes
Node.js22 or newerNeeded to run the app outside Docker and for the CLI tools
pnpm11 or newerThe package manager the project uses
DockerLatest stableIncludes Docker Compose v2. Required for the Docker setup in this guide
GitAnyNeeded to clone the repository
PostgreSQL with the pgvector extension15 or newerStores 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

ServiceWhat it is forCost
GoogleSigning in. You create a Google OAuth client, as shown in OAuth setupFree
OpenAI (or another AI provider)Drafting answers and indexing your knowledge basePay 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.

ServiceWhat it is for
DiscordCommunity bot
SlackCommunity bot
GitHub AppIssue and Discussion ingestion, and knowledge-base sync

Generate your secrets

Two settings need a random value. Generate each one separately:

openssl rand -hex 32

Run 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.

Where to go next

On this page