first commit - MVE Incrementables Parser microservice with FastAPI, JWT, Celery, Redis

This commit is contained in:
Ernesto Herrera
2026-03-02 21:31:50 -07:00
commit 068d859f42
27 changed files with 2337 additions and 0 deletions

72
docker-compose.yml Normal file
View File

@@ -0,0 +1,72 @@
version: '3.8'
services:
redis:
image: redis:7-alpine
container_name: mve-redis
ports:
- "16379:6379"
volumes:
- redis_data:/data
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 3
mve-incrementables-parser:
build: .
container_name: mve-incrementables-parser
ports:
- "9876:9876"
environment:
- AUTH_USERNAME=${AUTH_USERNAME:-admin}
- AUTH_PASSWORD_HASH=${AUTH_PASSWORD_HASH}
- JWT_SECRET=${JWT_SECRET}
- JWT_EXPIRES_MINUTES=${JWT_EXPIRES_MINUTES:-60}
- MAX_FILE_MB=${MAX_FILE_MB:-10}
- LOG_LEVEL=${LOG_LEVEL:-INFO}
- SERVICE_NAME=mve-incrementables-parser
- SERVICE_VERSION=1.0.0
- REDIS_URL=redis://redis:6379/0
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
volumes:
- ./app:/app/app
depends_on:
redis:
condition: service_healthy
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9876/health"]
interval: 30s
timeout: 3s
retries: 3
start_period: 5s
celery-worker:
build: .
container_name: mve-celery-worker
command: celery -A app.core.celery_app worker --loglevel=info --concurrency=2
environment:
- AUTH_USERNAME=${AUTH_USERNAME:-admin}
- AUTH_PASSWORD_HASH=${AUTH_PASSWORD_HASH}
- JWT_SECRET=${JWT_SECRET}
- JWT_EXPIRES_MINUTES=${JWT_EXPIRES_MINUTES:-60}
- MAX_FILE_MB=${MAX_FILE_MB:-10}
- LOG_LEVEL=${LOG_LEVEL:-INFO}
- SERVICE_NAME=mve-incrementables-parser
- SERVICE_VERSION=1.0.0
- REDIS_URL=redis://redis:6379/0
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
volumes:
- ./app:/app/app
depends_on:
redis:
condition: service_healthy
restart: unless-stopped
volumes:
redis_data: