From 487f3d484c77806d75232785814e5ede3ddfdee9 Mon Sep 17 00:00:00 2001 From: Anton Kuznetcov Date: Sun, 9 Nov 2025 13:29:11 +0600 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=20=D0=B2=D0=B5=D1=82=D0=BA?= =?UTF-8?q?=D0=B5=20main?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfiles/OllamaServer/Makefile | 24 ++++++++++++++---------- Dockerfiles/OllamaServer/entrypoint.sh | 4 ++-- VERSION.txt | 2 +- deploy/VERSION.txt | 2 +- kustomize/configmap.yaml | 2 +- kustomize/deployment.yaml | 4 ++-- kustomize/kustomization.yaml | 4 ++-- serve/csrf.go | 17 +++++++++++++---- 8 files changed, 36 insertions(+), 23 deletions(-) diff --git a/Dockerfiles/OllamaServer/Makefile b/Dockerfiles/OllamaServer/Makefile index b1f9d86..4b8e4b5 100644 --- a/Dockerfiles/OllamaServer/Makefile +++ b/Dockerfiles/OllamaServer/Makefile @@ -46,27 +46,31 @@ build-all-podman: build-binaries build-podman ## Собрать бинарник run: ## Запустить контейнер (Docker) docker run -d \ - --name $(CONTAINER_NAME) \ - -p 8080:8080 \ - -p 11434:11434 \ + --name ${CONTAINER_NAME} \ + -p 8989:8080 \ -v ollama-data:/home/ollama/.ollama \ -v lcg-results:/app/data/results \ -v lcg-prompts:/app/data/prompts \ -v lcg-config:/app/data/config \ - $(IMAGE_NAME):$(IMAGE_TAG) - @echo "Контейнер $(CONTAINER_NAME) запущен" + ${IMAGE_NAME}:${IMAGE_TAG} + @echo "Контейнер ${CONTAINER_NAME} запущен" run-podman: ## Запустить контейнер (Podman) + echo "Запустить контейнер ${CONTAINER_NAME}" + echo "IMAGE_NAME: ${IMAGE_NAME}" + echo "IMAGE_TAG: ${IMAGE_TAG}" + echo "CONTAINER_NAME: ${CONTAINER_NAME}" + podman run -d \ - --name $(CONTAINER_NAME) \ - -p 8080:8080 \ - -p 11434:11434 \ + --name ${CONTAINER_NAME} \ + --restart always \ + -p 8989:8080 \ -v ollama-data:/home/ollama/.ollama \ -v lcg-results:/app/data/results \ -v lcg-prompts:/app/data/prompts \ -v lcg-config:/app/data/config \ - $(IMAGE_NAME):$(IMAGE_TAG) - @echo "Контейнер $(CONTAINER_NAME) запущен" + ${IMAGE_NAME}:${IMAGE_TAG} + @echo "Контейнер ${CONTAINER_NAME} запущен" stop: ## Остановить контейнер (Docker) docker stop $(CONTAINER_NAME) || true diff --git a/Dockerfiles/OllamaServer/entrypoint.sh b/Dockerfiles/OllamaServer/entrypoint.sh index 6bd9180..ad4c05b 100755 --- a/Dockerfiles/OllamaServer/entrypoint.sh +++ b/Dockerfiles/OllamaServer/entrypoint.sh @@ -51,13 +51,13 @@ mkdir -p "${LCG_PROMPT_FOLDER:-/app/data/prompts}" mkdir -p "${LCG_CONFIG_FOLDER:-/app/data/config}" # Настройка переменных окружения для Ollama -export OLLAMA_HOST="${OLLAMA_HOST:-127.0.0.1}" +export OLLAMA_HOST="${OLLAMA_HOST:-0.0.0.0}" export OLLAMA_PORT="${OLLAMA_PORT:-11434}" export OLLAMA_ORIGINS="*" # Настройка переменных окружения для LCG export LCG_PROVIDER="${LCG_PROVIDER:-ollama}" -export LCG_HOST="${LCG_HOST:-http://127.0.0.1:11434/}" +export LCG_HOST="${LCG_HOST:-http://0.0.0.0:11434/}" export LCG_MODEL="${LCG_MODEL:-qwen2.5-coder:1.5b}" export LCG_RESULT_FOLDER="${LCG_RESULT_FOLDER:-/app/data/results}" export LCG_PROMPT_FOLDER="${LCG_PROMPT_FOLDER:-/app/data/prompts}" diff --git a/VERSION.txt b/VERSION.txt index d640b26..b1e69f3 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -v.2.0.16 +v.2.0.17 diff --git a/deploy/VERSION.txt b/deploy/VERSION.txt index d640b26..b1e69f3 100644 --- a/deploy/VERSION.txt +++ b/deploy/VERSION.txt @@ -1 +1 @@ -v.2.0.16 +v.2.0.17 diff --git a/kustomize/configmap.yaml b/kustomize/configmap.yaml index d9fb147..0d3e564 100644 --- a/kustomize/configmap.yaml +++ b/kustomize/configmap.yaml @@ -5,7 +5,7 @@ metadata: namespace: lcg data: # Основные настройки - LCG_VERSION: "v.2.0.16" + LCG_VERSION: "v.2.0.17" LCG_BASE_PATH: "/lcg" LCG_SERVER_HOST: "0.0.0.0" LCG_SERVER_PORT: "8080" diff --git a/kustomize/deployment.yaml b/kustomize/deployment.yaml index 94d2f22..81d4d38 100644 --- a/kustomize/deployment.yaml +++ b/kustomize/deployment.yaml @@ -5,7 +5,7 @@ metadata: namespace: lcg labels: app: lcg - version: v.2.0.16 + version: v.2.0.17 spec: replicas: 1 selector: @@ -18,7 +18,7 @@ spec: spec: containers: - name: lcg - image: kuznetcovay/lcg:v.2.0.16 + image: kuznetcovay/lcg:v.2.0.17 imagePullPolicy: Always ports: - containerPort: 8080 diff --git a/kustomize/kustomization.yaml b/kustomize/kustomization.yaml index 916f555..624aacc 100644 --- a/kustomize/kustomization.yaml +++ b/kustomize/kustomization.yaml @@ -15,11 +15,11 @@ resources: # Common labels # commonLabels: # app: lcg -# version: v.2.0.16 +# version: v.2.0.17 # managed-by: kustomize # Images # images: # - name: lcg # newName: kuznetcovay/lcg -# newTag: v.2.0.16 +# newTag: v.2.0.17 diff --git a/serve/csrf.go b/serve/csrf.go index be047e5..a42e6b4 100644 --- a/serve/csrf.go +++ b/serve/csrf.go @@ -13,6 +13,13 @@ import ( "github.com/direct-dev-ru/linux-command-gpt/config" ) +const ( + // CSRFTokenLifetimeHours минимальное время жизни CSRF токена в часах (не менее 12 часов) + CSRFTokenLifetimeHours = 12 + // CSRFTokenLifetimeSeconds минимальное время жизни CSRF токена в секундах + CSRFTokenLifetimeSeconds = CSRFTokenLifetimeHours * 60 * 60 +) + // CSRFManager управляет CSRF токенами type CSRFManager struct { secretKey []byte @@ -113,13 +120,14 @@ func (c *CSRFManager) ValidateToken(token, userID string) bool { return false } - // Проверяем время жизни токена (24 часа) + // Проверяем время жизни токена (минимум 12 часов) timestamp, err := parseInt64(timestampStr) if err != nil { return false } - if time.Now().Unix()-timestamp > 24*60*60 { + // Минимальное время жизни токена: 12 часов (не менее 12 часов согласно требованиям) + if time.Now().Unix()-timestamp > CSRFTokenLifetimeSeconds { return false } @@ -153,14 +161,15 @@ func GetCSRFTokenFromCookie(r *http.Request) string { // setCSRFCookie устанавливает CSRF токен в cookie func setCSRFCookie(w http.ResponseWriter, token string) { + // Минимальное время жизни токена: 12 часов (не менее 12 часов согласно требованиям) cookie := &http.Cookie{ Name: "csrf_token", Value: token, Path: config.AppConfig.Server.CookiePath, HttpOnly: true, Secure: config.AppConfig.Server.CookieSecure, - SameSite: http.SameSiteLaxMode, // Более мягкий режим для reverse proxy - MaxAge: 1 * 60 * 60, + SameSite: http.SameSiteLaxMode, // Более мягкий режим для reverse proxy + MaxAge: CSRFTokenLifetimeSeconds, // Минимум 12 часов в секундах } // Добавляем домен если указан