Docker Compose (v2.0+) - included with Docker Desktop
4GB+ RAM available
10GB free disk space
Apple Silicon (M1/M2/M3/M4): Rapida’s base images are built for linux/amd64. The Makefile automatically sets DOCKER_DEFAULT_PLATFORM=linux/amd64 so all make commands work correctly without any extra configuration. Always use make build-all rather than running docker compose build directly.
# Using Homebrewbrew install --cask docker# Or download from Docker website# https://www.docker.com/products/docker-desktop# Then open Docker.app from Applications folder.
2
Verify Installation
Copy
# Check Dockerdocker --version# Expected: Docker version 20.10+# Check Docker Composedocker compose version# Expected: version 2.0+# Test Dockerdocker run hello-world
# Create data directories and set permissionsmake setup-local
This creates:
~/rapida-data/assets/db - PostgreSQL
~/rapida-data/assets/redis - Redis
~/rapida-data/assets/opensearch - OpenSearch (only used with the knowledge base profile)
5
Build images
Voice Only (recommended)
With Knowledge Base
Builds all core services. Does not include document-api or opensearch.
Copy
make build-all
Builds everything, including document-api (Python image) and pulls the OpenSearch image.
Requires 8–16 GB RAM due to OpenSearch.
Copy
make build-all-with-knowledge
Initial build takes 5–10 minutes depending on your network speed.
6
Start Rapida
Voice Only (recommended)
With Knowledge Base
Starts all core services: web-api, assistant-api, integration-api, endpoint-api, UI, PostgreSQL, Redis, and Nginx.
document-api and opensearch are not started.
Copy
make up-all
Starts everything above plusdocument-api and opensearch.
Use this if you want to upload documents and use RAG / vector search in your assistants.
Edit docker-compose.yml and comment out or remove the postgres service:
Copy
# postgres:# image: postgres:15# ...
Update PostgreSQL environment variables in docker/web-api/.web.env:
Copy
POSTGRES__HOST=host.docker.internal # Point to host machinePOSTGRES__PORT=5432POSTGRES__DB_NAME=web_dbPOSTGRES__AUTH__USER=your_userPOSTGRES__AUTH__PASSWORD=your_password
OpenSearch is only required for the knowledge base. If you don’t need knowledge base features, simply run make up-all (without the with-knowledge profile) and OpenSearch is not started at all.If you do need knowledge base support and want to use an existing OpenSearch instance, comment out the opensearch service in docker-compose.knowledge.yml:
For developers who prefer not to use Docker. This requires installing each component individually.
Same choice applies here: Voice Only (PostgreSQL + Redis only) or With Knowledge Base (PostgreSQL + Redis + OpenSearch + Python). If you only need voice assistants, skip the OpenSearch and Python/document-api sections below.
# Connect to PostgreSQLpsql postgres# Run these SQL commands:CREATE USER rapida_user WITH PASSWORD 'rapida_db_password';CREATE DATABASE web_db OWNER rapida_user;CREATE DATABASE assistant_db OWNER rapida_user;CREATE DATABASE integration_db OWNER rapida_user;CREATE DATABASE endpoint_db OWNER rapida_user;GRANT ALL PRIVILEGES ON DATABASE web_db TO rapida_user;GRANT ALL PRIVILEGES ON DATABASE assistant_db TO rapida_user;GRANT ALL PRIVILEGES ON DATABASE integration_db TO rapida_user;GRANT ALL PRIVILEGES ON DATABASE endpoint_db TO rapida_user;\q
OpenSearch is only required for the knowledge base. If you don’t need knowledge base features, you can skip OpenSearch entirely — just don’t set OPENSEARCH__HOST and the assistant-api will start without knowledge base support.If you do need knowledge base support, update the OpenSearch env vars in your assistant-api config: