Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

환경 변수

`.env` 파일을 사용하여 애플리케이션 환경을 구성하기 위한 종합 가이드입니다. 이 문서는 다양한 상황에서 애플리케이션의 동작을 결정하는 환경 변수를 이해하고 사용자 지정하기 위한 원스톱 리소스입니다.

.env 파일을 사용하여 애플리케이션 환경을 구성하기 위한 종합 가이드에 오신 것을 환영합니다. 이 문서는 다양한 상황에서 애플리케이션의 동작을 결정하는 환경 변수를 이해하고 사용자 지정하기 위한 원스톱 리소스입니다.

기본 설정만으로도 표준 docker 설치를 위한 탄탄한 기반을 제공하지만, 이 가이드를 자세히 살펴보면 LibreChat의 잠재력을 완전히 끌어낼 수 있습니다. 이 가이드를 통해 귀하의 필요에 맞춰 LibreChat을 조정할 수 있습니다. 언어 모델 가용성을 조정하고, 소셜 로그인을 통합하며, 자동 조정 시스템을 관리하는 등 다양한 방법을 알아보세요. 이 모든 것은 최적의 사용자 경험을 위해 LibreChat을 세밀하게 조정할 수 있는 제어 권한을 제공하기 위함입니다.

알림: 구성 변경 사항을 적용하려면 LibreChat을 다시 시작해 주세요.

또는, LibreChat의 메인 docker-compose.yml 파일과 동일한 디렉토리에 docker-compose.override.yml이라는 새 파일을 생성할 수 있습니다. 이 파일에서 environment 아래에 필요한 .env 변수를 설정하거나, 전체 파일을 직접 수정하거나 복제할 필요 없이 메인 docker-compose.yml에서 제공하는 기본 구성을 수정할 수 있습니다.

더 자세한 정보는 다음을 참조하세요:


서버 구성

포트

  • 서버는 특정 포트에서 수신 대기합니다.
  • PORT 환경 변수는 서버가 수신 대기할 포트를 설정합니다. 기본값은 3080으로 설정되어 있습니다.
KeyTypeDescriptionExample
HOSTstring호스트를 지정합니다.HOST=localhost
PORTnumber포트를 지정합니다.PORT=3080

Trust proxy

Express 애플리케이션으로부터 최대 n개의 홉(hop) 거리에 있는 주소를 사용합니다. req.socket.remoteAddress는 첫 번째 홉이며, 나머지는 X-Forwarded-For 헤더에서 오른쪽에서 왼쪽으로 탐색합니다. 값이 0이면 첫 번째 신뢰할 수 없는 주소가 req.socket.remoteAddress가 됨을 의미하며, 즉 리버스 프록시가 없음을 뜻합니다. TRUST_PROXY 환경 변수의 기본값은 1로 설정되어 있습니다.

이에 대한 자세한 내용은 Express.js - trust proxy를 참조하세요.

KeyTypeDescriptionExample
TRUST_PROXYnumber홉 수를 지정합니다.TRUST_PROXY=1

자격 증명(Credentials) 구성

자격 증명을 안전하게 저장하려면 고정된 키와 IV가 필요합니다. prod 및 dev 환경에 대해 여기에서 설정할 수 있습니다.

KeyTypeDescriptionExample
CREDS_KEYstring자격 증명을 안전하게 저장하기 위한 32바이트 키(16진수 64자). 앱 시작 시 필수입니다.CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0
CREDS_IVstring자격 증명을 안전하게 저장하기 위한 16바이트 IV(16진수 32자). 앱 시작 시 필수입니다.CREDS_IV=e2341419ec3dd3d19b13a1a87fafcbfb

경고

경고: CREDS_KEYCREDS_IV를 설정하지 않으면 앱이 시작될 때 충돌이 발생합니다. - 이 키 생성기를 사용하여 빠르게 생성할 수 있습니다.

정적 파일 처리

KeyTypeDescriptionExample
STATIC_CACHE_MAX_AGEstring초 단위의 Cache-Control max-ageSTATIC_CACHE_MAX_AGE=172800
STATIC_CACHE_S_MAX_AGEstring공유 캐시(CDN 및 프록시)를 위한 초 단위의 Cache-Control s-maxageSTATIC_CACHE_S_MAX_AGE="86400"
DISABLE_COMPRESSIONboolean정적 파일에 대한 압축을 비활성화합니다.DISABLE_COMPRESSION=false
ENABLE_IMAGE_OUTPUT_GZIP_SCANboolean동일한 폴더에 존재하는 경우 업로드된 이미지의 gzipped 버전을 제공하도록 활성화합니다.ENABLE_IMAGE_OUTPUT_GZIP_SCAN=true
ENABLE_STATIC_ASSET_BROTLIboolean사용 가능한 경우 정적 앱 에셋의 사전 압축된 Brotli 버전을 제공하도록 활성화합니다.ENABLE_STATIC_ASSET_BROTLI=true

동작:

정적 파일에 대한 Cache-Control 헤더를 설정합니다. 이 구성은 NODE_ENVproduction으로 설정된 경우에만 트리거됩니다.

  • STATIC_CACHE_MAX_AGE의 주석을 해제하여 정적 파일에 대한 로컬 max-age를 변경할 수 있습니다. 기본값은 2일(172800초)로 설정되어 있습니다.
  • STATIC_CACHE_S_MAX_AGE의 주석을 해제하여 공유 캐시(CDN 및 프록시)에 대한 s-maxage를 설정하세요. 기본값은 1일(86400초)로 설정되어 있습니다.
  • DISABLE_COMPRESSION의 주석을 해제하면 정적 파일에 대한 압축을 비활성화할 수 있습니다. 기본적으로 압축은 활성화되어 있습니다.
  • ENABLE_IMAGE_OUTPUT_GZIP_SCAN의 주석을 해제하면 동일한 폴더 내에 동일한 이름과 .gz 확장자로 미리 압축된 이미지가 있을 경우, 해당 gzip 버전의 이미지를 스캔하고 제공할 수 있습니다. 기본적으로 업로드된 이미지에 대한 gzip 스캔은 비활성화되어 있습니다.
  • ENABLE_STATIC_ASSET_BROTLI의 주석을 해제하면 존재하는 경우 사전 압축된 .br 버전의 정적 앱 에셋을 제공합니다. 활성화되면 API를 통해 제공되는 정적 파일에 대해 gzip보다 Brotli가 우선적으로 사용됩니다.

경고

  • 이는 API 서버에서 제공되는 정적 파일에만 영향을 미치며, Firebase, NGINX 또는 기타 다른 구성에는 적용되지 않습니다.

Index HTML 캐시 제어

KeyTypeDescriptionExample
INDEX_CACHE_CONTROLstringindex.html에 대한 Cache-Control 헤더INDEX_CACHE_CONTROL=no-cache, no-store, must-revalidate
INDEX_PRAGMAstringindex.html을 위한 Pragma 헤더INDEX_PRAGMA=no-cache
INDEX_EXPIRESstringindex.html에 대한 Expires 헤더INDEX_EXPIRES=0

동작:

index.html 응답에 대한 캐싱 헤더를 구체적으로 제어합니다. 기본적으로 이러한 설정은 사용자가 항상 최신 버전의 애플리케이션을 받을 수 있도록 캐싱을 방지합니다.

참고

성능을 위해 캐시되는 정적 에셋과 달리, index.html 파일의 캐시 헤더는 사용자가 항상 최신 애플리케이션 셸을 받을 수 있도록 별도로 구성됩니다.

MongoDB 데이터베이스

KeyTypeDescriptionExample
MONGO_URIstringMongoDB URI를 지정합니다.MONGO_URI=mongodb://127.0.0.1:27017/LibreChat

다를 경우 이를 귀하의 MongoDB URI로 변경하십시오. URI의 데이터베이스 이름으로 LibreChat 또는 귀하만의 APP_TITLE을 추가해야 합니다.

온라인 데이터베이스를 사용하는 경우, URI 형식은 mongodb+srv://<username>:<password>@<host>/<database>?<options>입니다. 귀하의 MONGO_URI는 다음과 같아야 합니다:

  • mongodb+srv://username:[email protected]/LibreChat?retryWrites=true (retryWrites는 온라인 데이터베이스를 사용할 때 필요한 유일한 옵션입니다.)

MongoDB 연결 풀 구성

KeyTypeDescriptionExample
MONGO_MAX_POOL_SIZEnumber연결 풀의 최대 연결 수입니다.# MONGO_MAX_POOL_SIZE=
MONGO_MIN_POOL_SIZEnumber연결 풀의 최소 연결 수입니다.# MONGO_MIN_POOL_SIZE=
MONGO_MAX_CONNECTINGnumber연결 풀에 의해 동시에 설정될 수 있는 최대 연결 수입니다.# MONGO_MAX_CONNECTING=
MONGO_MAX_IDLE_TIME_MSnumber연결이 풀에서 제거되고 닫히기 전까지 유휴 상태로 유지될 수 있는 최대 밀리초(ms) 수입니다.# MONGO_MAX_IDLE_TIME_MS=
MONGO_WAIT_QUEUE_TIMEOUT_MSnumber스레드가 연결을 사용할 수 있을 때까지 대기할 수 있는 최대 시간(밀리초 단위)입니다.# MONGO_WAIT_QUEUE_TIMEOUT_MS=

MongoDB 스키마 구성

KeyTypeDescriptionExample
MONGO_AUTO_INDEXboolean이 연결과 관련된 모든 모델에 대해 자동 인덱스 생성을 비활성화하려면 false로 설정하세요. 생략할 경우 Mongoose 기본 동작을 사용합니다.# MONGO_AUTO_INDEX=
MONGO_AUTO_CREATEbooleanMongoose가 이 연결에서 생성된 모든 모델에 대해 자동으로 createCollection()을 호출하지 않도록 하려면 false로 설정하세요. 생략 시 Mongoose 기본 동작을 사용합니다.# MONGO_AUTO_CREATE=

또는 mongoDb를 에뮬레이트하는 documentDb를 사용할 수 있지만, 다음 사항이 있습니다:

  • retryWrites를 지원하지 않습니다 - retryWrites=false를 사용하세요
  • TLS 연결이 필요하므로, tls=true 매개변수를 사용하여 TLS를 활성화하고 tlsCAFile=/path-to-ca/bundle.pem을 사용하여 AWS에서 제공하는 CA 번들 파일을 지정하십시오.

documentDb에 대한 URI는 다음과 같습니다:

  • mongodb+srv://username:password@domain/dbname?retryWrites=false&tls=true&tlsCAFile=/path-to-ca/bundle.pem

참고:

애플리케이션 도메인

LibreChat을 로컬 환경이나 사용자 지정 도메인에 배포하도록 구성하려면 다음 환경 변수를 설정하세요:

KeyTypeDescriptionExample
DOMAIN_CLIENTstring클라이언트 측 도메인을 지정합니다.DOMAIN_CLIENT=http://localhost:3080
DOMAIN_SERVERstring서버 측 도메인을 지정합니다.DOMAIN_SERVER=http://localhost:3080
ADMIN_PANEL_URLstring관리자 패널이 별도로 호스팅되는 경우 관리자 OAuth/SSO 리디렉션에 사용되는 외부 관리자 패널 기본 URL입니다. 마지막에 슬래시(/)를 포함하지 마십시오.ADMIN_PANEL_URL=https://admin.example.com/admin
ADMIN_PANEL_SESSION_SECRETstring번들로 제공되는 관리자 패널에 필요한 세션 암호화 키입니다(최소 32자). docker-compose 및 deploy-compose의 admin-panel 서비스는 이를 SESSION_SECRET으로 읽습니다. 스택을 시작하기 전에 `openssl rand -hex 32` 명령어로 생성하십시오.ADMIN_PANEL_SESSION_SECRET=<your-32-char-random-string>
ADMIN_PANEL_PORTnumberHost port for the bundled admin panel in the default docker-compose. In deploy-compose the panel is served at http://admin.localhost via nginx instead.ADMIN_PANEL_PORT=3000

LibreChat을 사용자 지정 도메인에 배포할 때는 http://localhost:3080을 배포한 URL로 교체하세요.

  • 예: https://librechat.example.com.

공개 검색 엔진의 인덱싱 방지

기본적으로 귀하의 웹사이트는 공개 검색 엔진(예: Google, Bing 등)에 의해 색인되지 않습니다. 이는 사람들이 이러한 검색 엔진을 통해 귀하의 웹사이트를 찾을 수 없음을 의미합니다. 웹사이트의 가시성을 높이고 검색 가능하게 만들고 싶다면, 다음 설정을 false로 변경할 수 있습니다.

KeyTypeDescriptionExample
NO_INDEXboolean공개 검색 엔진이 웹사이트를 색인화하지 못하도록 방지합니다.NO_INDEX=true

참고: 이 방법이 모든 검색 엔진에서 작동한다고 보장할 수는 없으며, 일부 검색 엔진은 캐싱이나 아카이빙과 같은 다른 목적으로 귀하의 웹사이트나 웹 페이지를 여전히 색인화할 수 있습니다. 따라서 웹사이트나 웹 페이지의 민감하거나 기밀인 정보를 보호하기 위해 이 방법만 전적으로 의존해서는 안 됩니다.

로깅

LibreChat은 중앙 집중식 로깅 기능을 내장하고 있습니다. 자세한 내용은 Logging System을 참조하세요.

로그 파일

  • 디버그 로깅은 기본적으로 활성화되어 있으며 개발에 매우 중요합니다.
  • 문제를 보고하려면 오류를 재현한 후 ./api/logs/debug-%DATE%.log의 로그를 **LibreChat GitHub Issues**에 제출해 주세요.
  • 오류 로그는 동일한 위치에 저장됩니다.

환경 변수

KeyTypeDescriptionExample
DEBUG_LOGGINGboolean디버그 로그를 활성 상태로 유지합니다.DEBUG_LOGGING=true
DEBUG_CONSOLEboolean파일 디버그 로그와 동일한 형식으로 상세 콘솔/stdout 로그를 활성화합니다.DEBUG_CONSOLE=false
LOG_TO_FILEbooleanfile-backed Winston 전송을 비활성화하고 콘솔 로깅은 유지하려면 false로 설정하세요.LOG_TO_FILE=true
CONSOLE_JSONbooleanGCP/AWS와 같은 클라우드 배포에 적합한 상세 JSON 콘솔/stdout 로그를 활성화합니다.CONSOLE_JSON=false
CONSOLE_JSON_STRING_LENGTHnumberJSON 콘솔/stdout 로그의 문자열 값에 대한 잘림 크기를 설정합니다. 기본값: 255.# CONSOLE_JSON_STRING_LENGTH=255
LIBRECHAT_LOG_DIRstring로그 파일용 사용자 지정 디렉터리입니다. 기본값은 /app/logs (Docker) 또는 api/logs (로컬 개발)입니다.# LIBRECHAT_LOG_DIR=/custom/log/path
MEM_DIAGboolean메모리 진단 활성화 — 60초마다 힙/RSS 스냅샷을 로그로 기록합니다. --inspect와 함께 실행 시 자동으로 활성화됩니다.# MEM_DIAG=true
AGENT_DEBUG_LOGGINGboolean에이전트 컨트롤러에서 상세 디버그 로깅(토큰 수, 컨텍스트 정리 진단)을 활성화합니다.# AGENT_DEBUG_LOGGING=true

