Docker Compose Setup
Run Brainz Lab on a single server with Docker Compose.Prerequisites
- Docker 24+
- Docker Compose 2.20+
- 4GB RAM minimum
- 20GB disk space
One-Line Install
The fastest way to get started:- Clone the stack repository
- Generate secure keys
- Create your
.envfile - Show next steps
Manual Setup
1. Clone the Stack
2. Run Setup
.env file.
3. Start the Stack
4. Access the Services
| Service | Subdomain | Direct Port |
|---|---|---|
| Recall (Logs) | http://recall.localhost | http://localhost:3001 |
| Reflex (Errors) | http://reflex.localhost | http://localhost:3002 |
| Pulse (APM) | http://pulse.localhost | http://localhost:3003 |
| Traefik Dashboard | - | http://localhost:8080 |
For subdomain routing to work locally, add these to
/etc/hosts:Docker Compose File
docker-compose.yml
Traefik Configuration
Static Config
traefik/traefik.yml
Dynamic Routes
traefik/routes.yml
Production Setup
Custom Domain
Updatetraefik/routes.yml for your domain:
Enable HTTPS
Add totraefik/traefik.yml:
Configure DNS
Management Scripts
View Logs
Check Status
Stop Services
Reset (Warning: Deletes Data)
Connect Your App
Configure your Rails app to use your self-hosted instance:config/initializers/brainzlab.rb
Docker Images
Images are available from:| Registry | Image |
|---|---|
| Docker Hub | brainzllc/recall:latest |
| Docker Hub | brainzllc/reflex:latest |
| Docker Hub | brainzllc/pulse:latest |
| GitHub | ghcr.io/brainz-lab/recall:latest |
| GitHub | ghcr.io/brainz-lab/reflex:latest |
| GitHub | ghcr.io/brainz-lab/pulse:latest |
*_IMAGE environment variables to switch registries:
Troubleshooting
Services Not Starting
Database Connection Issues
Health Check
Each service exposes a health endpoint:Need Help?
Get support from the Brainz Lab team