- Clone the repository
- Make sure you have docker compose and make installed
- Inside the root folder:
docker compose -f local.yml build
docker compose -f local.yml up- Django & Django REST Framework: Web framework and API layer.
- PostgreSQL: Relational database for persistent data storage.
- Redis: In-memory data store for caching and task brokering.
- Celery & Flower: Distributed task queue and real-time task monitoring.
- Docker: Containerization for development and deployment.
- Nginx: Reverse proxy and static file server.
- Portainer: Container management.
- DigitalOcean: Cloud hosting and infrastructure provider.
- Observability: Integrated metrics and logging for better visibility.
- Stack Tracing: Improved error monitoring and debugging.
- CI/CD: Automated testing, deployments, and migration health checks.
flowchart TD
users["End Users (Web/API Clients)"]
subgraph DO["DigitalOcean (Cloud)"]
direction TB
nginx["Nginx (Reverse Proxy)"]
portainer["Portainer (Docker Admin UI)"]
flower["Flower (Task Monitoring)"]
celery["Celery Worker (Task Queue)"]
django["Django + DRF (Web API/App)"]
postgres["PostgreSQL (Database)"]
redis["Redis (Cache & Broker)"]
elastic["Elasticsearch (Search/Logs)"]
end
%% User traffic
users --> nginx
nginx --> django
%% Nginx HTTPS exposes for admin/monitoring
nginx -. "HTTPS" .-> flower
nginx -. "HTTPS" .-> portainer
%% Internal service flows
django --> postgres
django --> redis
django --> elastic
redis --> celery
celery --> postgres
flower --> celery
%% Orchestration (dashed line)
Docker-compose -.-> DO