참고:

  • DEBUG_LOGGINGDEBUG_CONSOLE 또는 CONSOLE_JSON 중 하나와 함께 사용할 수 있지만, 둘 다 동시에 사용할 수는 없습니다.
  • DEBUG_CONSOLECONSOLE_JSON은 상호 배타적입니다.
  • CONSOLE_JSON: 클라우드 배포(GCP 또는 AWS 등)에서 콘솔 로그를 처리할 때, 이 옵션을 활성화하면 UTC 타임스탬프가 포함된 JSON 형식으로 로그가 출력됩니다.

참고: DEBUG_CONSOLE은 출력이 매우 장황할 수 있으므로 권장되지 않으며, 기본적으로 비활성화되어 있습니다.

권한

UID와 GID는 시스템의 각 사용자와 그룹에 할당된 Linux 숫자입니다. 권한 문제가 발생하는 경우, Docker Compose 명령을 실행하는 사용자의 UID와 GID를 여기에 설정하십시오. 컨테이너 내의 애플리케이션은 이 UID/GID로 실행됩니다.

KeyTypeDescriptionExample
UIDnumber사용자 ID.# UID=1000
GIDnumber그룹 ID.# GID=1000

OpenTelemetry Tracing

LibreChat은 일반 API, HTTP, MongoDB, Mongoose, Redis 및 아웃바운드 요청 가시성을 위해 백엔드 OpenTelemetry 추적을 내보낼 수 있습니다. Redis 명령 수준 스팬(span)은 선택 사항이므로 기본 추적은 상위 수준으로 유지됩니다. GenAI 관련 프롬프트/모델 관측 가능성을 위해서는 Langfuse를 사용하세요.

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDboolean백엔드 OpenTelemetry 추적을 활성화합니다. OTEL_SDK_DISABLED=true일 경우 추적은 비활성화된 상태로 유지됩니다.# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringOpenTelemetry에 보고되는 서비스 이름입니다. 기본값: librechat.# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringOpenTelemetry에 보고되는 서비스 버전입니다. 설정되지 않은 경우 패키지 버전이 기본값으로 사용됩니다.# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstring기본 OTLP exporter endpoint.# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstring추적 전용 OTLP endpoint입니다. 설정 시 추적을 위한 기본 endpoint를 재정의합니다.# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstring인증 메타데이터와 같은 쉼표로 구분된 OTLP 내보내기 헤더입니다.# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringTrace exporter 선택.# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringOpenTelemetry 트레이스 샘플러. 기본 예시: parentbased_always_on.# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringOpenTelemetry SDK 로그 레벨.# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDboolean추적(tracing)이 활성화되어 있더라도 OpenTelemetry SDK를 비활성화합니다.# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanRedis 명령 수준 스팬을 활성화합니다. 백엔드 추적을 상위 수준으로 유지하기 위해 기본적으로 비활성화되어 있습니다.# OTEL_IOREDIS_TRACING_ENABLED=false

실제 사용자 모니터링 (브라우저)

LibreChat은 브라우저 RUM(Real User Monitoring) 텔레메트리를 HyperDX 호환 OTLP 수집기로 게시할 수 있습니다. RUM은 기본적으로 비활성화되어 있습니다.

KeyTypeDescriptionExample
RUM_ENABLEDboolean브라우저 Real User Monitoring을 활성화합니다. 기본값: false.# RUM_ENABLED=false
RUM_PROVIDERstring브라우저 RUM 공급자입니다. 현재 `hyperdx`를 지원합니다.# RUM_PROVIDER=hyperdx
RUM_URLstringpublic-token 모드에서 사용하는 공개 수집기 URL입니다.# RUM_URL=http://localhost:4318
RUM_SERVICE_NAMEstring브라우저 SDK가 보고하는 서비스 이름입니다. 기본값: librechat-web.# RUM_SERVICE_NAME=librechat-web
RUM_ENVIRONMENTstring브라우저 텔레메트리로 보고된 환경 레이블.# RUM_ENVIRONMENT=development
RUM_AUTH_MODEstring브라우저 텔레메트리를 위한 인증 모드입니다. `publicToken` 또는 `proxy`를 사용하세요.# RUM_AUTH_MODE=publicToken
RUM_PUBLIC_TOKENstringpublic-token 모드를 위한 공개 브라우저 토큰입니다. 이를 공개용으로 취급하고 수집기(collector)에서의 수집을 제한하십시오.# RUM_PUBLIC_TOKEN=
RUM_PROXY_TARGET_URLstring인증된 프록시 모드에서 사용되는 Collector base URL입니다. `RUM_AUTH_MODE=proxy`일 때 필수입니다.# RUM_PROXY_TARGET_URL=http://otel-collector:4318
RUM_PROXY_TIMEOUT_MSnumber밀리초 단위의 프록시 요청 시간 제한입니다. 기본값: 10000.# RUM_PROXY_TIMEOUT_MS=10000
RUM_TRACE_PROPAGATION_TARGETSstringtraceparent 헤더를 수신해야 하는 쉼표로 구분된 자사 HTTPS 오리진 또는 URL입니다.# RUM_TRACE_PROPAGATION_TARGETS=https://api.example.com
RUM_DISABLE_REPLAYboolean브라우저 세션 리플레이를 비활성화합니다. 기본값: true.# RUM_DISABLE_REPLAY=true
RUM_CONSOLE_CAPTUREboolean브라우저 콘솔 로그를 캡처합니다. 민감한 프롬프트, 응답 또는 페이로드가 수집될 수 있습니다.# RUM_CONSOLE_CAPTURE=false
RUM_ADVANCED_NETWORK_CAPTUREboolean상세한 네트워크 페이로드를 캡처합니다. 민감한 프롬프트, 응답 또는 페이로드가 수집될 수 있습니다.# RUM_ADVANCED_NETWORK_CAPTURE=false
RUM_SAMPLE_RATEnumber브라우저 원격 분석 샘플링 비율(0에서 1 사이). 기본값: 1.# RUM_SAMPLE_RATE=1

publicToken 모드에서 브라우저는 RUM_PUBLIC_TOKEN과 함께 RUM_URL로 원격 분석(telemetry) 데이터를 직접 전송합니다. proxy 모드에서 브라우저는 LibreChat을 통해 원격 분석 데이터를 전송하며, 백엔드는 사용자 세션을 검증하고 앱 인증 헤더를 제거한 뒤 RUM_PROXY_TARGET_URL로 데이터를 전달합니다. 유효하지 않거나 만료된 세션은 204 응답과 함께 삭제되므로 브라우저의 원격 분석 실패가 일반적인 API 인증 오류로 나타나지 않습니다. 프록시 결과는 LibreChat API /metrics 엔드포인트에서 endpointresult 레이블이 지정된 rum_proxy_requests_total로 집계됩니다.

구성 경로 - librechat.yaml

LibreChat 설정 파일의 대체 위치를 지정합니다.

절대 경로, 상대 경로 또는 URL을 지정할 수 있습니다. 경로 내의 파일 이름은 유연하게 설정할 수 있으며 반드시 librechat.yaml일 필요는 없습니다. 유효한 설정 파일이라면 무엇이든 작동합니다.

참고: LibreChat이 루트 디렉토리에서 설정 파일을 검색하도록 하려면(기본 동작), 이 옵션을 주석 처리된 상태로 두면 됩니다.

KeyTypeDescriptionExample
CONFIG_PATHstringLibreChat 설정 파일을 위한 대체 위치입니다.# CONFIG_PATH=https://raw.githubusercontent.com/danny-avila/LibreChat/main/librechat.example.yaml

배포 기술

Deployment Skills는 시작 시 파일 시스템에서 읽기 전용으로 로드되며, Skills 기능이 활성화된 사용자에게 노출됩니다.

KeyTypeDescriptionExample
DEPLOYMENT_SKILLS_DIRstring배포 시 제공되는 Skill이 포함된 디렉토리입니다. 프로젝트 루트의 `./skill`로 기본 설정됩니다.# DEPLOYMENT_SKILLS_DIR=./skill

이 디렉토리나 그 안의 파일을 변경한 후에는 LibreChat을 재시작하십시오. 배포 시 제공된 Skills는 동일한 이름을 가진 영구 저장된 Skills보다 우선합니다.

구성 유효성 검사

기본적으로 LibreChat은 librechat.yaml 구성 파일에 유효성 검사 오류가 포함되어 있으면 오류(종료 코드 1)와 함께 종료됩니다. 이러한 빠른 실패(fail-fast) 동작은 배포 파이프라인 초기에 구성 문제를 포착하고 의도하지 않은 기본 설정으로 실행되는 것을 방지하는 데 도움이 됩니다.

KeyTypeDescriptionExample
CONFIG_BYPASS_VALIDATIONboolean`true`로 설정하면, `librechat.yaml`에 유효성 검사 오류가 있더라도 서버가 경고를 기록하고 기본 구성으로 시작을 계속합니다. 이는 레거시 동작을 유지합니다.# CONFIG_BYPASS_VALIDATION=true

경고

CONFIG_BYPASS_VALIDATION=true를 프로덕션 환경에서 사용하는 것은 권장되지 않습니다. 이는 구성 문제를 디버깅하는 동안의 임시 해결책으로 의도되었습니다. 항상 구성 파일의 유효성 검사 오류를 수정하십시오.

Uncaught Exception Handling

기본적으로 LibreChat은 처리되지 않은 예외가 발생하면 프로세스를 종료하며, 이는 표준 Node.js 동작 방식입니다. 처리되지 않은 예외 발생 후에도 앱이 계속 실행되도록 이 설정을 재정의할 수 있습니다.

KeyTypeDescriptionExample
CONTINUE_ON_UNCAUGHT_EXCEPTIONboolean`true`로 설정하면, 앱이 처리되지 않은 예외가 발생해도 프로세스를 종료하지 않고 계속 실행됩니다.# CONTINUE_ON_UNCAUGHT_EXCEPTION=false

경고

필요한 경우가 아니라면 프로덕션 환경에서는 권장되지 않습니다. 처리되지 않은 예외(Uncaught exceptions)로 인해 애플리케이션이 예측할 수 없는 상태가 될 수 있습니다.

Endpoints

이 섹션에서는 엔드포인트 및 모델 선택, API 키, 그리고 이를 지원하는 엔드포인트에 대한 프록시 및 리버스 프록시 설정을 구성할 수 있습니다.

일반 설정

ENDPOINTS의 주석을 해제하여 LibreChat에서 사용 가능한 endpoint를 사용자 지정하세요.

KeyTypeDescriptionExample
ENDPOINTSstring사용 가능한 endpoint의 쉼표로 구분된 목록입니다.# ENDPOINTS=openAI,agents,assistants,gptPlugins,azureOpenAI,google,anthropic,bingAI,custom
PROXYstring지원되는 서버 측 클라이언트를 위한 아웃바운드 프록시입니다. HTTP 및 HTTPS 대상 모두에 적용됩니다.PROXY=
HTTP_PROXYstringPROXY가 설정되지 않았을 때 지원되는 서버 측 클라이언트가 사용하는 HTTP 프록시 폴백입니다.# HTTP_PROXY=
HTTPS_PROXYstringPROXY가 설정되지 않았을 때 지원되는 서버 측 클라이언트가 사용하는 HTTPS 프록시 폴백입니다.# HTTPS_PROXY=
NO_PROXYstring지원되는 서버 측 클라이언트가 우회해야 하는 호스트, 도메인 또는 IP 범위를 쉼표로 구분하여 입력합니다. 소문자 no_proxy 변형도 지원됩니다.# NO_PROXY=
TITLE_CONVOboolean모든 endpoint에 대한 제목 생성 기능을 활성화합니다.TITLE_CONVO=true

알려진 엔드포인트 - librechat.yaml

KeyTypeDescriptionExample
ANYSCALE_API_KEYstringAnyscale용 API 키.# ANYSCALE_API_KEY=
APIPIE_API_KEYstringApipie용 API 키# APIPIE_API_KEY=
COHERE_API_KEYstringCohere용 API 키.# COHERE_API_KEY=
FIREWORKS_API_KEYstringFireworks용 API 키# FIREWORKS_API_KEY=
GROQ_API_KEYstringGroq용 API 키# GROQ_API_KEY=
MISTRAL_API_KEYstringMistral용 API 키# MISTRAL_API_KEY=
OPENROUTER_KEYstringOpenRouter용 API 키.# OPENROUTER_KEY=
PERPLEXITY_API_KEYstringPerplexity용 API 키# PERPLEXITY_API_KEY=
SHUTTLEAI_API_KEYstringShuttleAI용 API 키.# SHUTTLEAI_API_KEY=
TOGETHERAI_API_KEYstringTogetherAI용 API 키# TOGETHERAI_API_KEY=
DEEPSEEK_API_KEYstringDeepseek API용 API 키# DEEPSEEK_API_KEY=

웹 검색 기능은 LibreChat 내에서 인터넷 검색 기능을 활성화합니다.

중요: 아래에 표시된 정확한 환경 변수 이름은 기본 참조이며, librechat.yaml 구성 파일을 통해 원하는 변수 이름을 사용하도록 사용자 지정할 수 있습니다.

자세한 구성 및 사용자 지정 옵션은 다음을 참조하세요: Web Search Configuration

KeyTypeDescriptionExample
SERPER_API_KEYstringSerper 검색 제공업체를 위한 API 키입니다. https://serper.dev/api-keys 에서 키를 발급받으세요.# SERPER_API_KEY=
TAVILY_API_KEYstringTavily 검색 및 스크레이퍼 제공업체를 위한 API 키입니다. https://app.tavily.com/home 에서 키를 발급받으세요.# TAVILY_API_KEY=
TAVILY_SEARCH_URLstring사용자 지정 Tavily Search API URL (선택 사항). 사용자 지정 또는 프록시 Tavily 호환 검색 endpoint에만 필요합니다.# TAVILY_SEARCH_URL=
TAVILY_EXTRACT_URLstring사용자 지정 Tavily Extract API URL (선택 사항). 사용자 지정 또는 프록시 Tavily 호환 extract endpoint에만 필요합니다.# TAVILY_EXTRACT_URL=
FIRECRAWL_API_KEYstringFirecrawl 스크레이퍼 서비스를 위한 API key입니다. https://docs.firecrawl.dev/introduction#api-key 에서 키를 발급받으세요.# FIRECRAWL_API_KEY=
FIRECRAWL_API_URLstring사용자 지정 Firecrawl API URL (선택 사항). 사용자 지정 Firecrawl 인스턴스에만 필요합니다.# FIRECRAWL_API_URL=
FIRECRAWL_VERSIONstringFirecrawl API 버전 (v0 또는 v1).# FIRECRAWL_VERSION=v1
JINA_API_KEYstringJina reranker 서비스를 위한 API 키입니다. https://jina.ai/api-dashboard/ 에서 키를 발급받으세요.# JINA_API_KEY=
JINA_API_URLstring사용자 지정 Jina API URL (선택 사항). 사용자 지정 Jina 인스턴스에만 필요합니다.# JINA_API_URL=
COHERE_API_KEYstringCohere reranker 서비스를 위한 API 키입니다. https://dashboard.cohere.com/welcome/login 에서 키를 발급받으세요.# COHERE_API_KEY=

참고: 이 변수 이름들은 librechat.yaml 구성 파일에서 사용자 지정할 수 있습니다. 예를 들어, 웹 검색 설정에서 구성하여 SERPER_API_KEY 대신 CUSTOM_SERPER_KEY를 사용할 수 있습니다. 변수 이름 사용자 지정에 대한 자세한 내용은 Web Search Configuration 문서를 참조하세요.

Anthropic

참고: Anthropic Endpoint

  • https://platform.claude.com/ 에서 액세스 키를 요청할 수 있습니다.
  • ANTHROPIC_API_KEY=를 비워두면 이 endpoint가 비활성화됩니다.
  • ANTHROPIC_API_KEY=를 "user_provided"로 설정하여 사용자가 WebUI에서 자신의 API 키를 직접 입력할 수 있도록 합니다.
  • Anthropic에 대한 리버스 프록시(reverse proxy) 접근 권한이 있는 경우, ANTHROPIC_REVERSE_PROXY=를 사용하여 설정할 수 있습니다.
    • 기본 base url을 사용하려면 비워두거나 주석 처리하세요
KeyTypeDescriptionExample
ANTHROPIC_API_KEYstringAnthropic API 키 또는 사용자가 직접 API 키를 제공할 수 있도록 하려면 "user_provided"를 입력하세요.Defaults to an empty string.
ANTHROPIC_MODELSstring사용할 Anthropic 모델의 쉼표로 구분된 목록입니다.# ANTHROPIC_MODELS=claude-fable-5,claude-opus-4-8,claude-opus-4-7,claude-sonnet-4-6,claude-opus-4-6,claude-opus-4-20250514,claude-3-7-sonnet-20250219,claude-3-5-sonnet-20241022,claude-3-5-haiku-20241022
ANTHROPIC_REVERSE_PROXYstringAnthropic을 위한 리버스 프록시.# ANTHROPIC_REVERSE_PROXY=
ANTHROPIC_TITLE_MODELstring사용 중단됨: Anthropic으로 제목을 생성할 때 사용할 모델입니다.# ANTHROPIC_TITLE_MODEL=claude-3-haiku-20240307
  • ANTHROPIC_TITLE_MODEL은 이제 더 이상 사용되지 않으며 향후 버전에서 제거될 예정입니다. 대신 librechat.yaml 설정의 titleModel 엔드포인트 설정을 사용하세요.

참고: Anthropic endpoint와 호환되어야 합니다. 또한, Claude 2 및 Claude 3 모델이 이 작업에서 가장 뛰어난 성능을 발휘하며, claude-3-haiku 모델이 가장 저렴합니다.

Claude Fable 5는 기본 Anthropic 모델 목록에 포함되어 있습니다. Fable/Mythos급 모델은 LibreChat에서 최신 Anthropic 동작을 사용합니다: 1M 컨텍스트, 적응형 사고(adaptive thinking) 지원, 프롬프트 캐싱 지원, 그리고 요약되거나 생략된 추론 출력을 위한 thinkingDisplay 처리가 포함됩니다.

Vertex AI를 통한 Anthropic

Google Cloud Vertex AI를 통해 Anthropic Claude 모델을 사용할 수도 있습니다. 자세한 YAML 구성 옵션은 다음을 참조하세요: Anthropic Vertex AI 구성

KeyTypeDescriptionExample
ANTHROPIC_USE_VERTEXboolean직접 API 대신 Google Vertex AI를 통해 Anthropic 모델을 사용하려면 true로 설정하세요.ANTHROPIC_USE_VERTEX=true
ANTHROPIC_VERTEX_REGIONstringVertex AI를 위한 Google Cloud 리전입니다. 기본값: us-east5.ANTHROPIC_VERTEX_REGION=us-east5

참고: Vertex AI를 사용할 때는 Vertex AI User 역할이 있는 서비스 계정으로 GOOGLE_SERVICE_KEY_FILE을 구성해야 합니다(Google 구성 참조).

AWS Bedrock

참고: AWS Bedrock 설정

KeyTypeDescriptionExample
BEDROCK_AWS_DEFAULT_REGIONstringBedrock을 사용하려면 기본 AWS 리전을 지정해야 합니다.BEDROCK_AWS_DEFAULT_REGION=us-east-1
BEDROCK_AWS_ACCESS_KEY_IDstringBedrock을 위한 AWS access key ID입니다. 기본 AWS 자격 증명 체인을 사용하는 경우 선택 사항입니다.# BEDROCK_AWS_ACCESS_KEY_ID=your_access_key_id
BEDROCK_AWS_SECRET_ACCESS_KEYstringBedrock을 위한 AWS secret access key입니다. 기본 AWS 자격 증명 체인을 사용하는 경우 선택 사항입니다.# BEDROCK_AWS_SECRET_ACCESS_KEY=your_secret_access_key
BEDROCK_AWS_SESSION_TOKENstring임시 자격 증명을 위한 AWS 세션 토큰입니다. 선택 사항입니다.# BEDROCK_AWS_SESSION_TOKEN=your_session_token
BEDROCK_AWS_PROFILEstringBedrock을 위한 AWS 공유 설정 프로필 이름입니다. 기본 AWS 자격 증명 체인을 사용하는 경우 선택 사항입니다.# BEDROCK_AWS_PROFILE=your-profile-name
BEDROCK_AWS_BEARER_TOKENstringBearer 인증을 위한 Amazon Bedrock API 키, 또는 사용자가 UI에서 자신의 Bedrock API 키를 직접 입력하도록 하려면 user_provided를 사용하세요.# BEDROCK_AWS_BEARER_TOKEN=your_bedrock_api_key
BEDROCK_AWS_MODELSstring쉼표로 구분된 Bedrock 모델 ID 목록입니다. 생략할 경우, 알려진 모든 지원 모델이 포함됩니다.# BEDROCK_AWS_MODELS=anthropic.claude-fable-5,anthropic.claude-opus-4-8,anthropic.claude-opus-4-7,anthropic.claude-sonnet-4-6,meta.llama3-1-8b-instruct-v1:0

참고: 액세스 키를 생략하면 기본 AWS 자격 증명 체인(환경 변수, SSO 자격 증명, 공유 자격 증명 파일 또는 EC2/ECS 인스턴스 메타데이터 서비스)을 사용할 수 있습니다. 자세한 내용은 AWS Bedrock Setup을 참조하세요.

Bedrock의 Claude Fable/Mythos 클래스 모델은 추론 프로필(inference-profile) 전용입니다. us.anthropic.claude-fable-5와 같은 프로필 ID를 사용하고, 모델을 호출하기 전에 Bedrock 콘솔 또는 Data Retention API에서 필요한 Anthropic 데이터 공유 설정을 활성화하십시오.

BingAI

Bing (Sydney, jailbreak, 및 Bing Image Creator에도 사용됨)

KeyTypeDescriptionExample
BINGAI_TOKENstringBing 액세스 토큰입니다. 비활성화하려면 비워 두세요. 사용자가 WebUI에서 자신의 토큰을 직접 입력하게 하려면 "user_provided"로 설정할 수 있습니다.BINGAI_TOKEN=user_provided
BINGAI_HOSTstringBing 호스트 URL입니다. 기본 서버를 사용하려면 주석 처리된 상태로 두세요.# BINGAI_HOST=https://cn.bing.com

참고: "user_provided"로 두고 WebUI에서 토큰을 입력하는 것을 권장합니다.

Google

Google Endpoint을 설정하려면 다음 지침을 따르세요.

KeyTypeDescriptionExample
GOOGLE_KEYstringGoogle API key. 사용자가 WebUI에서 자신의 API key를 직접 입력할 수 있도록 하려면 "user_provided"로 설정하세요.GOOGLE_KEY=user_provided
GOOGLE_SERVICE_KEY_FILEstringGoogle 서비스 계정 JSON 키 파일 경로, 가져올 URL 또는 문자열화된 JSON입니다. Vertex AI 인증(예: OCR 기능)에 사용됩니다.GOOGLE_SERVICE_KEY_FILE=/path/to/auth.json
GOOGLE_REVERSE_PROXYstringGoogle 리버스 프록시 URL.GOOGLE_REVERSE_PROXY=
GOOGLE_AUTH_HEADERbooleanX-goog-api-key 대신 Authorization 헤더를 사용하세요. 일부 리버스 프록시에서 이 방식이 필요합니다.# GOOGLE_AUTH_HEADER=true
GOOGLE_MODELSstring쉼표로 구분된 사용 가능한 Gemini API Google 모델입니다.GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash,gemini-2.0-flash-lite
GOOGLE_MODELSstring쉼표로 구분된 사용 가능한 Vertex AI Google 모델입니다.GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash-001,gemini-2.0-flash-lite-001
GOOGLE_TITLE_MODELstring사용 중단됨: Google을 사용한 제목 생성에 사용되는 모델입니다.GOOGLE_TITLE_MODEL=gemini-pro
GOOGLE_LOCstringAPI 요청을 처리하기 위한 Google Cloud 위치를 지정합니다GOOGLE_LOC=us-central1
GOOGLE_CLOUD_LOCATIONstringGemini 이미지 생성을 위한 대체 리전 (예: global).# GOOGLE_CLOUD_LOCATION=global
GOOGLE_EXCLUDE_SAFETY_SETTINGSstring기본적으로 포함된 안전 설정을 완전히 생략하며, 이 경우 제공업체의 기본값이 사용됩니다GOOGLE_EXCLUDE_SAFETY_SETTINGS=true
GOOGLE_SAFETY_SEXUALLY_EXPLICITstring성적으로 노골적인 콘텐츠에 대한 안전 설정입니다. 옵션은 BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY, OFF입니다.GOOGLE_SAFETY_SEXUALLY_EXPLICIT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HATE_SPEECHstring혐오 표현 콘텐츠에 대한 안전 설정입니다. 옵션은 BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY, OFF입니다.GOOGLE_SAFETY_HATE_SPEECH=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HARASSMENTstring괴롭힘 콘텐츠에 대한 안전 설정입니다. 옵션은 BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY, OFF가 있습니다.GOOGLE_SAFETY_HARASSMENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_DANGEROUS_CONTENTstring위험한 콘텐츠에 대한 안전 설정입니다. 옵션은 BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY, OFF가 있습니다.GOOGLE_SAFETY_DANGEROUS_CONTENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_CIVIC_INTEGRITYstring시민 무결성 콘텐츠에 대한 안전 설정입니다. 옵션은 BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY, OFF가 있습니다.# GOOGLE_SAFETY_CIVIC_INTEGRITY=BLOCK_ONLY_HIGH

사용 가능한 모델을 쉼표로 구분하여 지정하세요. 공백은 포함하지 마세요. 첫 번째 모델이 기본값으로 설정됩니다. 내부 설정을 사용하려면 비워두거나 주석 처리하세요.

  • GOOGLE_TITLE_MODEL은 이제 더 이상 사용되지 않으며 향후 버전에서 제거될 예정입니다. 대신 librechat.yaml 설정의 titleModel 엔드포인트 설정을 사용하세요.

참고: Vertex AI GOOGLE_SAFETY 변수의 경우, 기본적으로 BLOCK_NONE 설정에 액세스할 수 없습니다. 이 제한된 HarmBlockThreshold 설정을 사용하려면 다음 중 하나를 수행해야 합니다:

Gemini 이미지 생성

Gemini Image Generation은 Gemini API와 Vertex AI를 모두 지원하는 에이전트용 도구입니다. 자세한 내용은 다음을 참조하세요: Gemini Image Generation

KeyTypeDescriptionExample
GEMINI_API_KEYstring이미지 생성을 위한 전용 Gemini API 키입니다. 설정되지 않은 경우 GOOGLE_KEY로 대체됩니다.# GEMINI_API_KEY=your_gemini_api_key
GEMINI_IMAGE_MODELstring이미지 생성을 위한 Gemini 모델. 기본값: gemini-2.5-flash-image.# GEMINI_IMAGE_MODEL=gemini-2.5-flash-image

참고: API 키가 구성되지 않은 경우, 도구는 GOOGLE_SERVICE_KEY_FILE의 서비스 계정을 사용하여 자동으로 Vertex AI로 대체됩니다. 해당 서비스 계정에는 반드시 Vertex AI User 역할이 할당되어 있어야 합니다.

OpenAI

참고: OpenAI Setup

KeyTypeDescriptionExample
OPENAI_API_KEYstring사용자의 OpenAI API 키입니다. 이 엔드포인트를 비활성화하려면 비워두거나, 사용자가 WebUI에서 직접 API 키를 입력하도록 하려면 "user_provided"로 설정하세요.OPENAI_API_KEY=user_provided
OPENAI_MODELSstring사용 가능한 모델을 쉼표로 구분하여 지정하세요(공백 없음). 첫 번째 모델이 기본값으로 설정됩니다. 내부 설정을 사용하려면 주석 처리된 상태로 두세요.# OPENAI_MODELS=gpt-5,gpt-5-codex,gpt-5-mini,gpt-5-nano,o3-pro,o3,o4-mini,gpt-4.1,gpt-4.1-mini,gpt-4.1-nano,o3-mini,o1-pro,o1,gpt-4o,gpt-4o-mini
DEBUG_OPENAIbooleanOpenAI endpoint에 대한 디버그 모드를 활성화합니다.DEBUG_OPENAI=false
OPENAI_SUMMARIZEboolean메시지 요약 기능을 활성화합니다. 기본값은 False입니다.# OPENAI_SUMMARIZE=true
OPENAI_SUMMARY_MODELstringOpenAI 요약에 사용되는 모델입니다.# OPENAI_SUMMARY_MODEL=gpt-3.5-turbo
OPENAI_FORCE_PROMPTbooleanmessages 페이로드 대신 prompt 페이로드를 사용하여 API를 호출하도록 강제합니다.# OPENAI_FORCE_PROMPT=false
OPENAI_ORGANIZATIONstringOpenAI에 대한 각 API 요청에 사용할 조직을 지정합니다. 선택 사항입니다.# OPENAI_ORGANIZATION=
OPENAI_REVERSE_PROXYstring사용 중단됨: OpenAI를 위한 리버스 프록시 설정.# OPENAI_REVERSE_PROXY=
OPENAI_TITLE_MODELstring사용 중단됨: OpenAI 제목 생성에 사용되는 모델입니다.# OPENAI_TITLE_MODEL=gpt-3.5-turbo
  • OPENAI_TITLE_MODEL은 이제 더 이상 사용되지 않으며 향후 버전에서 제거될 예정입니다. 대신 librechat.yaml 설정의 titleModel 엔드포인트 설정을 사용하세요.
  • OPENAI_REVERSE_PROXY는 이제 더 이상 사용되지 않으며 향후 버전에서 제거될 예정입니다. 대신 custom endpoint를 사용하세요.

Assistants

참고: Assistants Setup

KeyTypeDescriptionExample
ASSISTANTS_API_KEYstringAssistants API를 위한 OpenAI API 키입니다. 이 엔드포인트를 비활성화하려면 비워두거나, 사용자가 WebUI에서 직접 API 키를 입력하도록 하려면 "user_provided"로 설정하세요.ASSISTANTS_API_KEY=user_provided
ASSISTANTS_MODELSstring사용 가능한 모델을 쉼표로 구분하여 입력하세요(공백 없음). 첫 번째 모델이 기본값으로 설정됩니다. 내부 설정을 사용하려면 비워 두세요.# ASSISTANTS_MODELS=gpt-3.5-turbo-0125,gpt-3.5-turbo-16k-0613,gpt-3.5-turbo-16k,gpt-3.5-turbo,gpt-4,gpt-4-0314,gpt-4-32k-0314,gpt-4-0613,gpt-3.5-turbo-0613,gpt-3.5-turbo-1106,gpt-4-0125-preview,gpt-4-turbo-preview,gpt-4-1106-preview
ASSISTANTS_BASE_URLstringAssistants API를 위한 대체 base URL입니다.# ASSISTANTS_BASE_URL=

참고: 사용 가능한 모델을 쉼표로 구분하여 공백 없이 사용자 지정할 수 있습니다. 첫 번째 모델이 기본값으로 설정됩니다. 비워두거나 주석 처리하면 내부 설정을 사용합니다.

Tavily

다음에서 API 키를 받으세요: https://tavily.com/#api

환경 변수:

KeyTypeDescriptionExample
TAVILY_API_KEYstringTavily API 키TAVILY_API_KEY=

Traversaal

설명: LLM 강화 검색 도구.

API 키는 여기서 받으세요: https://api.traversaal.ai/dashboard

환경 변수:

KeyTypeDescriptionExample
TRAVERSAAL_API_KEYstringTraversaal API 키TRAVERSAAL_API_KEY=

WolframAlpha

자세한 지침은 여기를 참조하세요: Wolfram Alpha

환경 변수:

KeyTypeDescriptionExample
WOLFRAM_APP_IDstringWolfram Alpha App IDWOLFRAM_APP_ID=

Zapier

설명: - Zapier 계정이 필요합니다. 다음 링크에서 API 키를 받으세요: Zapier

  • 허용된 작업 생성 - Zapier의 이 시작 가이드에서 3단계를 따르세요

참고: Zapier는 특정 작업에서 까다로운 것으로 알려져 있습니다. 이메일 초안 작성이 아마도 가장 적합한 활용 사례일 것입니다.

환경 변수:

KeyTypeDescriptionExample
ZAPIER_NLA_API_KEYstringZapier NLA API 키ZAPIER_NLA_API_KEY=

OpenWeather

자세한 지침은 여기를 참조하세요: OpenWeather

KeyTypeDescriptionExample
OPENWEATHER_API_KEYstringOne Call API 3.0을 위한 OpenWeather API 키.OPENWEATHER_API_KEY=

Code Interpreter

Code Interpreter API는 코드를 실행하고 파일을 관리하기 위한 안전한 환경을 제공합니다. 참조: Code Interpreter API

KeyTypeDescriptionExample
LIBRECHAT_CODE_API_KEYstringCode Interpreter 서비스를 위한 API 키입니다. 전역으로 설정하면 모든 사용자에게 액세스 권한을 제공합니다.LIBRECHAT_CODE_API_KEY=your-api-key
LIBRECHAT_CODE_BASEURLstringCode Interpreter API를 위한 사용자 지정 기본 URL (Enterprise 플랜 전용).# LIBRECHAT_CODE_BASEURL=https://your-custom-domain.com

Artifacts

Artifacts는 HTML/JS 코드를 안전하게 렌더링하기 위해 CodeSandbox 라이브러리를 활용합니다. 기본적으로 CodeSandbox에서 호스팅하는 공개 CDN이 사용됩니다.

다행히도 내부 네트워크 요구 사항이 있는 경우, 프론트엔드 코드를 컴파일하는 번들러를 직접 호스팅하고 Sandpack을 위한 사용자 지정 번들러 URL을 지정할 수 있습니다.

메트릭 요청이 제거된 자가 호스팅용 사전 제작 컨테이너 이미지를 포함한 자세한 정보는 다음을 참조하세요: https://github.com/LibreChat-AI/codesandbox-client

KeyTypeDescriptionExample
SANDPACK_BUNDLER_URLstringArtifacts에서 사용하는 Sandpack용 사용자 지정 번들러 URL을 지정합니다SANDPACK_BUNDLER_URL=your-bundler-url

검색 (Meilisearch)

메시지 및 대화 내 검색을 활성화합니다:

KeyTypeDescriptionExample
SEARCHboolean메시지 및 대화 검색을 활성화합니다.SEARCH=true

참고: Docker를 사용하지 않는 경우, 무료 자체 호스팅 Meilisearch 또는 유료 원격 플랜을 설치해야 합니다.

MeiliSearch에 대한 익명화된 원격 분석(telemetry) 분석을 완전히 비활성화하여 개인정보를 보호하려면, 다음을 true로 설정하세요:

KeyTypeDescriptionExample
MEILI_NO_ANALYTICSbooleanMeiliSearch에 대한 익명화된 원격 분석(telemetry) 분석을 비활성화합니다.MEILI_NO_ANALYTICS=true

API 서버가 검색 서버에 연결하기 위함입니다. Docker Compose로 MeiliSearch를 서비스하는 경우 '0.0.0.0'을 'meilisearch'로 교체하세요.

KeyTypeDescriptionExample
MEILI_HOSTstring검색 서버에 대한 API 서버 연결.MEILI_HOST=http://0.0.0.0:7700

이 마스터 키는 최소 16바이트 이상이어야 하며, 유효한 UTF-8 문자로 구성되어야 합니다. 마스터 키가 제공되지 않거나 16바이트 미만일 경우 MeiliSearch는 오류를 발생시키며 실행을 거부합니다. MeiliSearch는 안전하게 자동 생성된 마스터 키를 제안할 것입니다. 이는 docker-compose를 위한 즉시 사용 가능한 보안 키이며, 사용자의 키로 교체할 수 있습니다.

KeyTypeDescriptionExample
MEILI_MASTER_KEYstringMeiliSearch를 위한 마스터 키입니다.MEILI_MASTER_KEY=DrhYf7zENyR6AlUCKmnz0eYASOQdl6zxH7s7MKFSfFCt

LibreChat이 Meilisearch와 데이터베이스 인덱싱 동기화를 시도하지 않도록 하려면, 다음 환경 변수를 true로 설정할 수 있습니다. 이는 하나의 인스턴스만 인덱싱을 담당해야 하는 노드 클러스터 또는 다중 노드 설정에서 유용합니다.

KeyTypeDescriptionExample
MEILI_NO_SYNCstringMeilisearch 인덱스 동기화 비활성화 토글MEILI_NO_SYNC=true

RAG API

문서 인덱싱 및 문맥 인식 응답을 위한 Retrieval-Augmented Generation(RAG)을 구성하세요. 자세한 내용은 다음을 참조하세요: RAG API Configuration

KeyTypeDescriptionExample
RAG_API_URLstringRAG API 서비스의 URL입니다.RAG_API_URL=http://host.docker.internal:8000
RAG_OPENAI_API_KEYstringRAG 임베딩을 위한 OpenAI API 키입니다. RAG에 대해 OPENAI_API_KEY를 재정의합니다.# RAG_OPENAI_API_KEY=sk-your-openai-api-key
RAG_OPENAI_BASEURLstringRAG 임베딩을 위한 사용자 지정 OpenAI 기본 URL입니다.# RAG_OPENAI_BASEURL=
RAG_USE_FULL_CONTEXTboolean상위 4개 결과 대신 전체 파일 컨텍스트를 가져옵니다. 기본값: false.# RAG_USE_FULL_CONTEXT=true
EMBEDDINGS_PROVIDERstringEmbeddings provider: openai, azure, huggingface, huggingfacetei 또는 ollama. 기본값: openai.# EMBEDDINGS_PROVIDER=openai
EMBEDDINGS_MODELstring사용할 임베딩 모델입니다. 기본값은 제공업체에 따라 다릅니다.# EMBEDDINGS_MODEL=text-embedding-3-small

참고: 기본 Docker 설정을 사용할 때 .env 파일은 LibreChat과 RAG API 간에 공유됩니다. 전체 구성 옵션은 RAG API 문서를 참조하세요.

음성 인식(Speech to Text) 및 음성 합성(Text to Speech)

Speech-to-Text (STT) 및 Text-to-Speech (TTS) 서비스를 구성합니다. 자세한 내용은 다음을 참조하세요: Speech Settings

KeyTypeDescriptionExample
STT_API_KEYstringSpeech-to-Text 서비스를 위한 API 키 (예: OpenAI Whisper).# STT_API_KEY=
TTS_API_KEYstringText-to-Speech 서비스를 위한 API 키 (예: OpenAI TTS)# TTS_API_KEY=

참고: STT 및 TTS는 주로 librechat.yamlspeech: 섹션을 통해 구성됩니다. 이러한 환경 변수는 해당 구성에서 참조됩니다. 전체 YAML 구성 옵션은 Speech Settings를 참조하세요.

공유 대화 링크 기능을 구성합니다.

KeyTypeDescriptionExample
ALLOW_SHARED_LINKSboolean공유 대화 링크를 활성화하거나 비활성화합니다. 기본값: true.ALLOW_SHARED_LINKS=true
ALLOW_SHARED_LINKS_PUBLICboolean인증 없이 공유 링크에 공개적으로 액세스할 수 있도록 허용합니다. 기본값: false.ALLOW_SHARED_LINKS_PUBLIC=false
SHARED_LINKS_SNAPSHOT_FILESboolean공유된 채팅에서 참조하는 스냅샷 파일로, 뷰어가 공유 링크를 통해 이를 미리 보거나 다운로드할 수 있습니다. 설정 시 interface.sharedLinks.snapshotFiles를 재정의합니다.SHARED_LINKS_SNAPSHOT_FILES=true

ALLOW_SHARED_LINKS는 기능 전체에 대한 스위치입니다. 이제 역할 권한(Role permissions)을 통해 누가 공유 링크를 생성할 수 있는지, 인증된 사용자와 공유할 수 있는지, 또는 모든 사람에게 공개할 수 있는지 제어할 수 있습니다. interface.sharedLinks를 참조하세요. ALLOW_SHARED_LINKS_PUBLIC은 공개적으로 공유된 링크를 인증 없이 볼 수 있는지 여부만 제어합니다. SHARED_LINKS_SNAPSHOT_FILES는 공유 링크 파일 스냅샷에 대한 전역 재정의(global override)이며, false로 설정하면 모든 링크에 대해 스냅샷 제공을 비활성화할 수 있습니다.

사용자 시스템

이 섹션에는 다음을 위한 구성이 포함되어 있습니다:

중재 (Moderation)

자동화된 조정 시스템(Automated Moderation System)은 점수 매기기 메커니즘을 사용하여 사용자 위반 사항을 추적합니다. 사용자가 과도한 로그인, 등록 또는 메시지 전송과 같은 행동을 하면 위반 점수가 누적됩니다. 설정된 임계값에 도달하면 해당 사용자와 IP는 일시적으로 차단됩니다. 이 시스템은 급격하거나 의심스러운 활동을 모니터링하고 제재함으로써 플랫폼 보안을 보장합니다.

참고: Automated Moderation

기본 조정 설정

KeyTypeDescriptionExample
OPENAI_MODERATIONboolean**OpenAI** 및 **Plugins** endpoint에서 OpenAI moderation을 활성화할지 여부입니다.OPENAI_MODERATION=false
OPENAI_MODERATION_API_KEYstringOpenAI API 키.OPENAI_MODERATION_API_KEY=
OPENAI_MODERATION_REVERSE_PROXYstring참고: 기본적으로 주석 처리되어 있으며, 모든 리버스 프록시에서 작동하지 않을 수 있습니다.# OPENAI_MODERATION_REVERSE_PROXY=

차단 설정

KeyTypeDescriptionExample
BAN_VIOLATIONSboolean위반 사항에 대해 사용자 차단을 활성화할지 여부입니다(차단된 사용자도 로그에는 기록됩니다).BAN_VIOLATIONS=true
BAN_DURATIONinteger사용자 및 관련 IP가 차단되는 기간(밀리초 단위).BAN_DURATION=1000 * 60 * 60 * 2
BAN_INTERVALinteger사용자의 점수가 간격 임계값에 도달하거나 초과할 때마다 사용자는 차단됩니다.BAN_INTERVAL=20

로그인 및 등록 속도 제한

로그인 시도 및 신규 계정 등록 횟수를 제한하여 무차별 대입 공격(brute force attacks)과 스팸 등록을 방지합니다.

KeyTypeDescriptionExample
LOGIN_MAXintegerLOGIN_WINDOW당 IP별로 허용되는 최대 로그인 횟수입니다.LOGIN_MAX=7
LOGIN_WINDOWintegerLOGIN_MAX 로그인을 위한 시간 범위를 분 단위로 결정합니다.LOGIN_WINDOW=5
REGISTER_MAXintegerREGISTER_WINDOW 당 IP별로 허용되는 최대 등록 횟수입니다.REGISTER_MAX=5
REGISTER_WINDOWintegerREGISTER_MAX 등록을 위한 시간 범위를 분 단위로 결정합니다.REGISTER_WINDOW=60

각 위반 사항에 대한 점수

KeyTypeDescriptionExample
LOGIN_VIOLATION_SCOREinteger로그인 위반 점수.LOGIN_VIOLATION_SCORE=1
REGISTRATION_VIOLATION_SCOREinteger등록 위반에 대한 점수.REGISTRATION_VIOLATION_SCORE=1
CONCURRENT_VIOLATION_SCOREinteger동시 위반에 대한 점수.CONCURRENT_VIOLATION_SCORE=1
MESSAGE_VIOLATION_SCOREinteger메시지 위반 점수.MESSAGE_VIOLATION_SCORE=1
NON_BROWSER_VIOLATION_SCOREinteger브라우저 외 위반에 대한 점수.NON_BROWSER_VIOLATION_SCORE=20
ILLEGAL_MODEL_REQ_SCOREinteger비허용 모델 요청에 대한 점수.ILLEGAL_MODEL_REQ_SCORE=5
IMPORT_VIOLATION_SCOREinteger대화 가져오기 위반에 대한 점수.IMPORT_VIOLATION_SCORE=1
FORK_VIOLATION_SCOREinteger대화 분기 위반에 대한 점수.FORK_VIOLATION_SCORE=1
TTS_VIOLATION_SCOREinteger텍스트 음성 변환 위반 점수.TTS_VIOLATION_SCORE=0
STT_VIOLATION_SCOREinteger음성-텍스트 위반 점수.STT_VIOLATION_SCORE=0
FILE_UPLOAD_VIOLATION_SCOREinteger파일 업로드 위반에 대한 점수.FILE_UPLOAD_VIOLATION_SCORE=0
RESET_PASSWORD_VIOLATION_SCOREinteger비밀번호 재설정 위반 점수.RESET_PASSWORD_VIOLATION_SCORE=0
VERIFY_EMAIL_VIOLATION_SCOREinteger이메일 인증 위반에 대한 점수.VERIFY_EMAIL_VIOLATION_SCORE=0
TOOL_CALL_VIOLATION_SCOREinteger도구 호출 위반에 대한 점수.TOOL_CALL_VIOLATION_SCORE=0
CONVO_ACCESS_VIOLATION_SCOREinteger대화 접근 위반에 대한 점수.CONVO_ACCESS_VIOLATION_SCORE=0

참고: 브라우저를 통하지 않은 접근 및 비정상적인 모델 요청은 거의 항상 악의적인 것으로 간주되는데, 이는 제3자가 자동화된 스크립트를 통해 서버에 접근하려고 시도하고 있음을 의미합니다.

메시지 속도 제한 (사용자 및 IP별)

KeyTypeDescriptionExample
LIMIT_CONCURRENT_MESSAGESboolean사용자가 요청당 보낼 수 있는 메시지 양을 제한할지 여부입니다.LIMIT_CONCURRENT_MESSAGES=true
CONCURRENT_MESSAGE_MAXinteger사용자가 요청당 보낼 수 있는 최대 메시지 수입니다.CONCURRENT_MESSAGE_MAX=2

Limiters

참고: 두 제한기를 모두 활용할 수 있지만, 기본값은 IP로만 제한하는 것입니다.

IP Limiter:
KeyTypeDescriptionExample
LIMIT_MESSAGE_IPboolean`MESSAGE_IP_WINDOW`당 IP가 보낼 수 있는 메시지 양을 제한할지 여부입니다.LIMIT_MESSAGE_IP=true
MESSAGE_IP_MAXinteger`MESSAGE_IP_WINDOW`당 하나의 IP가 보낼 수 있는 최대 메시지 수입니다.MESSAGE_IP_MAX=40
MESSAGE_IP_WINDOWinteger`MESSAGE_IP_MAX` 메시지에 대한 시간 범위를 분 단위로 결정합니다.MESSAGE_IP_WINDOW=1
사용자 제한기 (User Limiter):
KeyTypeDescriptionExample
LIMIT_MESSAGE_USERboolean`MESSAGE_USER_WINDOW`당 사용자가 보낼 수 있는 메시지 양을 제한할지 여부입니다.LIMIT_MESSAGE_USER=false
MESSAGE_USER_MAXinteger`MESSAGE_USER_WINDOW`당 사용자가 보낼 수 있는 최대 메시지 수입니다.MESSAGE_USER_MAX=40
MESSAGE_USER_WINDOWinteger`MESSAGE_USER_MAX` 메시지에 대한 시간 범위를 분 단위로 결정합니다.MESSAGE_USER_WINDOW=1

대화 가져오기 속도 제한(rate limiting)

사용자가 대화를 가져올 수 있는 빈도를 제한하여 남용을 방지합니다.

참고: 두 제한기를 모두 활용할 수 있지만, 기본값은 IP로만 제한하는 것입니다.

IP Limiter:
KeyTypeDescriptionExample
LIMIT_IMPORT_IPboolean`IMPORT_IP_WINDOW`당 IP가 수행할 수 있는 대화 가져오기 횟수를 제한할지 여부입니다.LIMIT_IMPORT_IP=true
IMPORT_IP_MAXinteger`IMPORT_IP_WINDOW`당 하나의 IP가 수행할 수 있는 최대 대화 가져오기 횟수입니다.IMPORT_IP_MAX=100
IMPORT_IP_WINDOWinteger`IMPORT_IP_MAX` 가져오기에 대한 시간 범위를 분 단위로 결정합니다.IMPORT_IP_WINDOW=1
사용자 제한기 (User Limiter):
KeyTypeDescriptionExample
LIMIT_IMPORT_USERboolean`IMPORT_USER_WINDOW` 기간 동안 사용자가 수행할 수 있는 대화 가져오기 횟수를 제한할지 여부입니다.LIMIT_IMPORT_USER=false
IMPORT_USER_MAXinteger사용자가 `IMPORT_USER_WINDOW` 기간 동안 수행할 수 있는 최대 대화 가져오기 횟수입니다.IMPORT_USER_MAX=50
IMPORT_USER_WINDOWinteger`IMPORT_USER_MAX` 가져오기에 대한 시간 범위를 분 단위로 결정합니다.IMPORT_USER_WINDOW=1

대화 포킹(forking) 속도 제한

사용자가 대화를 포크(fork)할 수 있는 빈도를 제한하여 남용을 방지합니다.

참고: 두 제한기를 모두 활용할 수 있지만, 기본값은 IP로만 제한하는 것입니다.

IP Limiter:
KeyTypeDescriptionExample
LIMIT_FORK_IPboolean`FORK_IP_WINDOW`당 IP 하나가 생성할 수 있는 대화 포크 수를 제한할지 여부입니다.LIMIT_FORK_IP=true
FORK_IP_MAXinteger`FORK_IP_WINDOW`당 하나의 IP가 생성할 수 있는 최대 대화 포크 수입니다.FORK_IP_MAX=30
FORK_IP_WINDOWinteger`FORK_IP_MAX` 포크에 대한 시간 범위를 분 단위로 결정합니다.FORK_IP_WINDOW=1
사용자 제한기 (User Limiter):
KeyTypeDescriptionExample
LIMIT_FORK_USERboolean`FORK_USER_WINDOW`당 사용자가 생성할 수 있는 대화 분기(fork) 수를 제한할지 여부입니다.LIMIT_FORK_USER=false
FORK_USER_MAXinteger`FORK_USER_WINDOW`당 사용자가 생성할 수 있는 최대 대화 포크 수입니다.FORK_USER_MAX=7
FORK_USER_WINDOWinteger`FORK_USER_MAX` 포크에 대한 시간 범위를 분 단위로 결정합니다.FORK_USER_WINDOW=1

파일 업로드 속도 제한

사용자가 파일을 업로드할 수 있는 빈도를 제한하여 남용을 방지합니다.

참고: 이 설정은 librechat.yamlrateLimits.fileUploads 섹션을 통해서도 구성할 수 있습니다.

IP Limiter:
KeyTypeDescriptionExample
FILE_UPLOAD_IP_MAXinteger`FILE_UPLOAD_IP_WINDOW`당 IP별 최대 파일 업로드 횟수입니다. 기본값: 100.# FILE_UPLOAD_IP_MAX=100
FILE_UPLOAD_IP_WINDOWinteger`FILE_UPLOAD_IP_MAX`에 대한 시간 범위를 분 단위로 결정합니다. 기본값: 15.# FILE_UPLOAD_IP_WINDOW=15
사용자 제한기 (User Limiter):
KeyTypeDescriptionExample
FILE_UPLOAD_USER_MAXinteger`FILE_UPLOAD_USER_WINDOW`당 사용자별 최대 파일 업로드 수. 기본값: 50.# FILE_UPLOAD_USER_MAX=50
FILE_UPLOAD_USER_WINDOWinteger`FILE_UPLOAD_USER_MAX`에 대한 시간 범위를 분 단위로 결정합니다. 기본값: 15.# FILE_UPLOAD_USER_WINDOW=15

TTS (Text-to-Speech) 속도 제한

사용자가 남용을 방지하기 위해 텍스트 음성 변환(Text-to-Speech)을 사용할 수 있는 빈도를 제한합니다.

참고: 이 설정은 librechat.yamlrateLimits.tts 섹션을 통해서도 구성할 수 있습니다.

IP Limiter:
KeyTypeDescriptionExample
TTS_IP_MAXinteger`TTS_IP_WINDOW`당 IP별 최대 TTS 요청 수. 기본값: 100.# TTS_IP_MAX=100
TTS_IP_WINDOWinteger`TTS_IP_MAX`에 대한 시간 창을 분 단위로 결정합니다. 기본값: 1.# TTS_IP_WINDOW=1
사용자 제한기 (User Limiter):
KeyTypeDescriptionExample
TTS_USER_MAXinteger`TTS_USER_WINDOW`당 사용자별 최대 TTS 요청 수. 기본값: 50.# TTS_USER_MAX=50
TTS_USER_WINDOWinteger분 단위로 `TTS_USER_MAX`의 시간 범위를 결정합니다. 기본값: 1.# TTS_USER_WINDOW=1

STT (Speech-to-Text) 속도 제한

사용자가 음성 인식(Speech-to-Text) 기능을 남용하지 못하도록 사용 빈도를 제한합니다.

참고: 이 설정은 librechat.yamlrateLimits.stt 섹션을 통해서도 구성할 수 있습니다.

IP Limiter:
KeyTypeDescriptionExample
STT_IP_MAXinteger`STT_IP_WINDOW`당 IP별 최대 STT 요청 수. 기본값: 100.# STT_IP_MAX=100
STT_IP_WINDOWinteger`STT_IP_MAX`에 대한 시간 창을 분 단위로 결정합니다. 기본값: 1.# STT_IP_WINDOW=1
사용자 제한기 (User Limiter):
KeyTypeDescriptionExample
STT_USER_MAXinteger`STT_USER_WINDOW`당 사용자별 최대 STT 요청 수. 기본값: 50.# STT_USER_MAX=50
STT_USER_WINDOWinteger`STT_USER_MAX`의 시간 범위를 분 단위로 결정합니다. 기본값: 1.# STT_USER_WINDOW=1

잔액

다음 기능은 시스템의 endpoint 내에서 사용자 잔액을 관리할 수 있게 해줍니다. 잔액을 수동으로 추가하거나, 사용자를 위해 자동으로 잔액을 누적하는 시스템을 구현할 수 있습니다. 구성에서 특정 초기 잔액이 정의된 경우, 사용자가 등록할 때 토큰이 사용자 잔액으로 자동 적립됩니다.

참고: Token Usage

KeyTypeDescriptionExample
CHECK_BALANCEbooleanOpenAI/Plugins endpoint에 대한 토큰 크레딧 잔액을 활성화합니다.CHECK_BALANCE=false
START_BALANCEinteger값이 설정되면, 등록 후 사용자 잔액에 토큰이 적립됩니다.START_BALANCE=20000

잔액 관리

  • npm run add-balance를 실행하여 잔액을 수동으로 추가하세요.
    • 또한 이메일과 추가할 토큰 크레딧 금액을 지정할 수도 있습니다. 예: npm run add-balance [email protected] 1000
  • npm run set-balance를 실행하여 add-balance와 유사하게 잔액을 수동으로 설정합니다.
  • npm run list-balances를 실행하여 모든 사용자의 잔액을 확인하세요.

참고: 1000 크레딧 = $0.001 (0.1 센트 USD)

등록 및 로그인

참고: Authentication System

사용자 등록 화면사용자 등록 화면

구성 파일 설명

이 섹션의 모든 인증 설정은 librechat.yaml 파일이나 docker-compose.override.yml 파일이 아닌 .env 파일에서 구성해야 합니다. docker-compose.override.yml 파일은 볼륨을 마운트하고 Docker용 환경 변수를 설정하는 데에만 사용되며, librechat.yaml 파일은 사용자 지정 endpoint 및 기타 애플리케이션 설정을 위해 사용됩니다.

  • 일반 설정:
KeyTypeDescriptionExample
ALLOW_EMAIL_LOGINboolean이메일 로그인만 활성화 또는 비활성화합니다.ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATIONboolean새 사용자의 이메일 등록을 활성화하거나 비활성화합니다.ALLOW_REGISTRATION=true
ALLOW_SOCIAL_LOGINboolean사용자가 다양한 소셜 네트워크를 통해 LibreChat에 연결할 수 있도록 허용합니다.ALLOW_SOCIAL_LOGIN=false
ALLOW_SOCIAL_REGISTRATIONboolean다양한 소셜 네트워크를 사용하여 새 사용자 등록을 활성화하거나 비활성화합니다.ALLOW_SOCIAL_REGISTRATION=false
ALLOW_PASSWORD_RESETboolean사용자가 직접 비밀번호를 재설정할 수 있는 기능을 활성화하거나 비활성화합니다ALLOW_PASSWORD_RESET=false
ALLOW_ACCOUNT_DELETIONboolean사용자가 직접 자신의 계정을 삭제할 수 있는 기능을 활성화하거나 비활성화합니다. 생략하거나 주석 처리할 경우 기본적으로 활성화됩니다.ALLOW_ACCOUNT_DELETION=true
ALLOW_UNVERIFIED_EMAIL_LOGINboolean사용자가 이메일 주소를 인증하지 않고 로그인할 수 있도록 하려면 true로 설정하세요. false로 설정하면 사용자가 로그인하기 전에 이메일을 인증해야 합니다.ALLOW_UNVERIFIED_EMAIL_LOGIN=true
MIN_PASSWORD_LENGTHnumber사용자 인증을 위한 최소 비밀번호 길이입니다. LDAP 인증을 사용하는 경우, LDAP 서버가 자체적인 비밀번호 정책을 처리하므로 로컬 비밀번호 유효성 검사를 우회하기 위해 이 값을 1로 설정할 수 있습니다.MIN_PASSWORD_LENGTH=8

빠른 팁: 등록 기능이 비활성화된 경우에도 npm run create-user를 사용하여 데이터베이스에 사용자를 직접 추가할 수 있습니다.

빠른 팁: 등록 기능이 비활성화된 경우 npm run delete-user [email protected]을 사용하여 사용자를 삭제할 수 있습니다.

  • 세션 및 리프레시 토큰 설정:
KeyTypeDescriptionExample
SESSION_EXPIRYinteger (milliseconds)세션 만료 시간.SESSION_EXPIRY=1000 * 60 * 15
REFRESH_TOKEN_EXPIRYinteger (milliseconds)리프레시 토큰 만료 시간.REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7
SESSION_COOKIE_SECUREboolean세션/인증 쿠키의 Secure 속성을 재정의합니다. 설정하지 않으면 기본 NODE_ENV/DOMAIN_SERVER 휴리스틱을 사용합니다.# SESSION_COOKIE_SECURE=false
  • 더 많은 정보는 다음을 참조하세요: Refresh Token

  • JWT 설정:

새롭고 안전한 값을 사용해야 합니다. 제공된 예시는 32바이트 키(16진수 64자)입니다. 다음 replit을 사용하여 빠르게 생성할 수 있습니다: JWT Keys

KeyTypeDescriptionExample
JWT_SECRETstring (hex)JWT 비밀 키.JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef
JWT_REFRESH_SECRETstring (hex)JWT 리프레시 비밀 키.JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418

소셜 로그인

더 자세한 내용은 다음을 참조하세요: OAuth2-OIDC

Apple 인증

더 자세한 정보는 다음을 참조하세요: Apple Authentication

KeyTypeDescriptionExample
APPLE_CLIENT_IDstringApple 서비스 ID (예: com.yourdomain.librechat.services)APPLE_CLIENT_ID=com.yourdomain.librechat.services
APPLE_TEAM_IDstringApple Developer Team ID.APPLE_TEAM_ID=YOUR_TEAM_ID
APPLE_KEY_IDstring다운로드한 키에서 확인한 Apple Key ID입니다.APPLE_KEY_ID=YOUR_KEY_ID
APPLE_PRIVATE_KEY_PATHstring다운로드한 .p8 파일의 절대 경로입니다.APPLE_PRIVATE_KEY_PATH=/path/to/AuthKey.p8
APPLE_CALLBACK_URLstringApple 인증을 위한 콜백 URL입니다.APPLE_CALLBACK_URL=/oauth/apple/callback

Discord 인증

더 많은 정보를 원하시면: Discord

KeyTypeDescriptionExample
DISCORD_CLIENT_IDstringDiscord 클라이언트 ID입니다.DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRETstringDiscord 클라이언트 시크릿입니다.DISCORD_CLIENT_SECRET=
DISCORD_CALLBACK_URLstringDiscord 인증을 위한 콜백 URL입니다.DISCORD_CALLBACK_URL=/oauth/discord/callback

Facebook 인증

더 자세한 정보는 다음을 참조하세요: Facebook Authentication

KeyTypeDescriptionExample
FACEBOOK_CLIENT_IDstringFacebook 클라이언트 ID.FACEBOOK_CLIENT_ID=
FACEBOOK_CLIENT_SECRETstringFacebook 클라이언트 시크릿입니다.FACEBOOK_CLIENT_SECRET=
FACEBOOK_CALLBACK_URLstringFacebook 인증을 위한 콜백 URL입니다.FACEBOOK_CALLBACK_URL=/oauth/facebook/callback

GitHub 인증

더 자세한 정보는 다음을 참조하세요: GitHub Authentication

KeyTypeDescriptionExample
GITHUB_CLIENT_IDstringGitHub 클라이언트 ID.GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRETstringGitHub 클라이언트 시크릿입니다.GITHUB_CLIENT_SECRET=
GITHUB_CALLBACK_URLstringGitHub 인증을 위한 콜백 URL입니다.GITHUB_CALLBACK_URL=/oauth/github/callback
GITHUB_ENTERPRISE_BASE_URLstring선택 사항: GitHub Enterprise 인스턴스의 기본 URL입니다.GITHUB_ENTERPRISE_BASE_URL=
GITHUB_ENTERPRISE_USER_AGENTstring선택 사항: GitHub Enterprise 요청을 위한 사용자 에이전트입니다.GITHUB_ENTERPRISE_USER_AGENT=

