|
| 1 | +services: |
| 2 | + librechat: |
| 3 | + image: ghcr.io/danny-avila/librechat:v0.7.7 |
| 4 | + container_name: dream-librechat |
| 5 | + restart: unless-stopped |
| 6 | + security_opt: |
| 7 | + - no-new-privileges:true |
| 8 | + environment: |
| 9 | + - HOST=0.0.0.0 |
| 10 | + - PORT=3080 |
| 11 | + - MONGO_URI=mongodb://librechat-mongodb:27017/LibreChat |
| 12 | + - MEILI_HOST=http://librechat-meilisearch:7700 |
| 13 | + - MEILI_HTTP_ADDR=librechat-meilisearch:7700 |
| 14 | + - OPENAI_API_KEY=${OPENAI_API_KEY:-} |
| 15 | + - OPENAI_MODELS=${OPENAI_MODELS:-} |
| 16 | + - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-} |
| 17 | + - GOOGLE_KEY=${GOOGLE_KEY:-} |
| 18 | + - BEDROCK_AWS_DEFAULT_REGION=${BEDROCK_AWS_DEFAULT_REGION:-} |
| 19 | + - BEDROCK_AWS_ACCESS_KEY_ID=${BEDROCK_AWS_ACCESS_KEY_ID:-} |
| 20 | + - BEDROCK_AWS_SECRET_ACCESS_KEY=${BEDROCK_AWS_SECRET_ACCESS_KEY:-} |
| 21 | + - BEDROCK_AWS_SESSION_TOKEN=${BEDROCK_AWS_SESSION_TOKEN:-} |
| 22 | + - AZURE_OPENAI_API_KEY=${AZURE_OPENAI_API_KEY:-} |
| 23 | + - AZURE_OPENAI_INSTANCE_NAME=${AZURE_OPENAI_INSTANCE_NAME:-} |
| 24 | + - AZURE_OPENAI_DEPLOYMENT_NAME=${AZURE_OPENAI_DEPLOYMENT_NAME:-} |
| 25 | + - AZURE_OPENAI_API_VERSION=${AZURE_OPENAI_API_VERSION:-} |
| 26 | + - AZURE_OPENAI_BASEURL=${AZURE_OPENAI_BASEURL:-} |
| 27 | + - OPENROUTER_KEY=${OPENROUTER_KEY:-} |
| 28 | + - MISTRAL_API_KEY=${MISTRAL_API_KEY:-} |
| 29 | + - COHERE_API_KEY=${COHERE_API_KEY:-} |
| 30 | + - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-} |
| 31 | + - GROQ_API_KEY=${GROQ_API_KEY:-} |
| 32 | + - OPENAI_REVERSE_PROXY=${OPENAI_REVERSE_PROXY:-} |
| 33 | + - ANTHROPIC_REVERSE_PROXY=${ANTHROPIC_REVERSE_PROXY:-} |
| 34 | + - BINGAI_TOKEN=${BINGAI_TOKEN:-} |
| 35 | + - DALLE3_API_KEY=${DALLE3_API_KEY:-} |
| 36 | + - DALLE3_BASEURL=${DALLE3_BASEURL:-} |
| 37 | + - CREDS_KEY=${CREDS_KEY:-} |
| 38 | + - CREDS_IV=${CREDS_IV:-} |
| 39 | + - JWT_SECRET=${JWT_SECRET:-} |
| 40 | + - JWT_REFRESH_SECRET=${JWT_REFRESH_SECRET:-} |
| 41 | + - APP_TITLE=${APP_TITLE:-LibreChat} |
| 42 | + - DOMAIN_CLIENT=${DOMAIN_CLIENT:-} |
| 43 | + - DOMAIN_SERVER=${DOMAIN_SERVER:-} |
| 44 | + - ALLOW_REGISTRATION=${ALLOW_REGISTRATION:-true} |
| 45 | + - ALLOW_SOCIAL_LOGIN=${ALLOW_SOCIAL_LOGIN:-false} |
| 46 | + - CHECK_BALANCE=${CHECK_BALANCE:-false} |
| 47 | + - DEBUG_CONSOLE=${DEBUG_CONSOLE:-false} |
| 48 | + - CONSOLE_JSON=${CONSOLE_JSON:-false} |
| 49 | + - MODELS_FILTER=${MODELS_FILTER:-} |
| 50 | + - ENDPOINTS=${ENDPOINTS:-openAI,azureOpenAI,bingAI,google,gptPlugins,anthropic} |
| 51 | + - SEARCH=${SEARCH:-true} |
| 52 | + - CONVERSATION_ENDPOINTS=${CONVERSATION_ENDPOINTS:-azureOpenAI,openAI,bingAI,google,gptPlugins,anthropic} |
| 53 | + volumes: |
| 54 | + - ./data/librechat/images:/app/client/public/images:rw |
| 55 | + - ./data/librechat/logs:/app/api/logs:rw |
| 56 | + - ./data/librechat/uploads:/app/uploads:rw |
| 57 | + ports: |
| 58 | + - "${LIBRECHAT_PORT:-3080}:3080" |
| 59 | + depends_on: |
| 60 | + librechat-mongodb: |
| 61 | + condition: service_healthy |
| 62 | + librechat-meilisearch: |
| 63 | + condition: service_healthy |
| 64 | + healthcheck: |
| 65 | + test: ["CMD", "wget", "--spider", "-q", "http://localhost:3080/health"] |
| 66 | + interval: 30s |
| 67 | + timeout: 10s |
| 68 | + retries: 3 |
| 69 | + start_period: 60s |
| 70 | + networks: |
| 71 | + - dream-network |
| 72 | + deploy: |
| 73 | + resources: |
| 74 | + limits: |
| 75 | + cpus: '2.0' |
| 76 | + memory: 2G |
| 77 | + reservations: |
| 78 | + cpus: '0.2' |
| 79 | + memory: 512M |
| 80 | + |
| 81 | + librechat-mongodb: |
| 82 | + image: mongo:7.0.16 |
| 83 | + container_name: dream-librechat-mongodb |
| 84 | + restart: unless-stopped |
| 85 | + security_opt: |
| 86 | + - no-new-privileges:true |
| 87 | + environment: |
| 88 | + - MONGO_INITDB_ROOT_USERNAME=librechat |
| 89 | + - MONGO_INITDB_ROOT_PASSWORD=${LIBRECHAT_MONGO_PASSWORD:-librechat123} |
| 90 | + volumes: |
| 91 | + - ./data/librechat/mongodb:/data/db:rw |
| 92 | + healthcheck: |
| 93 | + test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] |
| 94 | + interval: 30s |
| 95 | + timeout: 10s |
| 96 | + retries: 3 |
| 97 | + start_period: 30s |
| 98 | + networks: |
| 99 | + - dream-network |
| 100 | + deploy: |
| 101 | + resources: |
| 102 | + limits: |
| 103 | + cpus: '1.0' |
| 104 | + memory: 1G |
| 105 | + reservations: |
| 106 | + cpus: '0.1' |
| 107 | + memory: 256M |
| 108 | + |
| 109 | + librechat-meilisearch: |
| 110 | + image: getmeili/meilisearch:v1.12.8 |
| 111 | + container_name: dream-librechat-meilisearch |
| 112 | + restart: unless-stopped |
| 113 | + security_opt: |
| 114 | + - no-new-privileges:true |
| 115 | + environment: |
| 116 | + - MEILI_ENV=production |
| 117 | + - MEILI_MASTER_KEY=${LIBRECHAT_MEILI_KEY:-librechat_meili_master_key} |
| 118 | + volumes: |
| 119 | + - ./data/librechat/meilisearch:/meili_data:rw |
| 120 | + healthcheck: |
| 121 | + test: ["CMD", "wget", "--spider", "-q", "http://localhost:7700/health"] |
| 122 | + interval: 30s |
| 123 | + timeout: 10s |
| 124 | + retries: 3 |
| 125 | + start_period: 30s |
| 126 | + networks: |
| 127 | + - dream-network |
| 128 | + deploy: |
| 129 | + resources: |
| 130 | + limits: |
| 131 | + cpus: '0.5' |
| 132 | + memory: 512M |
| 133 | + reservations: |
| 134 | + cpus: '0.1' |
| 135 | + memory: 128M |
| 136 | + |
| 137 | +networks: |
| 138 | + dream-network: |
| 139 | + external: true |
0 commit comments