Docker (local services)
Local Redis for OpenQuok contributors developing against the hosted product, or the self-host Compose stack for operators running on their own machine.
Connect your agent today
Draft from chat, review in your calendar, and publish only what you approve.
Overview
This repo keeps Compose files under infra/. There are two stacks with different audiences:
| File | Who | Role |
|---|---|---|
| infra/docker-compose.yml | Contributors for the hosted product at openquok.com | Local deps only — Redis and optional CLI-auth Postgres, against a linked/local Supabase while iterating on the SaaS codebase. |
| infra/self-host/docker-compose.yml | Operators who want OpenQuok on their own computer or private network | Full app stack — API, web, Redis, BullMQ workers (optional CLI profile). See Docker Compose (self-host). |
Do not treat the self-host file as a substitute for the contributor Compose file, or vice versa.
Local Redis for contributors
Start Redis locally
# From repo root
docker compose -f infra/docker-compose.yml up -d redis Point backend + workers at the local Redis
Edit backend/.env.development.local:
NODE_ENV=development
CACHE_PROVIDER=redis
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0
REDIS_BULLMQ_DB=0
REDIS_TLS=false
REDIS_TLS_REJECT_UNAUTHORIZED=true Stop Redis
# From repo root
docker compose -f infra/docker-compose.yml downRelated docs
Once Redis is running, see Redis cache for the full list of REDIS_* options and BullMQ notes.
For end-to-end setup (backend + web with pnpm), see Development environment.
Self-host stack (own machine)
To run the full application in Docker on your host (not the openquok.com SaaS deploy path), use infra/self-host/. Copy infra/self-host/.env.example, fill Supabase keys, then:
# From repo root
docker compose -f infra/self-host/docker-compose.yml up --build Requirements, ports, and env defaults: System requirements and Docker Compose (self-host).
Warning
The self-host stack is aimed at localhost / private-network use. Defaults such as NOT_SECURED=true, open registration, no Redis password, and published API/web ports assume a trusted operator machine. Put a TLS reverse proxy in front and tighten env before exposing beyond your LAN — see the security notes on the self-host install page.