A Celery worker that processes port detection tasks from a RabbitMQ queue and stores results in Redis.
- Python 3.13+
- uv (Python package/dependency manager)
- RabbitMQ (message broker)
- Redis (result backend)
Clone the repository and install dependencies:
git clone https://github.com/TraceX-Project/port-detection-service.git
cd port-detection-service
uv syncCopy .env.example to .env and fill in the values:
cp .env.example .envRABBITMQ_HOST=
RABBITMQ_PORT=
RABBITMQ_USER=
RABBITMQ_PASSWORD=
REDIS_ADDRESS=
REDIS_PORT=
REDIS_DB=
REDIS_PASSWORD=uv run celery -A workers.celery.celery_app worker --loglevel=infodocker compose -f docker-compose.prod.yaml up -d --build.
├── config
│ └── setting.py # Environment configuration
├── workers
│ ├── celery.py # Celery app setup
│ └── tasks.py # Port detection task
├── Dockerfile
├── pyproject.toml
└── uv.lock