Two requirements:
- Postgres 14 or newer.
- The
pgvectorextension. Required for semantic memory.
Enable pgvector
- Supabase: Database → Extensions → enable
vector. - Neon: Settings → Extensions → enable
vector. - Railway: Database → Extensions tab → enable
vector. Or runCREATE EXTENSION IF NOT EXISTS vector;. - Self-hosted:
CREATE EXTENSION IF NOT EXISTS vector;
Update docker-compose.yml
# docker-compose.yml — comment out the bundled postgres service
services:
# postgres:
# image: pgvector/pgvector:pg16
# ...
app:
image: ghcr.io/getkerno/kerno:latest
# remove depends_on: postgres
Set DATABASE_URL
# .env
DATABASE_URL=postgresql://user:pass@host:5432/dbname
On first boot the engine creates the memory_chunks table (pgvector), the pgboss schema (job queue), and the app_config table (encrypted config store) automatically.