Google 인증

더 많은 정보를 원하시면: Google Authentication

KeyTypeDescriptionExample
GOOGLE_CLIENT_IDstring귀하의 Google 클라이언트 ID.GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRETstringGoogle 클라이언트 보안 비밀(client secret)입니다.GOOGLE_CLIENT_SECRET=
GOOGLE_CALLBACK_URLstringGoogle 인증을 위한 콜백 URL입니다.GOOGLE_CALLBACK_URL=/oauth/google/callback

OpenID Connect

더 많은 정보는 다음을 참조하세요:

KeyTypeDescriptionExample
OPENID_CLIENT_IDstring귀하의 OpenID 클라이언트 ID입니다.OPENID_CLIENT_ID=
OPENID_CLIENT_SECRETstringOpenID 클라이언트 시크릿입니다.OPENID_CLIENT_SECRET=
OPENID_ISSUERstringOpenID 발급자 URL입니다.OPENID_ISSUER=
OPENID_SESSION_SECRETstringOpenID 세션 저장을 위한 비밀 키입니다.OPENID_SESSION_SECRET=
OPENID_SCOPEstringOpenID scope.OPENID_SCOPE="openid profile email"
OPENID_CALLBACK_URLstringOpenID 인증을 위한 콜백 URL입니다.OPENID_CALLBACK_URL=/oauth/openid/callback
OPENID_AUDIENCEstringOpenID JWT 검증 및 권한 부여 요청을 위한 Audience 값입니다. JWT 검증 시 쉼표로 구분된 값을 사용할 수 있으며, 권한 부여 요청 시에는 비어 있지 않은 첫 번째 값을 사용합니다. OPENID_REUSE_TOKENS=true 설정 시 불투명 토큰 대신 JWT 액세스 토큰을 받기 위해 Auth0에서 필수적으로 요구됩니다.OPENID_AUDIENCE=https://api.librechat.com
OPENID_REQUIRED_ROLEstring검증에 필요한 역할입니다. 단일 역할 또는 쉼표로 구분된 여러 역할을 지원합니다. 여러 역할을 지정할 경우, 사용자는 지정된 역할 중 하나라도 충족해야 합니다(OR 논리).OPENID_REQUIRED_ROLE=admin or OPENID_REQUIRED_ROLE=role1,role2,admin
OPENID_REQUIRED_ROLE_TOKEN_KINDstring필수 역할 검증을 위한 토큰 종류입니다.OPENID_REQUIRED_ROLE_TOKEN_KIND=
OPENID_REQUIRED_ROLE_PARAMETER_PATHstring필수 역할 검증을 위한 매개변수 경로입니다.OPENID_REQUIRED_ROLE_PARAMETER_PATH=
OPENID_ADMIN_ROLEstringLibreChat에서 관리자가 되기 위해 사용자가 가져야 하는 역할.OPENID_ADMIN_ROLE=
OPENID_ADMIN_ROLE_TOKEN_KINDstring관리자 역할 확인을 위한 정보 소스입니다. 가능한 값은 access, id 또는 userinfo입니다.OPENID_ADMIN_ROLE_TOKEN_KIND=
OPENID_ADMIN_ROLE_PARAMETER_PATHstring필수 역할 검증을 위한 매개변수 경로입니다.OPENID_ADMIN_ROLE_PARAMETER_PATH=
OPENID_ROLE_SYNC_ENABLEDboolean관리자 권한이 아닌 역할에 대해 일반 OpenID 역할 동기화를 활성화합니다. ADMIN은 역할 동기화로 할당할 수 없으며, 관리자 권한 상승을 위해서는 OPENID_ADMIN_ROLE을 사용하세요.OPENID_ROLE_SYNC_ENABLED=false
OPENID_ROLE_SYNC_API_ENABLEDbooleanAPI 기반 역할 동기화 도우미를 활성화합니다. OPENID_ROLE_SYNC_ENABLED=true 설정이 필요합니다.OPENID_ROLE_SYNC_API_ENABLED=false
OPENID_ROLE_SYNC_SOURCEstring역할 클레임에 대한 토큰 소스입니다. access, id, userinfo 중 하나여야 합니다. 기본값: id.OPENID_ROLE_SYNC_SOURCE=id
OPENID_ROLE_SYNC_CLAIMstring공급자 역할 또는 그룹을 포함하는 클레임 경로입니다. 역할 동기화가 활성화된 경우 필수입니다.OPENID_ROLE_SYNC_CLAIM=
OPENID_ROLE_SYNC_ROLE_PRIORITYstring가장 중요한 역할부터 덜 중요한 역할 순으로 나열된 쉼표로 구분된 LibreChat 역할입니다. 첫 번째로 일치하는 역할이 할당됩니다.OPENID_ROLE_SYNC_ROLE_PRIORITY=Support,User
OPENID_ROLE_SYNC_FALLBACK_ROLEstring우선순위 역할이 일치하지 않을 때 할당되는 LibreChat 역할입니다. 설정된 경우 대체(fallback) 역할이 우선합니다.OPENID_ROLE_SYNC_FALLBACK_ROLE=USER
OPENID_BUTTON_LABELstringOpenID 로그인 버튼의 라벨입니다.OPENID_BUTTON_LABEL=
OPENID_IMAGE_URLstringOpenID 로그인 버튼 이미지의 URL입니다.OPENID_IMAGE_URL=
OPENID_USE_END_SESSION_ENDPOINTstring로그아웃 리다이렉트로 Issuer End Session Endpoint를 사용할지 여부OPENID_USE_END_SESSION_ENDPOINT=TRUE
OPENID_MAX_LOGOUT_URL_LENGTHnumberid_token_hint 대신 logout_hint를 사용하기 전의 최대 로그아웃 URL 길이입니다. 기본값: 2000.# OPENID_MAX_LOGOUT_URL_LENGTH=2000
OPENID_AUTO_REDIRECTbooleanOpenID 제공업체로 자동으로 리디렉션할지 여부입니다.OPENID_AUTO_REDIRECT=true
OPENID_USE_PKCEbooleanOpenID 인증에 PKCE(Proof Key for Code Exchange)를 사용합니다. 클라이언트 시크릿이 없는 퍼블릭 클라이언트의 경우, OPENID_CLIENT_SECRET을 비워두고 이 값을 true로 설정하세요.# OPENID_USE_PKCE=true
OPENID_POST_LOGOUT_REDIRECT_URIstringOpenID 로그아웃 후 리디렉션 URI입니다. 기본값은 ${DOMAIN_CLIENT}/login입니다.# OPENID_POST_LOGOUT_REDIRECT_URI=
OPENID_CLOCK_TOLERANCEnumber토큰 유효성 검사를 위한 초 단위의 클록 허용 오차입니다. 기본값: 300.# OPENID_CLOCK_TOLERANCE=300
OPENID_GENERATE_NONCEbooleanOpenID 클라이언트가 nonce 매개변수를 생성하도록 강제합니다. AWS Cognito(특히 페더레이션 사용 시) 및 Authentik과 같은 일부 ID 공급자에서 필요합니다.OPENID_GENERATE_NONCE=true
DEBUG_OPENID_REQUESTSbooleanOpenID 요청 헤더의 상세 로깅을 활성화합니다. 비활성화 시(기본값), 디버그 수준에서 요청 URL만 로깅됩니다. 활성화 시, 인증 문제의 심층적인 디버깅을 위해 요청 헤더도 함께 로깅됩니다(민감한 데이터는 마스킹 처리됨).DEBUG_OPENID_REQUESTS=false
OPENID_USERNAME_CLAIMstring사용자의 사용자 이름으로 저장할 OpenID 제공자의 user info 속성입니다.OPENID_USERNAME_CLAIM=
OPENID_NAME_CLAIMstring사용자의 표시 이름으로 저장할 OpenID 제공업체의 사용자 정보 속성입니다.OPENID_NAME_CLAIM=
OPENID_EMAIL_CLAIMstring사용자 일치 식별자로 사용할 사용자 정보 클레임입니다(예: Entra ID의 경우 "upn"). 설정하지 않을 경우 기본값은 email → preferred_username → upn 순으로 적용됩니다.OPENID_EMAIL_CLAIM=

OpenID 역할 동기화

OPENID_ROLE_SYNC_CLAIM은 역할 동기화가 활성화된 경우 필수입니다. OPENID_ROLE_SYNC_API_ENABLED=true를 사용하려면 OPENID_ROLE_SYNC_ENABLED=true도 필요합니다. 일반 역할 동기화로는 ADMIN을 할당할 수 없으므로, 관리자 권한 상승을 위해서는 OPENID_ADMIN_ROLE을 사용하세요.

OpenID Connect 토큰 재사용

LibreChat은 사용자 인증 상태를 관리하기 위해 OpenID Connect 공급자(Azure Entra ID 또는 Auth0 등)가 발급한 액세스 및 새로 고침 토큰 재사용을 지원합니다. 이 기능이 활성화되면, 쿠키로 사용자에게 전달되는 새로 고침 토큰은 LibreChat이 아닌 귀하의 OpenID 공급자가 발급합니다.

KeyTypeDescriptionExample
OPENID_REUSE_TOKENSboolean세션 관리를 위해 OpenID 공급자 토큰 재사용을 활성화합니다.OPENID_REUSE_TOKENS=false
OPENID_SCOPEstring공백으로 구분된 OpenID 스코프 목록입니다. 토큰 재사용을 위해 offline_access를 반드시 포함해야 합니다.OPENID_SCOPE=api://librechat/.default openid profile email offline_access
OPENID_AUDIENCEstringOpenID JWT 검증 및 인증 요청을 위한 Audience 값입니다. JWT 검증 시 쉼표로 구분된 값을 사용할 수 있으며, 인증 요청 시에는 비어 있지 않은 첫 번째 값을 사용합니다. OPENID_REUSE_TOKENS=true일 때 Auth0에 필요합니다. 위의 주요 OpenID 섹션에 있는 참고 사항을 확인하세요.OPENID_AUDIENCE=https://api.librechat.com
OPENID_REUSE_MAX_SESSION_AGE_MSnumberLibreChat가 IdP 새로 고침을 강제하기 전까지 재사용된 OpenID 세션 토큰이 제공되는 최대 시간입니다. 기본값: 900000 ms / 15분.OPENID_REUSE_MAX_SESSION_AGE_MS=900000
OPENID_JWKS_URL_CACHE_ENABLEDboolean서명 키 검증 결과 캐싱을 활성화합니다.OPENID_JWKS_URL_CACHE_ENABLED=true
OPENID_JWKS_URL_CACHE_TIMEnumber밀리초 단위의 캐시 지속 시간 (기본값: 600000 ms / 10분).OPENID_JWKS_URL_CACHE_TIME=600000
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIREDboolean사용자 정보를 위한 on-behalf-of 흐름을 활성화합니다.OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true
OPENID_ON_BEHALF_FLOW_USERINFO_SCOPEstringon-behalf-of 흐름에서의 사용자 정보 범위.OPENID_ON_BEHALF_FLOW_USERINFO_SCOPE=user.read
OPENID_USE_END_SESSION_ENDPOINTboolean로그아웃을 위해 end session endpoint 사용을 활성화합니다.OPENID_USE_END_SESSION_ENDPOINT=true
OPENID_MAX_LOGOUT_URL_LENGTHnumberlogout_hint로 전환하기 전의 최대 로그아웃 URL 길이(문자 수)입니다. id_token_hint가 서버 제한을 초과할 때 발생하는 URI too long 오류를 방지하는 데 유용합니다. 기본값: 2000.OPENID_MAX_LOGOUT_URL_LENGTH=2000

OPENID_REUSE_MAX_SESSION_AGE_MSSESSION_EXPIRY와 같은 산술 표현식을 허용합니다. 공급자가 갱신 시 이전 액세스 토큰을 취소하는 경우, MCP 서버와 같은 다운스트림 소비자가 여전히 유효한 베어러 토큰을 계속 사용할 수 있도록 이 값을 IdP 액세스 토큰 수명에 가깝게 늘리십시오.

참고

자세한 구성 단계 및 필수 조건은 Re-use OpenID Tokens for Login Session을 참조하세요.

Microsoft Graph API / Entra ID 통합

Azure Entra ID(이전 명칭 Azure AD)를 OpenID 공급자로 사용할 때, 권한 및 공유 시스템 내에서 향상된 사용자 및 그룹 검색 기능을 위해 추가적인 Microsoft Graph API 기능을 활성화할 수 있습니다.

KeyTypeDescriptionExample
USE_ENTRA_ID_FOR_PEOPLE_SEARCHboolean권한/공유 시스템에서 Entra ID 사용자 검색 통합을 활성화합니다. 활성화되면 사용자 선택기(people picker)가 로컬 데이터베이스와 Entra ID를 모두 검색합니다.USE_ENTRA_ID_FOR_PEOPLE_SEARCH=false
ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERSboolean활성화되면 Entra ID 그룹 소유자가 해당 그룹의 구성원으로 간주됩니다.ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=false
OPENID_GRAPH_SCOPESstring사람/그룹 검색에 필요한 Microsoft Graph API 범위입니다. 기본 범위는 사용자 프로필 및 그룹 멤버십에 대한 액세스 권한을 제공합니다.OPENID_GRAPH_SCOPES=User.Read,People.Read,GroupMember.Read.All,User.ReadBasic.All

중요한 사전 요구 사항

  • Azure Entra ID가 OpenID 제공업체로 구성되어 있어야 합니다. - OpenID 토큰 재사용이 활성화되어 있어야 합니다 (OPENID_REUSE_TOKENS=true). 이 기능은 해당 설정 없이는 작동하지 않습니다. - Azure 앱 등록에 적절한 Microsoft Graph API 권한이 있어야 합니다. - 그룹 검색 기능을 사용하려면 특정 Graph API 범위에 대해 관리자 동의가 필요할 수 있습니다.
SharePoint 통합

LibreChat은 SharePoint Online 및 OneDrive for Business와의 직접적인 통합을 지원하여, 사용자가 대화 내에서 SharePoint 라이브러리의 파일을 직접 선택하고 첨부할 수 있도록 합니다. 이 엔터프라이즈 기능은 기존 Azure Entra ID 인증을 활용합니다.

KeyTypeDescriptionExample
ENABLE_SHAREPOINT_FILEPICKERboolean채팅 및 에이전트 패널에서 SharePoint 파일 선택기를 활성화합니다. 활성화 시 파일 첨부 메뉴에 "SharePoint에서 가져오기" 옵션이 추가됩니다.ENABLE_SHAREPOINT_FILEPICKER=true
SHAREPOINT_BASE_URLstringSharePoint 테넌트 기본 URL. SharePoint 통합이 활성화된 경우 필수입니다.SHAREPOINT_BASE_URL=https://yourtenant.sharepoint.com
SHAREPOINT_PICKER_SHAREPOINT_SCOPEstring파일 선택기를 위한 SharePoint 전용 OAuth 범위입니다. SharePoint 파일 선택기 인터페이스를 열 때 인증을 위해 사용됩니다.SHAREPOINT_PICKER_SHAREPOINT_SCOPE=https://yourtenant.sharepoint.com/AllSites.Read
SHAREPOINT_PICKER_GRAPH_SCOPEstring파일 다운로드를 위한 Microsoft Graph API 범위입니다. 선택 후 SharePoint에서 파일을 다운로드하는 데 사용됩니다.SHAREPOINT_PICKER_GRAPH_SCOPE=Files.Read.All

필수 요구 사항

