Skip to main content
This method is for advanced users who want granular control over each container. For most users, we recommend using Docker Compose instead.

Prerequisites

Setup external services

If you don’t already have PostgreSQL and Redis running, start them with Docker:
# PostgreSQL
docker run -d \
  --name ringee-db \
  -e POSTGRES_USER=ringee-user \
  -e POSTGRES_PASSWORD=ringee-password \
  -e POSTGRES_DB=ringee-db-local \
  -p 5432:5432 \
  postgres:16

# Redis
docker run -d \
  --name ringee-redis \
  -p 6379:6379 \
  redis:7-alpine

Build the Docker image

git clone https://github.com/ringee-io/ringee.git
cd ringee
docker build -t ringee .

Run the services

Backend

docker run -d \
  --name ringee-backend \
  --env-file .env \
  -e DATABASE_URL="postgresql://ringee-user:ringee-password@host.docker.internal:5432/ringee-db-local?schema=public" \
  -e REDIS_URL="redis://host.docker.internal:6379" \
  -p 3000:3000 \
  ringee backend

Worker

docker run -d \
  --name ringee-worker \
  --env-file .env \
  -e DATABASE_URL="postgresql://ringee-user:ringee-password@host.docker.internal:5432/ringee-db-local?schema=public" \
  -e REDIS_URL="redis://host.docker.internal:6379" \
  ringee worker

Frontend (Admin)

docker run -d \
  --name ringee-frontend \
  --env-file .env \
  -p 4200:4200 \
  ringee frontend

Frontend (Consumer)

docker run -d \
  --name ringee-frontend-b2c \
  --env-file .env \
  -p 4201:4201 \
  ringee frontend-b2c

Verify

Check all containers are running:
docker ps --filter "name=ringee"
Then open:

Next steps