From 4b4079d96f8c94a2458f6a49cb96f20d12fcfd95 Mon Sep 17 00:00:00 2001 From: panyy Date: Mon, 6 Jul 2026 19:54:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BC=98=E5=8C=96=E6=89=93=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/gateway/Dockerfile | 8 ++++++++ deploy/gateway/nginx.conf.template | 32 ++++++++++++++++++++++++++++++ scripts/build-images.sh | 23 +++++++++++++++++++++ scripts/start-kb.sh | 23 +++++++++++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 deploy/gateway/Dockerfile create mode 100644 deploy/gateway/nginx.conf.template create mode 100644 scripts/build-images.sh create mode 100644 scripts/start-kb.sh diff --git a/deploy/gateway/Dockerfile b/deploy/gateway/Dockerfile new file mode 100644 index 000000000..80a95c0a6 --- /dev/null +++ b/deploy/gateway/Dockerfile @@ -0,0 +1,8 @@ +FROM nginx:alpine + +ENV KB_UPSTREAM=http://airag:8080 +ENV MINDMAP_UPSTREAM=http://mindmap-web:9898 + +COPY nginx.conf.template /etc/nginx/templates/default.conf.template +EXPOSE 8989 +CMD ["nginx", "-g", "daemon off;"] diff --git a/deploy/gateway/nginx.conf.template b/deploy/gateway/nginx.conf.template new file mode 100644 index 000000000..13b67e4de --- /dev/null +++ b/deploy/gateway/nginx.conf.template @@ -0,0 +1,32 @@ +server { + listen 8989; + server_name localhost; + + client_max_body_size 100M; + + location = /mindmap { + return 301 /mindmap/; + } + + location ^~ /mindmap/ { + proxy_pass ${MINDMAP_UPSTREAM}; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_connect_timeout 300s; + proxy_send_timeout 300s; + proxy_read_timeout 300s; + } + + location / { + proxy_pass ${KB_UPSTREAM}; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_connect_timeout 300s; + proxy_send_timeout 300s; + proxy_read_timeout 300s; + } +} diff --git a/scripts/build-images.sh b/scripts/build-images.sh new file mode 100644 index 000000000..0aa93f36e --- /dev/null +++ b/scripts/build-images.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +set -euo pipefail + +VERSION=${VERSION:-$(date +%Y%m%d%H%M%S)} +ROOT_DIR=$(cd "$(dirname "$0")/.." && pwd) + +cd "$ROOT_DIR" + +echo "Building UnisKB image: unis-kb:${VERSION}" +sudo docker build -f installer/Dockerfile \ + --build-arg DOCKER_IMAGE_TAG="${VERSION}" \ + --build-arg BUILD_AT="$(date -u +%Y%m%dT%H%M%SZ)" \ + --build-arg GITHUB_COMMIT="$(git rev-parse --short HEAD 2>/dev/null || echo unknown)" \ + -t unis-kb:${VERSION} \ + -t unis-kb:latest \ + -t airag:latest \ + . + +echo "Building gateway image: unis-gateway:${VERSION}" +sudo docker build -f deploy/gateway/Dockerfile \ + -t unis-gateway:${VERSION} \ + -t unis-gateway:latest \ + deploy/gateway diff --git a/scripts/start-kb.sh b/scripts/start-kb.sh new file mode 100644 index 000000000..9271a7153 --- /dev/null +++ b/scripts/start-kb.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +set -euo pipefail + +NETWORK=${NETWORK:-unis-ai} +KB_DATA_DIR=${KB_DATA_DIR:-/opt/maxkb} +MINDMAP_URL=${MINDMAP_URL:-/mindmap/} +GATEWAY_PORT=${GATEWAY_PORT:-8989} + +sudo docker network create "$NETWORK" >/dev/null 2>&1 || true +sudo mkdir -p "$KB_DATA_DIR" +sudo chmod -R 777 "$KB_DATA_DIR" +sudo docker rm -f airag unis-gateway >/dev/null 2>&1 || true + +sudo docker run -d --name airag --network "$NETWORK" \ + -v "${KB_DATA_DIR}:/opt/maxkb" \ + -e MAXKB_MINDMAP_URL="$MINDMAP_URL" \ + unis-kb:latest + +sudo docker run -d --name unis-gateway --network "$NETWORK" \ + -p "${GATEWAY_PORT}:8989" \ + -e KB_UPSTREAM=http://airag:8080 \ + -e MINDMAP_UPSTREAM=http://mindmap-web:9898 \ + unis-gateway:latest