From 95d0b36384c88ac7415406a95759db3f3d73b418 Mon Sep 17 00:00:00 2001 From: Teck Meng Date: Mon, 27 May 2024 19:47:42 +0800 Subject: [PATCH] Refactor docker-compose.yml to remove unnecessary network configurations --- compose.override.yml | 175 +++++++++++++++++++++++++++++++++++++++++++ compose.yml | 4 +- 2 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 compose.override.yml diff --git a/compose.override.yml b/compose.override.yml new file mode 100644 index 0000000..212d912 --- /dev/null +++ b/compose.override.yml @@ -0,0 +1,175 @@ +# Please consult our docs for more info: https://docs.librechat.ai/install/configuration/docker_override.html + +# TO USE THIS FILE, FIRST UNCOMMENT THE LINE ('services:') + +# THEN UNCOMMENT ONLY THE SECTION OR SECTIONS CONTAINING THE CHANGES YOU WANT TO APPLY +# SAVE THIS FILE AS 'docker-compose.override.yaml' +# AND USE THE 'docker compose build' & 'docker compose up -d' COMMANDS AS YOU WOULD NORMALLY DO + +# WARNING: YOU CAN ONLY SPECIFY EVERY SERVICE NAME ONCE (api, mongodb, meilisearch, ...) +# IF YOU WANT TO OVERRIDE MULTIPLE SETTINGS IN ONE SERVICE YOU WILL HAVE TO EDIT ACCORDINGLY + +# EXAMPLE: if you want to use the config file and the latest numbered release docker image the result will be: + +# services: +# api: +# volumes: +# - type: bind +# source: ./librechat.yaml +# target: /app/librechat.yaml +# image: ghcr.io/danny-avila/librechat:latest + +# --------------------------------------------------- + +services: + +# USE LIBRECHAT CONFIG FILE + api: + volumes: + - type: bind + source: ./librechat.yaml + target: /app/librechat.yaml + +# # LOCAL BUILD +# api: +# image: librechat +# build: +# context: . +# target: node + +# # BUILD FROM LATEST IMAGE +# api: +# image: ghcr.io/danny-avila/librechat-dev:latest + +# # BUILD FROM LATEST IMAGE (NUMBERED RELEASE) +# api: +# image: ghcr.io/danny-avila/librechat:latest + +# # BUILD FROM LATEST API IMAGE +# api: +# image: ghcr.io/danny-avila/librechat-dev-api:latest + +# # BUILD FROM LATEST API IMAGE (NUMBERED RELEASE) +# api: +# image: ghcr.io/danny-avila/librechat-api:latest + +# # ADD MONGO-EXPRESS +# mongo-express: +# image: mongo-express +# container_name: mongo-express +# environment: +# ME_CONFIG_MONGODB_SERVER: mongodb +# ME_CONFIG_BASICAUTH_USERNAME: admin +# ME_CONFIG_BASICAUTH_PASSWORD: password +# ports: +# - '8081:8081' +# depends_on: +# - mongodb +# restart: always + +# # USE MONGODB V4.4.18 - FOR OLDER CPU WITHOUT AVX SUPPORT +# mongodb: +# image: mongo:4.4.18 + +# # DISABLE THE MONGODB CONTAINER - YOU NEED TO SET AN ALTERNATIVE MONGODB URI IN THE .ENV FILE +# api: +# environment: +# - MONGO_URI=${MONGO_URI} +# mongodb: +# image: tianon/true +# command: "" +# entrypoint: "" + +# # EXPOSE MONGODB PORTS - USE CAREFULLY, THIS MAKES YOUR DATABASE VULNERABLE TO ATTACKS +# mongodb: +# ports: +# - 27018:27017 + +# # DISABLE MEILISEARCH +# meilisearch: +# profiles: +# - donotstart + +# # EXPOSE MEILISEARCH PORTS - DO NOT USE THE DEFAULT VALUE FOR THE MASTER KEY IF YOU DO THIS +# meilisearch: +# ports: +# - 7700:7700 + +# # USE RAG API IMAGE WITH LOCAL EMBEDDINGS SUPPORT +# rag_api: +# image: ghcr.io/danny-avila/librechat-rag-api-dev:latest + +# # ADD OLLAMA +# ollama: +# image: ollama/ollama:latest +# deploy: +# resources: +# reservations: +# devices: +# - driver: nvidia +# capabilities: [compute, utility] +# ports: +# - "11434:11434" +# volumes: +# - ./ollama:/root/.ollama + +# # ADD LITELLM BASIC - NEED TO CONFIGURE litellm-config.yaml, ONLY NEED ENV TO ENABLE REDIS FOR CACHING OR LANGFUSE FOR MONITORING +# litellm: +# image: ghcr.io/berriai/litellm:main-latest +# volumes: +# - ./litellm/litellm-config.yaml:/app/config.yaml +# command: [ "--config", "/app/config.yaml", "--port", "8000", "--num_workers", "8" ] +# environment: +# OPENAI_API_KEY: none ## needs to be set if ollama's openai api compatibility is used +# REDIS_HOST: redis +# REDIS_PORT: 6379 +# REDIS_PASSWORD: RedisChangeMe +# LANGFUSE_PUBLIC_KEY: pk-lf-RandomStringFromLangfuseWebInterface +# LANGFUSE_SECRET_KEY: sk-lf-RandomStringFromLangfuseWebInterface +# LANGFUSE_HOST: http://langfuse-server:3000 + +# # ADD LITELLM CACHING +# redis: +# image: redis:7-alpine +# command: +# - sh +# - -c # this is to evaluate the $REDIS_PASSWORD from the env +# - redis-server --appendonly yes --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose +# environment: +# REDIS_PASSWORD: RedisChangeMe +# volumes: +# - ./redis:/data + +# # ADD LITELLM MONITORING +# langfuse-server: +# image: ghcr.io/langfuse/langfuse:latest +# depends_on: +# - db +# ports: +# - "3000:3000" +# environment: +# - NODE_ENV=production +# - DATABASE_URL=postgresql://postgres:PostgresChangeMe@db:5432/postgres +# - NEXTAUTH_SECRET=ChangeMe +# - SALT=ChangeMe +# - NEXTAUTH_URL=http://localhost:3000 +# - TELEMETRY_ENABLED=${TELEMETRY_ENABLED:-true} +# - NEXT_PUBLIC_SIGN_UP_DISABLED=${NEXT_PUBLIC_SIGN_UP_DISABLED:-false} +# - LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES=${LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES:-false} +# db: +# image: postgres +# restart: always +# environment: +# - POSTGRES_USER=postgres +# - POSTGRES_PASSWORD=PostgresChangeMe +# - POSTGRES_DB=postgres +# volumes: +# - ./postgres:/var/lib/postgresql/data + rag_api: + image: ghcr.io/danny-avila/librechat-rag-api-dev:latest + environment: + POSTGRES_DB: mydatabase + POSTGRES_USER: myuser + POSTGRES_PASSWORD: mypassword + DB_HOST: vectordb + RAG_PORT: ${RAG_PORT:-8000} diff --git a/compose.yml b/compose.yml index 86f9ead..7c85cdc 100644 --- a/compose.yml +++ b/compose.yml @@ -1,4 +1,7 @@ networks: + default: + external: true + name: ${NETWORK:-web} net: external: true name: ${NETWORK:-web} @@ -9,4 +12,3 @@ include: - compose/apps.yml - emqx-docker/docker-compose.yml - LibreChat/docker-compose.yml - - LibreChat/docker-compose.override.yml