Files
gapido-grpc-auth/docker-compose.yml

73 lines
2.1 KiB
YAML

services:
auth-service:
build: .
command: python -m gapido_auth.transport.grpc.server
environment:
MONGO_URI: mongodb://mongo:27017
MONGO_DB_NAME: ${MONGO_DB_NAME:-gapido_auth}
REDIS_URL: redis://redis:6379/0
RABBITMQ_URL: amqp://guest:guest@rabbitmq:5672/
JWT_SECRET_KEY: ${JWT_SECRET_KEY:-change-me-use-a-long-random-secret}
JWT_ISSUER: ${JWT_ISSUER:-gapido-auth}
ACCESS_TOKEN_TTL_SECONDS: ${ACCESS_TOKEN_TTL_SECONDS:-900}
REFRESH_TOKEN_TTL_SECONDS: ${REFRESH_TOKEN_TTL_SECONDS:-604800}
OTP_TTL_SECONDS: ${OTP_TTL_SECONDS:-120}
OTP_MAX_ATTEMPTS: ${OTP_MAX_ATTEMPTS:-5}
OTP_REQUEST_LIMIT: ${OTP_REQUEST_LIMIT:-3}
OTP_REQUEST_WINDOW_SECONDS: ${OTP_REQUEST_WINDOW_SECONDS:-300}
SMS_PROVIDER: ${SMS_PROVIDER:-kavenegar}
KAVENEGAR_LOGIN_TEMPLATE: ${KAVENEGAR_LOGIN_TEMPLATE:-login-otp}
SMS_IR_VERIFY_TEMPLATE_ID: ${SMS_IR_VERIFY_TEMPLATE_ID:-570574}
ADMIN_MOBILE: ${ADMIN_MOBILE:-989120000000}
GRPC_HOST: 0.0.0.0
GRPC_PORT: 50051
ports:
- "50051:50051"
depends_on:
mongo:
condition: service_started
redis:
condition: service_started
rabbitmq:
condition: service_healthy
sms-worker:
build: .
command: python -m gapido_auth.infrastructure.worker
environment:
MONGO_URI: mongodb://mongo:27017
REDIS_URL: redis://redis:6379/0
RABBITMQ_URL: amqp://guest:guest@rabbitmq:5672/
SMS_PROVIDER: ${SMS_PROVIDER:-kavenegar}
KAVENEGAR_API_KEY: ${KAVENEGAR_API_KEY:-replace-with-real-key}
SMS_IR_API_KEY: ${SMS_IR_API_KEY:-replace-with-real-key}
depends_on:
rabbitmq:
condition: service_healthy
mongo:
image: mongo:7
ports:
- "27017:27017"
volumes:
- mongo-data:/data/db
redis:
image: redis:7-alpine
ports:
- "6379:6379"
rabbitmq:
image: rabbitmq:3.13-management-alpine
ports:
- "5672:5672"
- "15672:15672"
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "check_port_connectivity"]
interval: 5s
timeout: 5s
retries: 20
volumes:
mongo-data: