mirror of
https://github.com/Direct-Dev-Ru/go-lcg.git
synced 2025-11-16 09:39:56 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d0b53607c4 | |||
| 487f3d484c |
@@ -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
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -1 +1 @@
|
||||
v.2.0.16
|
||||
v.2.0.17
|
||||
|
||||
@@ -1 +1 @@
|
||||
v.2.0.16
|
||||
v.2.0.17
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,6 +161,7 @@ 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,
|
||||
@@ -160,7 +169,7 @@ func setCSRFCookie(w http.ResponseWriter, token string) {
|
||||
HttpOnly: true,
|
||||
Secure: config.AppConfig.Server.CookieSecure,
|
||||
SameSite: http.SameSiteLaxMode, // Более мягкий режим для reverse proxy
|
||||
MaxAge: 1 * 60 * 60,
|
||||
MaxAge: CSRFTokenLifetimeSeconds, // Минимум 12 часов в секундах
|
||||
}
|
||||
|
||||
// Добавляем домен если указан
|
||||
|
||||
Reference in New Issue
Block a user