Minimal backend monorepo with:
services/api(Spring Boot API)services/worker(Python worker)infra/docker-compose.yml(Postgres + RabbitMQ + services)
make devmake down
make logsdocker-compose -f infra/docker-compose.yml up -d postgres rabbitmq
docker-compose -f infra/docker-compose.yml up --build api
docker-compose -f infra/docker-compose.yml up --build worker- Start dependencies first:
docker-compose -f infra/docker-compose.yml up -d postgres rabbitmq- Run API locally:
cd services/api
$env:SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/clipforge"
$env:SPRING_DATASOURCE_USERNAME="postgres"
$env:SPRING_DATASOURCE_PASSWORD="postgres"
$env:SPRING_RABBITMQ_HOST="localhost"
gradle bootRun- Run Worker locally:
cd services/worker
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
$env:DB_HOST="localhost"
$env:RABBITMQ_HOST="localhost"
python main.py- Docker flow: no manual install needed (images install dependencies).
- API local: Gradle downloads dependencies during
gradle bootRunorgradle clean bootJar. - Worker local: run
pip install -r services/worker/requirements.txt.
- API health:
http://localhost:8080/api/health - RabbitMQ UI:
http://localhost:15672 - Worker logs should show:
Worker started...Polling for jobs...
services/api/Dockerfile: correct for containerized API build/run.services/worker/Dockerfile: correct for worker install/run.infra/docker-compose.yml: correct for this minimal setup.Makefile: correct (dev,down,logs) and no change required.