mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-18 09:20:15 +01:00
Merge ef8f27122e into 02fc4647e1
This commit is contained in:
commit
9d26e96c93
9 changed files with 34 additions and 6 deletions
12
.env.example
12
.env.example
|
|
@ -68,6 +68,18 @@ DEBUG_CONSOLE=false
|
||||||
# UID=1000
|
# UID=1000
|
||||||
# GID=1000
|
# GID=1000
|
||||||
|
|
||||||
|
#==============#
|
||||||
|
# Node Options #
|
||||||
|
#==============#
|
||||||
|
|
||||||
|
# NOTE: NODE_MAX_OLD_SPACE_SIZE is NOT recognized by Node.js directly.
|
||||||
|
# This variable is used as a build argument for Docker or CI/CD workflows,
|
||||||
|
# and is NOT used by Node.js to set the heap size at runtime.
|
||||||
|
# To configure Node.js memory, use NODE_OPTIONS, e.g.:
|
||||||
|
# NODE_OPTIONS="--max-old-space-size=6144"
|
||||||
|
# See: https://nodejs.org/api/cli.html#--max-old-space-sizesize-in-mib
|
||||||
|
NODE_MAX_OLD_SPACE_SIZE=6144
|
||||||
|
|
||||||
#===============#
|
#===============#
|
||||||
# Configuration #
|
# Configuration #
|
||||||
#===============#
|
#===============#
|
||||||
|
|
|
||||||
1
.github/workflows/backend-review.yml
vendored
1
.github/workflows/backend-review.yml
vendored
|
|
@ -24,6 +24,7 @@ jobs:
|
||||||
BAN_DURATION: ${{ secrets.BAN_DURATION }}
|
BAN_DURATION: ${{ secrets.BAN_DURATION }}
|
||||||
BAN_INTERVAL: ${{ secrets.BAN_INTERVAL }}
|
BAN_INTERVAL: ${{ secrets.BAN_INTERVAL }}
|
||||||
NODE_ENV: CI
|
NODE_ENV: CI
|
||||||
|
NODE_OPTIONS: '--max-old-space-size=${{ secrets.NODE_MAX_OLD_SPACE_SIZE || 6144 }}'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Use Node.js 20.x
|
- name: Use Node.js 20.x
|
||||||
|
|
|
||||||
4
.github/workflows/frontend-review.yml
vendored
4
.github/workflows/frontend-review.yml
vendored
|
|
@ -16,6 +16,8 @@ jobs:
|
||||||
name: Run frontend unit tests on Ubuntu
|
name: Run frontend unit tests on Ubuntu
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
NODE_OPTIONS: '--max-old-space-size=${{ secrets.NODE_MAX_OLD_SPACE_SIZE || 6144 }}'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Use Node.js 20.x
|
- name: Use Node.js 20.x
|
||||||
|
|
@ -38,6 +40,8 @@ jobs:
|
||||||
name: Run frontend unit tests on Windows
|
name: Run frontend unit tests on Windows
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
|
env:
|
||||||
|
NODE_OPTIONS: '--max-old-space-size=${{ secrets.NODE_MAX_OLD_SPACE_SIZE || 6144 }}'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Use Node.js 20.x
|
- name: Use Node.js 20.x
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,9 @@ ENV LD_PRELOAD=/usr/lib/libjemalloc.so.2
|
||||||
COPY --from=ghcr.io/astral-sh/uv:0.9.5-python3.12-alpine /usr/local/bin/uv /usr/local/bin/uvx /bin/
|
COPY --from=ghcr.io/astral-sh/uv:0.9.5-python3.12-alpine /usr/local/bin/uv /usr/local/bin/uvx /bin/
|
||||||
RUN uv --version
|
RUN uv --version
|
||||||
|
|
||||||
|
# Set configurable max-old-space-size with default
|
||||||
|
ARG NODE_MAX_OLD_SPACE_SIZE=6144
|
||||||
|
|
||||||
RUN mkdir -p /app && chown node:node /app
|
RUN mkdir -p /app && chown node:node /app
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
|
@ -39,8 +42,8 @@ RUN \
|
||||||
COPY --chown=node:node . .
|
COPY --chown=node:node . .
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
# React client build
|
# React client build with configurable memory
|
||||||
NODE_OPTIONS="--max-old-space-size=2048" npm run frontend; \
|
NODE_OPTIONS="--max-old-space-size=${NODE_MAX_OLD_SPACE_SIZE}" npm run frontend; \
|
||||||
npm prune --production; \
|
npm prune --production; \
|
||||||
npm cache clean --force
|
npm cache clean --force
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,16 @@
|
||||||
# Dockerfile.multi
|
# Dockerfile.multi
|
||||||
# v0.8.1
|
# v0.8.1
|
||||||
|
|
||||||
|
# Set configurable max-old-space-size with default
|
||||||
|
ARG NODE_MAX_OLD_SPACE_SIZE=6144
|
||||||
|
|
||||||
# Base for all builds
|
# Base for all builds
|
||||||
FROM node:20-alpine AS base-min
|
FROM node:20-alpine AS base-min
|
||||||
# Install jemalloc
|
# Install jemalloc
|
||||||
RUN apk add --no-cache jemalloc
|
RUN apk add --no-cache jemalloc
|
||||||
# Set environment variable to use jemalloc
|
# Set environment variable to use jemalloc
|
||||||
ENV LD_PRELOAD=/usr/lib/libjemalloc.so.2
|
ENV LD_PRELOAD=/usr/lib/libjemalloc.so.2
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN apk --no-cache add curl
|
RUN apk --no-cache add curl
|
||||||
RUN npm config set fetch-retry-maxtimeout 600000 && \
|
RUN npm config set fetch-retry-maxtimeout 600000 && \
|
||||||
|
|
@ -59,7 +63,7 @@ COPY client ./
|
||||||
COPY --from=data-provider-build /app/packages/data-provider/dist /app/packages/data-provider/dist
|
COPY --from=data-provider-build /app/packages/data-provider/dist /app/packages/data-provider/dist
|
||||||
COPY --from=client-package-build /app/packages/client/dist /app/packages/client/dist
|
COPY --from=client-package-build /app/packages/client/dist /app/packages/client/dist
|
||||||
COPY --from=client-package-build /app/packages/client/src /app/packages/client/src
|
COPY --from=client-package-build /app/packages/client/src /app/packages/client/src
|
||||||
ENV NODE_OPTIONS="--max-old-space-size=2048"
|
ENV NODE_OPTIONS="--max-old-space-size=${NODE_MAX_OLD_SPACE_SIZE}"
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
# API setup (including client dist)
|
# API setup (including client dist)
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
"server-dev": "echo 'please run this from the root directory'",
|
"server-dev": "echo 'please run this from the root directory'",
|
||||||
"test": "cross-env NODE_ENV=test jest",
|
"test": "cross-env NODE_ENV=test jest",
|
||||||
"b:test": "NODE_ENV=test bun jest",
|
"b:test": "NODE_ENV=test bun jest",
|
||||||
"test:ci": "jest --ci",
|
"test:ci": "jest --ci --logHeapUsage",
|
||||||
"add-balance": "node ./add-balance.js",
|
"add-balance": "node ./add-balance.js",
|
||||||
"list-balances": "node ./list-balances.js",
|
"list-balances": "node ./list-balances.js",
|
||||||
"user-stats": "node ./user-stats.js",
|
"user-stats": "node ./user-stats.js",
|
||||||
|
|
|
||||||
|
|
@ -11,3 +11,7 @@ OPENAI_API_KEY=your-api-key
|
||||||
BAN_VIOLATIONS=true
|
BAN_VIOLATIONS=true
|
||||||
BAN_DURATION=7200000
|
BAN_DURATION=7200000
|
||||||
BAN_INTERVAL=20
|
BAN_INTERVAL=20
|
||||||
|
|
||||||
|
# NODE_MAX_OLD_SPACE_SIZE is only used as a Docker build argument.
|
||||||
|
# Node.js does NOT recognize this environment variable for heap size.
|
||||||
|
NODE_MAX_OLD_SPACE_SIZE=6144
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
"dev": "cross-env NODE_ENV=development vite",
|
"dev": "cross-env NODE_ENV=development vite",
|
||||||
"preview-prod": "cross-env NODE_ENV=development vite preview",
|
"preview-prod": "cross-env NODE_ENV=development vite preview",
|
||||||
"test": "cross-env NODE_ENV=development jest --watch",
|
"test": "cross-env NODE_ENV=development jest --watch",
|
||||||
"test:ci": "cross-env NODE_ENV=development jest --ci",
|
"test:ci": "cross-env NODE_ENV=development jest --ci --logHeapUsage",
|
||||||
"b:test": "NODE_ENV=test bunx jest --watch",
|
"b:test": "NODE_ENV=test bunx jest --watch",
|
||||||
"b:build": "NODE_ENV=production bun --bun vite build",
|
"b:build": "NODE_ENV=production bun --bun vite build",
|
||||||
"b:dev": "NODE_ENV=development bunx vite"
|
"b:dev": "NODE_ENV=development bunx vite"
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
"build:watch": "rollup -c -w",
|
"build:watch": "rollup -c -w",
|
||||||
"rollup:api": "npx rollup -c server-rollup.config.js --bundleConfigAsCjs",
|
"rollup:api": "npx rollup -c server-rollup.config.js --bundleConfigAsCjs",
|
||||||
"test": "jest --coverage --watch",
|
"test": "jest --coverage --watch",
|
||||||
"test:ci": "jest --coverage --ci",
|
"test:ci": "jest --coverage --ci --logHeapUsage",
|
||||||
"verify": "npm run test:ci",
|
"verify": "npm run test:ci",
|
||||||
"b:clean": "bun run rimraf dist",
|
"b:clean": "bun run rimraf dist",
|
||||||
"b:build": "bun run b:clean && bun run rollup -c --silent --bundleConfigAsCjs"
|
"b:build": "bun run b:clean && bun run rollup -c --silent --bundleConfigAsCjs"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue