services: alfred: container_name: alfred-core build: context: . args: PYTHON_VERSION: ${PYTHON_VERSION} PYTHON_VERSION_SHORT: ${PYTHON_VERSION_SHORT} RUNNER: ${RUNNER} depends_on: - librechat restart: unless-stopped env_file: - .env environment: # LLM Configuration LLM_PROVIDER: ${LLM_PROVIDER:-deepseek} DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-} # Memory storage MEMORY_STORAGE_DIR: /data/memory # External services TMDB_API_KEY: ${TMDB_API_KEY:-} QBITTORRENT_URL: ${QBITTORRENT_URL:-} QBITTORRENT_USERNAME: ${QBITTORRENT_USERNAME:-} QBITTORRENT_PASSWORD: ${QBITTORRENT_PASSWORD:-} volumes: - ./data/memory:/data/memory - ./logs:/data/logs # TODO: Development: mount code for hot reload (comment out in production) # - ./alfred:/app/alfred librechat: container_name: alfred-librechat image: ghcr.io/danny-avila/librechat:${LIBRECHAT_VERSION} depends_on: - mongodb - meilisearch - rag_api restart: unless-stopped env_file: - .env environment: - HOST=0.0.0.0 - MONGO_URI=mongodb://mongodb:27017/LibreChat - MEILI_HOST=http://meilisearch:7700 - RAG_PORT=${RAG_PORT:-8000} - RAG_API_URL=http://rag_api:${RAG_PORT:-8000} ports: - "${LIBRECHAT_PORT:-3080}:3080" volumes: - ./data/librechat/images:/app/client/public/images - ./data/librechat/uploads:/app/client/uploads - ./logs:/app/api/logs # Mount custom endpoint - ./librechat/manifests:/app/manifests:ro - ./librechat/librechat.yaml:/app/librechat.yaml:ro mongodb: container_name: alfred-mongodb image: mongo:latest restart: unless-stopped volumes: - ./data/mongo:/data/db command: mongod --noauth meilisearch: container_name: alfred-meilisearch image: getmeili/meilisearch:v1.12.3 restart: unless-stopped environment: - MEILI_NO_ANALYTICS=true volumes: - ./data/meili:/meili_data #profiles: ["meili", "full"] rag_api: container_name: alfred-rag image: ghcr.io/danny-avila/librechat-rag-api-dev-lite:${RAG_VERSION} restart: unless-stopped environment: - RAG_PORT=${RAG_PORT:-8000} ports: - "${RAG_PORT:-8000}:${RAG_PORT:-8000}" #profiles: ["rag", "full"] vectordb: container_name: alfred-vectordb image: pgvector/pgvector:0.8.0-pg16-bookworm restart: unless-stopped environment: - POSTGRES_DB=${VECTOR_DB_NAME:-vectordb} - POSTGRES_USER=${VECTOR_DB_USER:-postgres} - POSTGRES_PASSWORD=${VECTOR_DB_PASSWORD:-postgres} ports: - "${VECTOR_DB_PORT:-5432}:5432" volumes: - ./data/vectordb:/var/lib/postgresql/data #profiles: ["rag", "full"]