Spaces:
Running
Running
| name: tranimal | |
| services: | |
| main: | |
| build: | |
| context: ./main | |
| dockerfile: Dockerfile | |
| ports: | |
| - "3000:3000" | |
| volumes: | |
| - ./main:/app | |
| - /app/node_modules | |
| - /app/.next | |
| environment: | |
| - NODE_ENV=development | |
| - NEXT_PUBLIC_API_BASE_URL=http://localhost:8000 | |
| - NEXT_PUBLIC_GOOGLE_CLIENT_ID=${NEXT_PUBLIC_GOOGLE_CLIENT_ID:-} | |
| - WATCHPACK_POLLING=true | |
| - CHOKIDAR_USEPOLLING=true | |
| command: npm run dev -- -H 0.0.0.0 -p 3000 | |
| depends_on: | |
| - api-gateway | |
| api-gateway: | |
| build: | |
| context: ./api/api-gateway | |
| dockerfile: Dockerfile | |
| ports: | |
| - "8000:8000" | |
| environment: | |
| - AUTH_SERVICE_URL=http://auth-service:8001 | |
| - AI_SERVICE_URL=http://ai-service:8002 | |
| - AI_PROXY_TIMEOUT_SECONDS=900 | |
| - CORS_ORIGINS=http://localhost:3000 | |
| volumes: | |
| - ./api/api-gateway:/app | |
| depends_on: | |
| - auth-service | |
| - ai-service | |
| command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload | |
| ai-service: | |
| build: | |
| context: ./api/ai-service | |
| dockerfile: Dockerfile | |
| ports: | |
| - "8002:8002" | |
| environment: | |
| - CORS_ORIGINS=http://localhost:3000 | |
| - AI_WORKSPACE_DIR=/workspace/router/ai | |
| - PYTHON_COMMAND=python | |
| - SCRIPT_TIMEOUT_SECONDS=900 | |
| - DEFAULT_LABELS=cup,face,cloud,ice_cream,t_shirt,fish,apple,candle | |
| - DEFAULT_PROTOTYPE_PATH=${DEFAULT_PROTOTYPE_PATH:-data/quickdraw/quickdraw_clip_prototypes_8labels.pt} | |
| - DEFAULT_REPRESENTATIVE_PATH=${DEFAULT_REPRESENTATIVE_PATH:-data/quickdraw/quickdraw_clip_representatives_8labels_top100.pt} | |
| - REPRESENTATIVE_TOP_K=${REPRESENTATIVE_TOP_K:-5} | |
| - GATV2_SCORER_PATH=${GATV2_SCORER_PATH:-data/models/gatv2_edge_scorer_current.pt} | |
| - GATV2_WEIGHT=${GATV2_WEIGHT:-0.25} | |
| - PROTOTYPE_PGVECTOR_URL=${PROTOTYPE_PGVECTOR_URL:-} | |
| - PROTOTYPE_PGVECTOR_TABLE=${PROTOTYPE_PGVECTOR_TABLE:-quickdraw_prototypes} | |
| - PROTOTYPE_PGVECTOR_SOURCE=${PROTOTYPE_PGVECTOR_SOURCE:-quickdraw_avg_v1} | |
| - TEXT_PROTOTYPE_PGVECTOR_URL=${TEXT_PROTOTYPE_PGVECTOR_URL:-} | |
| - TEXT_PROTOTYPE_PGVECTOR_TABLE=${TEXT_PROTOTYPE_PGVECTOR_TABLE:-quickdraw_text_prototypes} | |
| - TEXT_PROTOTYPE_PGVECTOR_SOURCE=${TEXT_PROTOTYPE_PGVECTOR_SOURCE:-clip_text_prompt_avg_v1} | |
| - IMAGE_PROTO_WEIGHT=${IMAGE_PROTO_WEIGHT:-1.0} | |
| - TEXT_PROTO_WEIGHT=${TEXT_PROTO_WEIGHT:-0.0} | |
| - EMBEDDING_PGVECTOR_URL=${EMBEDDING_PGVECTOR_URL:-} | |
| - EMBEDDING_PGVECTOR_TABLE=${EMBEDDING_PGVECTOR_TABLE:-quickdraw_embeddings} | |
| - EMBEDDING_PGVECTOR_SOURCE=${EMBEDDING_PGVECTOR_SOURCE:-quickdraw_train_v1} | |
| - PSEUDO_LABEL_MIN_CLIP_SCORE=${PSEUDO_LABEL_MIN_CLIP_SCORE:-0.7} | |
| - PSEUDO_LABEL_SAVE_ALL_LABELS=${PSEUDO_LABEL_SAVE_ALL_LABELS:-false} | |
| - TTS_MODEL_NAME=myshell-ai/MeloTTS-Korean | |
| - TTS_DEVICE=${TTS_DEVICE:-cpu} | |
| - TTS_SPEED=${TTS_SPEED:-1.0} | |
| - TTS_CACHE_DIR=/workspace/ai/tts_cache | |
| volumes: | |
| - ./api/ai-service:/app | |
| - ./router:/workspace/router | |
| - ./ai:/workspace/ai | |
| - ai_hf_cache:/workspace/.cache/huggingface | |
| command: uvicorn app.main:app --host 0.0.0.0 --port 8002 --reload | |
| auth-service: | |
| build: | |
| context: ./api/auth-service | |
| dockerfile: Dockerfile | |
| ports: | |
| - "8001:8001" | |
| environment: | |
| - DATABASE_URL=${AUTH_DATABASE_URL:?AUTH_DATABASE_URL is required} | |
| - JWT_SECRET_KEY=change-me | |
| - JWT_ALGORITHM=HS256 | |
| - ACCESS_TOKEN_EXPIRE_MINUTES=60 | |
| - PASSWORD_RESET_TOKEN_EXPIRE_MINUTES=${PASSWORD_RESET_TOKEN_EXPIRE_MINUTES:-30} | |
| - EMAIL_VERIFICATION_CODE_EXPIRE_MINUTES=${EMAIL_VERIFICATION_CODE_EXPIRE_MINUTES:-10} | |
| - EMAIL_VERIFICATION_VERIFIED_TTL_MINUTES=${EMAIL_VERIFICATION_VERIFIED_TTL_MINUTES:-30} | |
| - PASSWORD_RESET_FRONTEND_URL=${PASSWORD_RESET_FRONTEND_URL:-http://localhost:3000/password-reset} | |
| - SMTP_HOST=${SMTP_HOST:-} | |
| - SMTP_PORT=${SMTP_PORT:-587} | |
| - SMTP_USERNAME=${SMTP_USERNAME:-} | |
| - SMTP_PASSWORD=${SMTP_PASSWORD:-} | |
| - SMTP_USE_TLS=${SMTP_USE_TLS:-true} | |
| - SMTP_FROM_EMAIL=${SMTP_FROM_EMAIL:-} | |
| - SMTP_FROM_NAME=${SMTP_FROM_NAME:-Runnimal} | |
| - GOOGLE_OAUTH_CLIENT_ID=${GOOGLE_OAUTH_CLIENT_ID:-} | |
| - CORS_ORIGINS=http://localhost:3000 | |
| volumes: | |
| - ./api/auth-service:/app | |
| command: uvicorn app.main:app --host 0.0.0.0 --port 8001 --reload | |
| volumes: | |
| ai_hf_cache: | |