Docker Setup

SaaniCare includes Docker configuration for easy local development and deployment.

Quick Start

Start All Services

# Start infrastructure (PostgreSQL, Redis, Mailhog)
make docker-up

# Or using docker-compose directly
docker-compose up -d

Stop Services

make docker-down

# Or
docker-compose down

Services

The Docker setup includes:

  • PostgreSQL: Database server
  • Redis: Cache and session storage
  • Mailhog: Email testing (development)

Docker Compose Configuration

The docker-compose.yml file defines all services:

services:
  postgres:
    image: postgres:14
    environment:
      POSTGRES_DB: saanicare
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
    ports:
      - "5432:5432"
  
  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
  
  mailhog:
    image: mailhog/mailhog
    ports:
      - "1025:1025"  # SMTP
      - "8025:8025"  # Web UI

Development with Docker

Connect to Database

When using Docker, update your .env.local:

DATABASE_URL=postgresql://postgres:postgres@localhost:5432/saanicare
REDIS_URL=redis://localhost:6379

Run Migrations

cd apps/api
pnpm prisma migrate dev
pnpm prisma db seed

Start Development Servers

# Start all apps
pnpm dev

# Or start individual apps
cd apps/parent-web && pnpm dev

Production Docker

For production deployment, see the Dockerfile in the root directory.

Build Image

docker build -t saanicare-api .

Run Container

docker run -p 3000:3000 \
  -e DATABASE_URL=... \
  -e AUTH0_SECRET=... \
  saanicare-api

Troubleshooting

Port Already in Use

If ports are already in use, stop the services:

docker-compose down

Reset Database

docker-compose down -v
docker-compose up -d

This will remove all volumes and start fresh.