services: mongo: image: mongo:7 container_name: subwatcher-mongo-dev ports: - "27017:27017" volumes: - mongo_data:/data/db redis: image: redis:7-alpine container_name: subwatcher-redis-dev ports: - "6379:6379" volumes: - redis_data:/data api: build: context: ./services/api target: dev container_name: subwatcher-api-dev env_file: - .env environment: - NODE_ENV=development - API_PORT=3002 - TEMP_ROOT=/temp - ENABLE_API_KEY=false - CLAMAV_DB_DIR=/var/lib/clamav ports: - "3002:3002" command: sh -c "npm install && npm run dev" volumes: - ./services/api:/app - api_node_modules:/app/node_modules - temp_data:/temp - clamav_data:/var/lib/clamav depends_on: - mongo - redis core: build: context: ./services/core target: dev container_name: subwatcher-core-dev env_file: - .env environment: - NODE_ENV=development - CORE_PORT=3001 - MONGO_URI=mongodb://mongo:27017/subwatcher - REDIS_HOST=redis - REDIS_PORT=6379 - API_BASE_URL=http://api:3002 - TEMP_ROOT=/temp - MEDIA_TV_PATH=/media/tv - MEDIA_MOVIE_PATH=/media/movie - ENABLE_API_KEY=false ports: - "3001:3001" command: sh -c "npm install && npm run dev" volumes: - ./services/core:/app - core_node_modules:/app/node_modules - temp_data:/temp:ro - ./_media/tv:/media/tv - ./_media/movie:/media/movie depends_on: - mongo - redis - api ui: build: context: ./services/ui target: dev container_name: subwatcher-ui-dev environment: - NODE_ENV=development - VITE_CORE_URL=http://core:3001 - VITE_PUBLIC_CORE_URL=http://localhost:3001 ports: - "5173:5173" command: sh -c "rm -rf /app/node_modules/* && npm install --include=optional --no-package-lock && npm run dev" volumes: - ./services/ui:/app - ui_node_modules:/app/node_modules depends_on: - core volumes: mongo_data: redis_data: temp_data: core_node_modules: api_node_modules: ui_node_modules: clamav_data: