Skip to content

Commit

Permalink
💽 feat: Add CONSOLE_JSON for deploying to GCP K8S env (danny-avila#2146)
Browse files Browse the repository at this point in the history
* Add CONSOLE_JSON

* Update example env

* Moved to utils
  • Loading branch information
idachev authored Mar 27, 2024
1 parent fd80f39 commit a76665b
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 17 deletions.
27 changes: 17 additions & 10 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ DOMAIN_SERVER=http://localhost:3080

NO_INDEX=true

#===============#
# JSON Logging #
#===============#

# Use when process console logs in cloud deployment like GCP/AWS
CONSOLE_JSON=false

#===============#
# Debug Logging #
#===============#
Expand Down Expand Up @@ -128,7 +135,7 @@ DEBUG_OPENAI=false

# OPENAI_REVERSE_PROXY=

# OPENAI_ORGANIZATION=
# OPENAI_ORGANIZATION=

#====================#
# Assistants API #
Expand Down Expand Up @@ -317,15 +324,15 @@ OPENID_IMAGE_URL=
# Email Password Reset #
#========================#

EMAIL_SERVICE=
EMAIL_HOST=
EMAIL_PORT=25
EMAIL_ENCRYPTION=
EMAIL_ENCRYPTION_HOSTNAME=
EMAIL_ALLOW_SELFSIGNED=
EMAIL_USERNAME=
EMAIL_PASSWORD=
EMAIL_FROM_NAME=
EMAIL_SERVICE=
EMAIL_HOST=
EMAIL_PORT=25
EMAIL_ENCRYPTION=
EMAIL_ENCRYPTION_HOSTNAME=
EMAIL_ALLOW_SELFSIGNED=
EMAIL_USERNAME=
EMAIL_PASSWORD=
EMAIL_FROM_NAME=
EMAIL_FROM=noreply@librechat.ai

#========================#
Expand Down
28 changes: 21 additions & 7 deletions api/config/winston.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,15 @@ const { redactFormat, redactMessage, debugTraverse } = require('./parsers');

const logDir = path.join(__dirname, '..', 'logs');

const { NODE_ENV, DEBUG_LOGGING = true, DEBUG_CONSOLE = false } = process.env;
const { NODE_ENV, DEBUG_LOGGING = true, DEBUG_CONSOLE = false, CONSOLE_JSON = false } = process.env;

const useConsoleJson =
(typeof CONSOLE_JSON === 'string' && CONSOLE_JSON?.toLowerCase() === 'true') ||
CONSOLE_JSON === true;

const useDebugConsole =
(typeof DEBUG_CONSOLE === 'string' && DEBUG_CONSOLE?.toLowerCase() === 'true') ||
DEBUG_CONSOLE === true;

const levels = {
error: 0,
Expand Down Expand Up @@ -33,7 +41,7 @@ const level = () => {

const fileFormat = winston.format.combine(
redactFormat(),
winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
winston.format.timestamp({ format: () => new Date().toISOString() }),
winston.format.errors({ stack: true }),
winston.format.splat(),
// redactErrors(),
Expand Down Expand Up @@ -99,14 +107,20 @@ const consoleFormat = winston.format.combine(
}),
);

if (
(typeof DEBUG_CONSOLE === 'string' && DEBUG_CONSOLE?.toLowerCase() === 'true') ||
DEBUG_CONSOLE === true
) {
if (useDebugConsole) {
transports.push(
new winston.transports.Console({
level: 'debug',
format: winston.format.combine(fileFormat, debugTraverse),
format: useConsoleJson
? winston.format.combine(fileFormat, debugTraverse, winston.format.json())
: winston.format.combine(fileFormat, debugTraverse),
}),
);
} else if (useConsoleJson) {
transports.push(
new winston.transports.Console({
level: 'info',
format: winston.format.combine(fileFormat, winston.format.json()),
}),
);
} else {
Expand Down
21 changes: 21 additions & 0 deletions utils/docker/docker-build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash
[ "$1" = -x ] && shift && set -x
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

cd ${DIR}/../..

TAG=$1

if [[ -z "${TAG}" ]]; then
TAG=${LIBRE_CHAT_DOCKER_TAG}
fi

if [[ -z "${TAG}" ]]; then
TAG=latest
fi

LOCAL_DOCKER_IMG=librechat:${TAG}

set -e

docker build -t ${LOCAL_DOCKER_IMG} .
31 changes: 31 additions & 0 deletions utils/docker/docker-push.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash
[ "$1" = -x ] && shift && set -x
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

cd ${DIR}/../..

TAG=$1

if [[ -z "${TAG}" ]]; then
TAG=${LIBRE_CHAT_DOCKER_TAG}
fi

if [[ -z "${TAG}" ]]; then
TAG=latest
fi

LOCAL_DOCKER_IMG=librechat:${TAG}

if [[ -z "${DOCKER_REMOTE_REGISTRY}" ]]; then
echo "DOCKER_REMOTE_REGISTRY is not set" >&2

exit 1
fi

REMOTE_DOCKER_IMG=${DOCKER_REMOTE_REGISTRY}/${LOCAL_DOCKER_IMG}

set -e

docker tag ${LOCAL_DOCKER_IMG} ${REMOTE_DOCKER_IMG}

docker push ${REMOTE_DOCKER_IMG}

0 comments on commit a76665b

Please sign in to comment.