Docker Setup
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.