SharePoint 통합이 작동하려면 다음 사항을 모두 구성해야 합니다:

  • Azure Entra ID 인증이 완전히 구성되어야 합니다.
  • OPENID_REUSE_TOKENS=true 설정은 필수입니다 (on-behalf-of 토큰 흐름을 사용합니다)
  • OPENID_SCOPE에는 LibreChat 앱 API 스코프가 포함되어야 합니다. 예: api://<client-id>/access_as_user
  • Azure Entra ID에서 해당 app-audience 범위를 사용할 때는 OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true 설정이 필요합니다.
  • Azure 앱 등록에는 SharePoint 및 Graph API 권한이 있어야 합니다.
  • Azure 앱 등록은 OPENID_SCOPE에 사용된 LibreChat API 범위를 노출해야 합니다.
  • 4개의 SharePoint 환경 변수를 모두 설정해야 합니다.
  • 운영 환경에서는 HTTPS가 필수입니다.

기능 역량

활성화되면 사용자는 다음을 수행할 수 있습니다:

  • SharePoint 문서 라이브러리 및 OneDrive for Business에서 파일 액세스
  • 한 번에 여러 파일 선택 (기본 최대값: 10개 파일)
  • 실시간 다운로드 진행 상황 확인
    • 파일은 일반 업로드와 마찬가지로 다운로드되어 대화에 첨부됩니다.

자세한 SharePoint 구성 지침은 다음을 참조하세요: SharePoint Integration Guide

SAML

더 많은 정보는 다음을 참조하세요:

OpenID와 SAML의 상호 배타성

OpenID가 활성화되면 SAML 인증은 자동으로 비활성화됩니다.

한 번에 하나의 인증 방법만 활성화할 수 있습니다.

KeyTypeDescriptionExample
SAML_ENTRY_POINTstringSAML ID 공급자(IdP) 진입점 URL.SAML_ENTRY_POINT=
SAML_ISSUERstringSAML 서비스 공급자(SP) 엔티티 ID.SAML_ISSUER=
SAML_CERTstring파일 경로 또는 한 줄짜리 PEM 문자열로 제공되는 SAML 서명 인증서입니다.SAML_CERT=
SAML_CALLBACK_URLstringSAML 인증을 위한 콜백 URL입니다.SAML_CALLBACK_URL=/oauth/saml/callback
SAML_SESSION_SECRETstringSAML 세션 저장을 위한 시크릿입니다.SAML_SESSION_SECRET=
SAML_EMAIL_CLAIMstring<Optional>: SAML 어설션에서 사용자 이메일을 포함하는 속성입니다. (기본값: email)SAML_EMAIL_CLAIM=
SAML_USERNAME_CLAIMstring<Optional>: SAML 어설션에서 사용자 이름을 포함하는 속성입니다. (기본값: username)SAML_USERNAME_CLAIM=
SAML_GIVEN_NAME_CLAIMstring<Optional>: SAML 어설션에서 이름을 포함하는 속성입니다. (기본값: given_name)SAML_GIVEN_NAME_CLAIM=
SAML_FAMILY_NAME_CLAIMstring<Optional>: SAML 어설션에서 성(family name)을 포함하는 속성입니다. (기본값: family_name)SAML_FAMILY_NAME_CLAIM=
SAML_PICTURE_CLAIMstring<Optional>: SAML 어설션에서 프로필 사진 URL을 포함하는 속성입니다. (기본값: picture)SAML_PICTURE_CLAIM=
SAML_NAME_CLAIMstring<Optional>: 전체 이름이 포함된 SAML 어설션 내 속성입니다.SAML_NAME_CLAIM=
SAML_BUTTON_LABELstring<Optional>: SAML 로그인 버튼의 라벨입니다.SAML_BUTTON_LABEL=
SAML_IMAGE_URLstring<Optional>: SAML 로그인 버튼 이미지의 URL입니다.SAML_IMAGE_URL=
SAML_USE_AUTHN_RESPONSE_SIGNEDboolean<Optional>: "true"인 경우 전체 SAML Response에 서명합니다. 그렇지 않으면 Assertion에만 서명합니다(기본값).SAML_USE_AUTHN_RESPONSE_SIGNED=

LDAP/AD 인증

더 자세한 정보는 다음을 참조하세요: LDAP/AD Authentication

KeyTypeDescriptionExample
LDAP_URLstringLDAP 서버 URL.LDAP_URL=ldap://localhost:389
LDAP_BIND_DNstringBind DNLDAP_BIND_DN=cn=root
LDAP_BIND_CREDENTIALSstringbindDN용 비밀번호LDAP_BIND_CREDENTIALS=password
LDAP_USER_SEARCH_BASEstringLDAP 사용자 검색 베이스LDAP_USER_SEARCH_BASE=o=users,o=example.com
LDAP_SEARCH_FILTERstringLDAP 검색 필터LDAP_SEARCH_FILTER=mail={{username}}
LDAP_CA_CERT_PATHstringCA 인증서 경로LDAP_CA_CERT_PATH=/path/to/root_ca_cert.crt
LDAP_TLS_REJECT_UNAUTHORIZEDstringLDAP TLS 검증LDAP_TLS_REJECT_UNAUTHORIZED=true
LDAP_STARTTLSstringLDAP StartTLS를 활성화하여 연결을 TLS로 업그레이드합니다. 이 기능을 사용하려면 true로 설정하세요.LDAP_STARTTLS=true
LDAP_LOGIN_USES_USERNAMEbooleanLDAP 로그인 시 이메일 대신 사용자 이름을 사용합니다.# LDAP_LOGIN_USES_USERNAME=true
LDAP_IDstring고유 사용자 ID를 위한 LDAP 속성. 기본값: uid 또는 sAMAccountName, mail.# LDAP_ID=uid
LDAP_USERNAMEstring사용자 이름에 대한 LDAP 속성입니다. 기본값: givenName 또는 mail.# LDAP_USERNAME=givenName
LDAP_EMAILstring이메일에 대한 LDAP 속성입니다. 기본값: mail.# LDAP_EMAIL=userPrincipalName
LDAP_FULL_NAMEstring전체 이름을 위한 LDAP 속성입니다. 쉼표로 구분할 수 있습니다. 기본값: givenName + surname.# LDAP_FULL_NAME=givenName,surname

비밀번호 재설정

이메일은 계정 인증 및 비밀번호 재설정에 사용됩니다. LibreChat은 Mailgun API와 기존 SMTP 서비스를 모두 지원합니다. 참조: Email setup

중요 참고: 이메일 기능을 사용하려면 Mailgun(SMTP를 차단하는 서버에 권장) 또는 SMTP 중 하나를 구성해야 합니다.

경고: Mailgun 또는 SMTP에 유효한 값을 설정하지 않으면 LibreChat이 보안되지 않은 비밀번호 재설정을 사용하게 됩니다!

Mailgun은 SMTP 포트를 차단하는 서버에 배포할 때 특히 유용합니다. MAILGUN_API_KEYMAILGUN_DOMAIN이 모두 설정되면, LibreChat은 SMTP 대신 Mailgun을 사용합니다.

KeyTypeDescriptionExample
MAILGUN_API_KEYstringMailgun API 키 (Mailgun에 필요).MAILGUN_API_KEY=
MAILGUN_DOMAINstringMailgun 도메인 (Mailgun에 필수).MAILGUN_DOMAIN=mg.yourdomain.com
MAILGUN_HOSTstringCustom Mailgun API host (optional). Use https://api.eu.mailgun.net for EU region.MAILGUN_HOST=https://api.mailgun.net
EMAIL_FROMstring발신자 이메일 주소. 필수 항목.[email protected]
EMAIL_FROM_NAMEstring보내는 사람 이름 (설정하지 않으면 APP_TITLE이 기본값으로 사용됨).EMAIL_FROM_NAME=

SMTP 설정

Mailgun이 구성되지 않은 경우, LibreChat은 SMTP 설정으로 대체됩니다.

경고: EMAIL_SERVICE를 사용하는 경우, 다음의 확장 연결 매개변수를 설정하지 마십시오: HOST, PORT, ENCRYPTION, ENCRYPTION_HOSTNAME, ALLOW_SELFSIGNED.

참고: nodemailer well-known-services

KeyTypeDescriptionExample
EMAIL_SERVICEstring이메일 서비스 (예: Gmail, Outlook)EMAIL_SERVICE=
EMAIL_HOSTstring메일 서버 호스트.EMAIL_HOST=
EMAIL_PORTnumber메일 서버 포트.EMAIL_PORT=25
EMAIL_ENCRYPTIONstring암호화 방식 (starttls, tls 등).EMAIL_ENCRYPTION=
EMAIL_ENCRYPTION_HOSTNAMEstring암호화를 위한 호스트네임.EMAIL_ENCRYPTION_HOSTNAME=
EMAIL_ALLOW_SELFSIGNEDboolean자체 서명된 인증서 허용EMAIL_ALLOW_SELFSIGNED=
EMAIL_USERNAMEstring인증을 위한 사용자 이름.EMAIL_USERNAME=
EMAIL_PASSWORDstring인증을 위한 비밀번호입니다.EMAIL_PASSWORD=
EMAIL_FROM_NAMEstring보내는 사람 이름EMAIL_FROM_NAME=
EMAIL_FROMstring발신자 이메일 주소. 필수 항목.[email protected]

Firebase CDN

참고: Firebase CDN Configuration

중요

  • Firebase를 파일 저장 전략으로 사용하는 경우, librechat.yaml 구성 파일에서 fileStrategy 또는 fileStrategiesfirebase로 설정하세요. librechat.yaml 파일 구성에 대한 자세한 내용은 YAML 구성 가이드를 참조하세요: 사용자 지정 엔드포인트 및 구성
KeyTypeDescriptionExample
FIREBASE_API_KEYstringFirebase 프로젝트를 위한 API 키입니다.FIREBASE_API_KEY=
FIREBASE_AUTH_DOMAINstring프로젝트를 위한 Firebase Auth 도메인입니다.FIREBASE_AUTH_DOMAIN=
FIREBASE_PROJECT_IDstringFirebase 프로젝트의 ID입니다.FIREBASE_PROJECT_ID=
FIREBASE_STORAGE_BUCKETstring프로젝트를 위한 Firebase Storage 버킷입니다.FIREBASE_STORAGE_BUCKET=
FIREBASE_MESSAGING_SENDER_IDstringFirebase Cloud Messaging 발신자 ID.FIREBASE_MESSAGING_SENDER_ID=
FIREBASE_APP_IDstring프로젝트의 Firebase App ID입니다.FIREBASE_APP_ID=

Amazon S3 및 CloudFront

참고: Amazon S3 구성CloudFront와 S3

중요

S3를 파일 저장 전략으로 사용하는 경우, librechat.yaml 구성 파일에서 fileStrategy 또는 fileStrategies를 설정하세요. CloudFront를 사용하는 경우에도 저장소 오리진으로 S3가 필요합니다.

KeyTypeDescriptionExample
AWS_ACCESS_KEY_IDstringIAM 사용자 액세스 키 ID입니다. IRSA를 사용하는 경우 선택 사항입니다.AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEYstringIAM 사용자 보안 액세스 키입니다. IRSA를 사용하는 경우 선택 사항입니다.AWS_SECRET_ACCESS_KEY=your_secret_access_key
AWS_REGIONstringS3 버킷이 위치한 AWS 리전입니다.AWS_REGION=us-east-1
AWS_BUCKET_NAMEstring파일 저장을 위한 S3 버킷의 이름입니다.AWS_BUCKET_NAME=your_bucket_name
AWS_ENDPOINT_URLstringCustom AWS endpoint URL (optional). For S3-compatible services. Include the URL scheme, such as https://a7g8.da.idrivee2-32.com.# AWS_ENDPOINT_URL=https://your_endpoint_url
AWS_FORCE_PATH_STYLEboolean경로 스타일 URL이 필요한 S3 호환 공급자(예: MinIO, Hetzner, Backblaze B2)의 경우 true로 설정하세요. AWS S3에는 필요하지 않습니다. 기본값: false.# AWS_FORCE_PATH_STYLE=false
CLOUDFRONT_KEY_PAIR_IDstringCloudFront 공개 키 쌍 ID. 서명된 쿠키 및 서명된 CloudFront 다운로드 URL에 필요합니다.# CLOUDFRONT_KEY_PAIR_ID=K1234567890ABC
CLOUDFRONT_PRIVATE_KEYstringCloudFront 개인 키 PEM. 서명된 쿠키 및 서명된 CloudFront 다운로드 URL에 필요합니다. 이 비밀 값을 주입할 때 PEM 줄 바꿈을 유지하십시오.# CLOUDFRONT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----"

참고: Kubernetes 배포(예: EKS)의 경우, 명시적인 자격 증명을 제공하는 대신 IRSA(IAM Roles for Service Accounts)를 사용할 수 있습니다. 이 경우 AWS_REGIONAWS_BUCKET_NAME만 필요합니다.

Azure Blob Storage CDN

참고: Azure Blob Storage CDN 구성

중요

Azure Blob Storage를 파일 저장 전략으로 사용하는 경우, librechat.yaml 구성 파일에서 fileStrategy 또는 fileStrategiesazure_blob으로 설정하세요.

KeyTypeDescriptionExample
AZURE_STORAGE_CONNECTION_STRINGstringAzure Blob Storage 연결 문자열입니다. Managed Identity를 사용하려면 이 항목 또는 AZURE_STORAGE_ACCOUNT_NAME을 사용하세요.AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
AZURE_STORAGE_ACCOUNT_NAMEstringAzure Storage 계정 이름입니다. 관리 ID 인증에 사용합니다(연결 문자열은 설정하지 마십시오).# AZURE_STORAGE_ACCOUNT_NAME=yourAccountName
AZURE_STORAGE_PUBLIC_ACCESSbooleanBlob에 대한 공개 액세스를 활성화합니다. 기본값: false.AZURE_STORAGE_PUBLIC_ACCESS=false
AZURE_CONTAINER_NAMEstring파일 저장을 위한 컨테이너 이름입니다. 기본값: files.AZURE_CONTAINER_NAME=files

참고: AZURE_STORAGE_CONNECTION_STRING(옵션 A) 또는 Managed Identity를 사용하는 AZURE_STORAGE_ACCOUNT_NAME(옵션 B) 중 하나만 사용하십시오. 두 가지를 동시에 사용해서는 안 됩니다.

UI

도움말 및 FAQ 버튼

KeyTypeDescriptionExample
HELP_AND_FAQ_URLstring도움말 및 FAQ URL입니다. 비어 있거나 주석 처리된 경우 버튼이 활성화됩니다. 도움말 및 FAQ 버튼을 비활성화하려면 "/"로 설정하세요.HELP_AND_FAQ_URL=https://librechat.ai

동작:

정적 파일에 대한 Cache-Control 헤더를 설정합니다. 이 구성은 NODE_ENVproduction으로 설정된 경우에만 트리거됩니다.

캐시 헤더를 올바르게 설정하는 것은 웹 애플리케이션의 성능과 효율성을 최적화하는 데 매우 중요합니다. 브라우저와 CDN이 정적 파일의 복사본을 저장하는 기간을 제어함으로써 서버 부하를 크게 줄이고, 페이지 로드 시간을 단축하며, 전반적인 사용자 경험을 향상시킬 수 있습니다.

  • STATIC_CACHE_MAX_AGE의 주석을 해제하여 정적 파일에 대한 max-age를 변경할 수 있습니다. 기본값은 4주로 설정되어 있습니다.
  • STATIC_CACHE_S_MAX_AGE의 주석을 해제하여 정적 파일에 대한 s-maxage를 변경하세요. 기본값은 1주로 설정되어 있습니다.
    • 이는 CDN 및 프록시에서 사용하는 _shared cache_를 위한 것입니다.
