This directory contains the Docker configuration for the WaterCrawl project, which includes:
- Nginx reverse proxy for all services
- Backend (Django) service
- Frontend (React/TypeScript/Vite) service
- MinIO object storage
- Postgres database
- Redis for caching and Celery
- Mailpit for email testing
- Playwright for web scraping
All environment variables are defined directly in the docker-compose.yml file with sensible defaults. This approach:
- Makes the configuration more explicit and self-documenting
- Removes the need for multiple .env files
- Makes it easier to track all configuration in version control
The default values in docker-compose.yml can be overridden by:
- Setting environment variables in your shell before running docker-compose
- Creating a
.envfile in this directory (use.env.exampleas a template)
Acts as a reverse proxy for all services, providing a unified entry point:
- Frontend: http://localhost/
- API: http://localhost/api/
- MinIO API: http://localhost/minio/
- MinIO Console: http://localhost/minio-console/
Runs the Django application and Celery worker for background tasks.
Serves the React/TypeScript application.
Provides S3-compatible object storage.
PostgreSQL database for the application.
Used for caching and as a message broker for Celery.
# Start all services
docker compose up
# Start only specific services
docker compose up nginx app frontend db redis
# Build and start services
docker compose up --build