Compare commits

...

2 Commits

8 changed files with 17 additions and 51 deletions

View File

@@ -70,6 +70,8 @@ ENV LCG_PROMPT_FOLDER=/app/data/prompts
ENV LCG_CONFIG_FOLDER=/app/data/config ENV LCG_CONFIG_FOLDER=/app/data/config
ENV LCG_SERVER_HOST=0.0.0.0 ENV LCG_SERVER_HOST=0.0.0.0
ENV LCG_SERVER_PORT=8080 ENV LCG_SERVER_PORT=8080
ENV LCG_DOMAIN="remote.ollama-server.ru"
ENV LCG_COOKIE_PATH="/lcg"
# ENV LCG_SERVER_ALLOW_HTTP=true # ENV LCG_SERVER_ALLOW_HTTP=true
# ENV OLLAMA_HOST=127.0.0.1 # ENV OLLAMA_HOST=127.0.0.1
# ENV OLLAMA_PORT=11434 # ENV OLLAMA_PORT=11434

View File

@@ -1 +1 @@
v.2.0.18 v.2.0.19

View File

@@ -1 +1 @@
v.2.0.18 v.2.0.19

View File

@@ -5,7 +5,7 @@ metadata:
namespace: lcg namespace: lcg
data: data:
# Основные настройки # Основные настройки
LCG_VERSION: "v.2.0.18" LCG_VERSION: "v.2.0.19"
LCG_BASE_PATH: "/lcg" LCG_BASE_PATH: "/lcg"
LCG_SERVER_HOST: "0.0.0.0" LCG_SERVER_HOST: "0.0.0.0"
LCG_SERVER_PORT: "8080" LCG_SERVER_PORT: "8080"

View File

@@ -5,7 +5,7 @@ metadata:
namespace: lcg namespace: lcg
labels: labels:
app: lcg app: lcg
version: v.2.0.18 version: v.2.0.19
spec: spec:
replicas: 1 replicas: 1
selector: selector:
@@ -18,7 +18,7 @@ spec:
spec: spec:
containers: containers:
- name: lcg - name: lcg
image: kuznetcovay/lcg:v.2.0.18 image: kuznetcovay/lcg:v.2.0.19
imagePullPolicy: Always imagePullPolicy: Always
ports: ports:
- containerPort: 8080 - containerPort: 8080

View File

@@ -15,11 +15,11 @@ resources:
# Common labels # Common labels
# commonLabels: # commonLabels:
# app: lcg # app: lcg
# version: v.2.0.18 # version: v.2.0.19
# managed-by: kustomize # managed-by: kustomize
# Images # Images
# images: # images:
# - name: lcg # - name: lcg
# newName: kuznetcovay/lcg # newName: kuznetcovay/lcg
# newTag: v.2.0.18 # newTag: v.2.0.19

View File

@@ -135,16 +135,9 @@ func setAuthCookie(w http.ResponseWriter, token string) {
MaxAge: config.AppConfig.Server.CookieTTLHours * 60 * 60, MaxAge: config.AppConfig.Server.CookieTTLHours * 60 * 60,
} }
// Устанавливаем Domain только если это не IP адрес и не 0.0.0.0 // Добавляем домен если указан
// При доступе по IP адресу не устанавливаем Domain, иначе cookie не будет работать
if config.AppConfig.Server.Domain != "" { if config.AppConfig.Server.Domain != "" {
domain := config.AppConfig.Server.Domain cookie.Domain = config.AppConfig.Server.Domain
// Проверяем, не является ли домен IP адресом или 0.0.0.0
if !isIPAddress(domain) && domain != "0.0.0.0" && domain != "::" && domain != "::1" {
cookie.Domain = domain
}
// Если domain пустой, 0.0.0.0 или IP адрес - не устанавливаем Domain
// Браузер автоматически применит cookie к текущему хосту
} }
http.SetCookie(w, cookie) http.SetCookie(w, cookie)
@@ -162,12 +155,9 @@ func clearAuthCookie(w http.ResponseWriter) {
MaxAge: -1, // Удаляем cookie MaxAge: -1, // Удаляем cookie
} }
// Устанавливаем Domain только если это не IP адрес // Добавляем домен если указан
if config.AppConfig.Server.Domain != "" { if config.AppConfig.Server.Domain != "" {
domain := config.AppConfig.Server.Domain cookie.Domain = config.AppConfig.Server.Domain
if !isIPAddress(domain) && domain != "0.0.0.0" && domain != "::" && domain != "::1" {
cookie.Domain = domain
}
} }
http.SetCookie(w, cookie) http.SetCookie(w, cookie)

View File

@@ -8,8 +8,6 @@ import (
"fmt" "fmt"
"net/http" "net/http"
"os" "os"
"strconv"
"strings"
"time" "time"
"github.com/direct-dev-ru/linux-command-gpt/config" "github.com/direct-dev-ru/linux-command-gpt/config"
@@ -174,16 +172,9 @@ func setCSRFCookie(w http.ResponseWriter, token string) {
MaxAge: CSRFTokenLifetimeSeconds, // Минимум 12 часов в секундах MaxAge: CSRFTokenLifetimeSeconds, // Минимум 12 часов в секундах
} }
// Устанавливаем Domain только если это не IP адрес и не 0.0.0.0 // Добавляем домен если указан
// При доступе по IP адресу не устанавливаем Domain, иначе cookie не будет работать
if config.AppConfig.Server.Domain != "" { if config.AppConfig.Server.Domain != "" {
domain := config.AppConfig.Server.Domain cookie.Domain = config.AppConfig.Server.Domain
// Проверяем, не является ли домен IP адресом или 0.0.0.0
if !isIPAddress(domain) && domain != "0.0.0.0" && domain != "::" && domain != "::1" {
cookie.Domain = domain
}
// Если domain пустой, 0.0.0.0 или IP адрес - не устанавливаем Domain
// Браузер автоматически применит cookie к текущему хосту
} }
http.SetCookie(w, cookie) http.SetCookie(w, cookie)
@@ -201,12 +192,9 @@ func СlearCSRFCookie(w http.ResponseWriter) {
MaxAge: -1, MaxAge: -1,
} }
// Устанавливаем Domain только если это не IP адрес // Добавляем домен если указан
if config.AppConfig.Server.Domain != "" { if config.AppConfig.Server.Domain != "" {
domain := config.AppConfig.Server.Domain cookie.Domain = config.AppConfig.Server.Domain
if !isIPAddress(domain) && domain != "0.0.0.0" && domain != "::" && domain != "::1" {
cookie.Domain = domain
}
} }
http.SetCookie(w, cookie) http.SetCookie(w, cookie)
@@ -282,17 +270,3 @@ func InitCSRFManager() error {
func GetCSRFManager() *CSRFManager { func GetCSRFManager() *CSRFManager {
return csrfManager return csrfManager
} }
// isIPAddress проверяет, является ли строка IPv4 адресом
func isIPAddress(s string) bool {
parts := strings.Split(s, ".")
if len(parts) != 4 {
return false
}
for _, part := range parts {
if num, err := strconv.Atoi(part); err != nil || num < 0 || num > 255 {
return false
}
}
return true
}