KeyTypeDescriptionExample
APP_TITLEstring앱 제목APP_TITLE=LibreChat
CUSTOM_FOOTERstring사용자 지정 푸터# CUSTOM_FOOTER="My custom footer"
TEMP_CHAT_RETENTION_HOURSnumber**사용 중단:** 대신 librechat.yaml에서 `interface.temporaryChatRetention`을 사용하세요. 임시 채팅을 보관할 시간입니다. 기본값: 720 (30일).# TEMP_CHAT_RETENTION_HOURS=168

동작:

  • CUSTOM_FOOTER의 주석을 해제하여 사용자 지정 푸터를 추가하세요.
  • CUSTOM_FOOTER의 주석을 해제하고 비워두면 푸터를 제거할 수 있습니다.
  • You can now add one or more links in the CUSTOM_FOOTER value using the following format: [Anchor text](URL). Each link should be delineated with a pipe (|).

Markdown 예시: CUSTOM_FOOTER=[Link 1](http://example1.com) | [Link 2](http://example2.com)

생일 모자

KeyTypeDescriptionExample
SHOW_BIRTHDAY_ICONboolean생일 모자 아이콘 표시# SHOW_BIRTHDAY_ICON=true

동작:

  • 생일 모자 아이콘은 2월 11일(LibreChat의 생일)에 자동으로 표시됩니다.
  • SHOW_BIRTHDAY_ICONfalse로 설정하여 생일 모자 아이콘을 비활성화하세요.
  • SHOW_BIRTHDAY_ICONtrue로 설정하면 생일 모자를 항상 표시할 수 있습니다.

분석

Google Tag Manager

LibreChat은 분석을 위해 Google Tag Manager를 지원합니다. LibreChat에서 이를 활성화하려면 Google Tag Manager ID가 필요합니다. 이 가이드를 따라 Google Tag Manager ID를 생성하고 Google Analytics를 구성하세요. 그런 다음 ANALYTICS_GTM_ID 환경 변수를 귀하의 Google Tag Manager ID로 설정하세요.

참고: ANALYTICS_GTM_ID가 설정되지 않은 경우, Google Tag Manager는 활성화되지 않습니다. 잘못 설정된 경우, gtm.js에 대한 요청 실패가 발생합니다.

KeyTypeDescriptionExample
ANALYTICS_GTM_IDstringGoogle Tag Manager IDANALYTICS_GTM_ID=

대화 가져오기

메모리 문제를 방지하기 위해 대화 파일 가져오기 제한을 구성하세요.

KeyTypeDescriptionExample
CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTESnumber대화 가져오기를 위한 최대 파일 크기(바이트 단위). 기본값: 0 (제한 없음). 예시: 262144000 (250 MiB).# CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES=262144000

인라인 파일 미리보기

LibreChat이 인라인 미리보기 추출을 건너뛰고 다운로드 전용으로 남겨둘 생성된 파일의 최대 크기를 제어합니다.

KeyTypeDescriptionExample
FILE_PREVIEW_MAX_EXTRACT_BYTESnumber코드 실행 아티팩트 인라인 미리보기를 위한 바이트 단위의 최대 소스 파일 크기입니다. 기본값: 2097152 (2 MiB). 렌더링된 HTML 미리보기는 별도로 제한되므로, 매우 복잡한 파일은 이 값보다 작더라도 미리보기가 생략될 수 있습니다.# FILE_PREVIEW_MAX_EXTRACT_BYTES=2097152

MCP (Model Context Protocol)

향상된 서버 관리 및 OAuth 지원을 위해 MCP 설정을 구성하세요.

MCP Server Configuration

KeyTypeDescriptionExample
MCP_OAUTH_ON_AUTH_ERRORbooleanoauth 메타데이터를 찾을 수 없을 때 401/403 응답을 OAuth 요구 사항으로 처리합니다.MCP_OAUTH_ON_AUTH_ERROR=true
MCP_OAUTH_DETECTION_TIMEOUTnumberOAuth 감지 요청에 대한 밀리초 단위의 시간 제한입니다.MCP_OAUTH_DETECTION_TIMEOUT=5000
MCP_OAUTH_HANDLING_TIMEOUTnumberLibreChat이 MCP OAuth 흐름이 완료될 때까지 대기하는 시간(밀리초)입니다. 기본값: 600000 ms (10분).MCP_OAUTH_HANDLING_TIMEOUT=600000
MCP_OAUTH_FLOW_TTLnumberMCP OAuth 흐름 상태가 유지되는 시간입니다. LibreChat은 MCP_OAUTH_HANDLING_TIMEOUT보다 긴 시간을 보장하여 마감 시간에 임박한 콜백도 완료될 수 있도록 합니다. 기본값: 900000 ms (15분).MCP_OAUTH_FLOW_TTL=900000
MCP_CONNECTION_CHECK_TTLnumber비용이 많이 드는 확인 작업을 방지하기 위해 이 밀리초만큼 캐시 연결 상태 확인을 유지합니다.MCP_CONNECTION_CHECK_TTL=30000
MCP_TOOLS_LIST_MAX_PAGESnumberMCP 서버가 도구 목록을 페이지네이션(커서 페이지네이션)할 때 요청할 최대 도구/목록 페이지 수입니다. 페이지네이션 루프의 범위를 제한하여 잘못 작동하는 서버가 도구 검색을 중단시키지 않도록 합니다. 최소 1로 제한됩니다. 기본값: 50.MCP_TOOLS_LIST_MAX_PAGES=50
MCP_SKIP_CODE_CHALLENGE_CHECKboolean코드 챌린지 메서드 유효성 검사를 건너뜁니다. true로 설정하면 .well-known/openid-configuration에 명시되지 않은 경우에도 S256 코드 챌린지를 강제합니다.MCP_SKIP_CODE_CHALLENGE_CHECK=false
MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTESnumber거부하기 전 비-GET 스트리밍 가능 HTTP MCP 응답에서 허용되는 최대 바이트 수입니다. 0으로 설정하면 비활성화됩니다. 기본값: 16777216 (16 MiB).# MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTES=16777216
MCP_STREAMABLE_HTTP_MAX_LINE_BYTESnumberGET이 아닌 스트리밍 가능한 HTTP MCP 응답의 한 SSE 라인에서 허용되는 최대 바이트 수입니다. 0으로 설정하면 비활성화됩니다. 기본값: 5242880 (5 MiB).# MCP_STREAMABLE_HTTP_MAX_LINE_BYTES=5242880

기타

Redis

Redis는 LibreChat에 상당한 성능 향상을 제공하며 수평적 확장 기능을 가능하게 합니다.

참고: Redis 지원은 실험적인 기능이므로, 사용 시 몇 가지 문제가 발생할 수 있습니다.

중요: Redis를 사용하는 경우, LibreChat 설정을 변경한 후에는 캐시를 비워야 합니다.

자세한 구성 및 예시는 다음을 참조하세요: Redis Configuration Guide

KeyTypeDescriptionExample
USE_REDISboolean캐싱 및 세션 저장을 위해 Redis를 활성화합니다. true로 설정할 경우 REDIS_URI를 반드시 제공해야 합니다.USE_REDIS=true
USE_REDIS_STREAMSboolean재개 가능한 LLM 스트림을 위해 Redis를 활성화합니다. 설정되지 않은 경우 USE_REDIS 값을 기본값으로 사용합니다. 스트림에 메모리 내 저장소를 사용하려면 false로 설정하세요.# USE_REDIS_STREAMS=true
REDIS_URIstringRedis 연결 URI. 단일 인스턴스의 경우: `redis://host:port`. 클러스터의 경우: 쉼표로 구분된 URI.REDIS_URI=redis://127.0.0.1:6379
USE_REDIS_CLUSTERboolean단일 URI 사용 시 Redis 클러스터 모드 활성화# USE_REDIS_CLUSTER="true"
REDIS_CLUSTER_SAFE_DELETEboolean내부적으로 키를 샤딩하는 단일 엔드포인트 관리형 Redis 서비스에서 CROSSSLOT 오류를 방지하기 위해 Redis 캐시 키를 개별적으로 삭제하세요.# REDIS_CLUSTER_SAFE_DELETE=true
REDIS_USERNAMEstring인증을 위한 Redis 사용자 이름입니다. URI와 함께 제공되는 경우 URI의 사용자 이름을 덮어씁니다.# REDIS_USERNAME=your_redis_username
REDIS_PASSWORDstring인증을 위한 Redis 비밀번호입니다. URI와 비밀번호가 모두 제공된 경우 URI의 비밀번호를 덮어씁니다.# REDIS_PASSWORD=your_redis_password
REDIS_CAstringrediss:// 프로토콜 사용 시 TLS 검증을 위한 CA 인증서 경로입니다.# REDIS_CA=/path/to/ca-cert.pem
REDIS_KEY_PREFIXstring교차 배포 오염을 방지하기 위한 모든 Redis 키의 정적 접두사입니다.# REDIS_KEY_PREFIX=librechat-prod-v2
REDIS_KEY_PREFIX_VARstring동적 접두사가 포함된 환경 변수 이름(예: Cloud Run의 경우 K_REVISION). REDIS_KEY_PREFIX와 함께 사용할 수 없습니다.# REDIS_KEY_PREFIX_VAR=K_REVISION
REDIS_MAX_LISTENERSnumberRedis 클라이언트당 최대 이벤트 리스너 수입니다. 메모리 누수를 방지합니다. 기본값: 40.# REDIS_MAX_LISTENERS=40
REDIS_PING_INTERVALnumber연결을 유지하기 위한 핑(ping) 간격(초 단위). 기본값: 0 (비활성화). 타임아웃 문제가 발생하는 경우에만 설정하십시오.# REDIS_PING_INTERVAL=300
FORCED_IN_MEMORY_CACHE_NAMESPACESstringRedis가 활성화된 경우에도 인메모리 스토리지를 강제할 쉼표로 구분된 캐시 키입니다.# FORCED_IN_MEMORY_CACHE_NAMESPACES=ROLES,MESSAGES
REDIS_USE_ALTERNATIVE_DNS_LOOKUPbooleanAWS Elasticache를 사용하는 TLS 연결에 대해 대체 dnsLookup을 활성화합니다. TLS가 적용된 Elasticache 클러스터에 필요합니다.# REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true

참고:

  • USE_REDIS=true일 때, REDIS_URI를 제공해야 하며 그렇지 않으면 애플리케이션에서 오류가 발생합니다.
  • Redis Cluster 모드의 경우, 여러 개의 URI를 제공하십시오: redis://node1:7001,redis://node2:7002,redis://node3:7003 (클러스터 모드는 자동으로 감지됩니다).
  • 내부적으로 키를 샤딩하는 단일 엔드포인트 관리형 Redis 서비스의 경우, USE_REDIS_CLUSTER=false를 유지하고 캐시 삭제 시 CROSSSLOT 오류가 발생하면 REDIS_CLUSTER_SAFE_DELETE=true로 설정하십시오.
  • TLS 연결에는 rediss:// 프로토콜을 사용하고, CA가 공개적으로 신뢰되지 않는 경우 REDIS_CA를 설정하세요.
  • REDIS_KEY_PREFIX_VARREDIS_KEY_PREFIX는 상호 배타적입니다.
  • AWS Elasticache with TLS: Elasticache는 TLS 연결을 위해 대체 dnsLookup을 사용해야 할 수 있습니다. TLS가 적용된 Elasticache를 사용하는 경우 REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true로 설정하세요. 자세한 내용은 ioredis documentation을 참조하세요.

리더 선출 (Leader Election)

Redis를 사용하여 다중 인스턴스 배포를 위한 분산 리더 선출(distributed leader election)을 구성하세요. 리더 선출은 예약된 작업과 같은 특정 작업을 하나의 인스턴스만 수행하도록 보장합니다.

KeyTypeDescriptionExample
LEADER_LEASE_DURATIONnumber리더 임대가 만료되기 전까지 유효한 시간(초 단위). 기본값: 25.LEADER_LEASE_DURATION=25
LEADER_RENEW_INTERVALnumber리더가 임대를 갱신하는 간격(초 단위)입니다. 기본값: 10.LEADER_RENEW_INTERVAL=10
LEADER_RENEW_ATTEMPTSnumber임대 갱신 실패 시 최대 재시도 횟수입니다. 기본값: 3.LEADER_RENEW_ATTEMPTS=3
LEADER_RENEW_RETRY_DELAYnumber임대 갱신 시 재시도 간격(초). 기본값: 0.5.LEADER_RENEW_RETRY_DELAY=0.5

참고:

  • 리더 선출(Leader election)을 사용하려면 Redis가 활성화(USE_REDIS=true)되어 있어야 합니다.
  • 이 설정은 다중 인스턴스 배포에만 관련이 있습니다.
  • 리더십을 유지하려면 만료되기 전에 리더 임대(leader lease)를 갱신해야 합니다.
  • 최대 시도 횟수 이후에도 임대 갱신에 실패하면, 해당 인스턴스는 리더십을 포기합니다.

이 가이드는 어떤가요?

이 페이지

서버 구성포트Trust proxy자격 증명(Credentials) 구성정적 파일 처리Index HTML 캐시 제어MongoDB 데이터베이스MongoDB 연결 풀 구성MongoDB 스키마 구성애플리케이션 도메인공개 검색 엔진의 인덱싱 방지로깅로그 파일환경 변수권한OpenTelemetry Tracing실제 사용자 모니터링 (브라우저)구성 경로 - librechat.yaml배포 기술구성 유효성 검사Uncaught Exception HandlingEndpoints일반 설정알려진 엔드포인트 - librechat.yaml웹 검색AnthropicVertex AI를 통한 AnthropicAWS BedrockBingAIGoogleGemini 이미지 생성OpenAIAssistantsTavilyTraversaalWolframAlphaZapierOpenWeatherCode InterpreterArtifacts검색 (Meilisearch)RAG API음성 인식(Speech to Text) 및 음성 합성(Text to Speech)공유 링크사용자 시스템중재 (Moderation)기본 조정 설정차단 설정로그인 및 등록 속도 제한각 위반 사항에 대한 점수메시지 속도 제한 (사용자 및 IP별)LimitersIP Limiter:사용자 제한기 (User Limiter):대화 가져오기 속도 제한(rate limiting)IP Limiter:사용자 제한기 (User Limiter):대화 포킹(forking) 속도 제한IP Limiter:사용자 제한기 (User Limiter):파일 업로드 속도 제한IP Limiter:사용자 제한기 (User Limiter):TTS (Text-to-Speech) 속도 제한IP Limiter:사용자 제한기 (User Limiter):STT (Speech-to-Text) 속도 제한IP Limiter:사용자 제한기 (User Limiter):잔액잔액 관리등록 및 로그인소셜 로그인Apple 인증Discord 인증Facebook 인증GitHub 인증Google 인증OpenID ConnectOpenID Connect 토큰 재사용Microsoft Graph API / Entra ID 통합SharePoint 통합SAMLLDAP/AD 인증비밀번호 재설정Mailgun 구성 (권장)SMTP 설정Firebase CDNAmazon S3 및 CloudFrontAzure Blob Storage CDNUI도움말 및 FAQ 버튼앱 제목 및 푸터생일 모자분석Google Tag Manager대화 가져오기인라인 파일 미리보기MCP (Model Context Protocol)MCP Server Configuration기타Redis리더 선출 (Leader Election)