## Docker Stack (local development)

The compose stack defined in `docker-compose.yml` spins up the following services:

- `frontend-gpt`: Next.js dev server published on port 3001.
- `api-gpt`: Django API on port 8000.
- `worker-gpt` / `scheduler-gpt`: Celery worker and beat for background jobs.
- `db-gpt`: Postgres 15 with persisted data volume (host port 5433).
- `cache-gpt`: Redis 7 for caching and Celery broker.
- `storage-gpt`: MinIO object storage (S3-compatible) with console on port 9001.

### Quick start

```bash
cp infra/docker/.env.example infra/docker/.env.development  # adjust secrets
docker compose up --build
```

The containers mount the local `frontend/` and `api/` folders, so code changes reload automatically.

### Helper commands

- `docker compose exec api-gpt python manage.py migrate` — run database migrations.
- `docker compose exec api-gpt python manage.py createsuperuser` — create an admin account.
- `docker compose exec worker-gpt celery -A config.celery_app status` — confirm Celery connectivity.

### Notes

- MinIO credentials come from `.env.development`; open http://localhost:9001 to manage buckets.
- Pushbullet and Stripe keys are placeholders. Update them before testing notifications or payments.
