version: "3.9" services: web: image: node:18 working_dir: /usr/src/app volumes: - ./web:/usr/src/app ports: - "3000:3000" command: bash -lc "npm install && npm run dev" profiles: [dev] app-api: image: node:18 working_dir: /usr/src/app environment: - ML_API_BASE_URL=http://ml-api:8000 - WEB_ORIGIN=http://localhost:3000 ports: - "4000:4000" volumes: - ./app-api:/usr/src/app command: bash -lc "npm install && npm run start:dev" profiles: [dev] ml-api: image: condaforge/mambaforge working_dir: /work environment: - TARGET_LANG_CODE=lin_Latn volumes: - ./ml-api:/work - ./shared:/work/models ports: - "8000:8000" command: > bash -lc " mamba env update -n base -f environment.yml || true && mamba install -y -c conda-forge ffmpeg libsndfile && pip install fastapi uvicorn[standard] python-multipart transformers sentencepiece accelerate langdetect openai-whisper TTS huggingface_hub && uvicorn app.main:app --host 0.0.0.0 --port 8000 " jupyter: image: jupyter/base-notebook:latest working_dir: /home/jovyan volumes: - ./notebooks:/home/jovyan/work ports: - "8888:8888" command: start-notebook.sh --NotebookApp.token='' redis: image: redis:7 ports: - "6379:6379" postgres: image: postgres:15 environment: - POSTGRES_USER=ml - POSTGRES_PASSWORD=ml - POSTGRES_DB=ml ports: - "5432:5432"