From cbf87a87fc4498f2f1f555bb9a5dc5257c328d79 Mon Sep 17 00:00:00 2001 From: enzo Date: Sun, 22 Mar 2026 04:35:27 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20int=C3=A9grer=20viewLogs=20et=20viewSer?= =?UTF-8?q?vices=20comme=20d=C3=A9pendances=20Go=20compil=C3=A9es=20dans?= =?UTF-8?q?=20CORE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - go.mod/go.sum : require + replace pour viewLogs et viewServices (chemins locaux) - main.go : enregistrement loader.RegisterModule(viewlogs.New()) + viewservices.New() - Dockerfile : build context parent proxmoxPanel/ pour accéder aux 3 repos - docker-compose.yml : context: .. + dockerfile: core/backend/Dockerfile - nginx.conf : locations /viewLogs/ et /viewServices/ proxyfiées vers backend:3001 Co-Authored-By: Claude Sonnet 4.6 --- backend/Dockerfile | 16 ++++++++++------ backend/go.mod | 7 +++++++ backend/main.go | 4 ++++ docker-compose.yml | 4 ++-- frontend/nginx.conf | 19 +++++++++++++++++++ 5 files changed, 42 insertions(+), 8 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index a6f5e2b..bd5aa52 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,18 +1,22 @@ # ── Étape 1 : Build du binaire Go ────────────────────────────────────────── +# Build context = proxmoxPanel/ (parent de core/) FROM golang:1.26-alpine AS builder # Dépendances de compilation (git pour les modules Go) RUN apk add --no-cache git -WORKDIR /build +WORKDIR /workspace -# Copier les fichiers de dépendances en premier (optimise le cache Docker) -COPY go.mod go.sum ./ +# Copier les sources des trois modules +COPY core/backend/ ./core/backend/ +COPY viewLogs/ ./viewLogs/ +COPY viewServices/ ./viewServices/ + +WORKDIR /workspace/core/backend + +# Télécharger les dépendances RUN go mod download -# Copier tout le code source -COPY . . - # Compiler le binaire de façon statique # -ldflags="-s -w" : supprime les infos de debug pour réduire la taille RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \ diff --git a/backend/go.mod b/backend/go.mod index c9af4ac..57cff2e 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -3,6 +3,8 @@ module git.geronzi.fr/proxmoxPanel/core/backend go 1.26.1 require ( + git.geronzi.fr/proxmoxPanel/viewLogs v0.0.0 + git.geronzi.fr/proxmoxPanel/viewServices v0.0.0 github.com/go-chi/chi/v5 v5.2.5 github.com/golang-jwt/jwt/v5 v5.3.1 github.com/gorilla/websocket v1.5.3 @@ -10,6 +12,11 @@ require ( modernc.org/sqlite v1.47.0 ) +replace ( + git.geronzi.fr/proxmoxPanel/viewLogs => ../../viewLogs + git.geronzi.fr/proxmoxPanel/viewServices => ../../viewServices +) + require ( github.com/dustin/go-humanize v1.0.1 // indirect github.com/google/uuid v1.6.0 // indirect diff --git a/backend/main.go b/backend/main.go index d92df0f..cf8f27d 100644 --- a/backend/main.go +++ b/backend/main.go @@ -17,6 +17,8 @@ import ( sshpool "git.geronzi.fr/proxmoxPanel/core/backend/internal/ssh" "git.geronzi.fr/proxmoxPanel/core/backend/internal/websocket" "git.geronzi.fr/proxmoxPanel/core/backend/modules" + viewlogs "git.geronzi.fr/proxmoxPanel/viewLogs" + viewservices "git.geronzi.fr/proxmoxPanel/viewServices" "github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5/middleware" @@ -68,6 +70,8 @@ func main() { // ── Chargement des modules actifs ────────────────────────────────────── loader := modules.NewLoader(database, sshPool, encryptor) + loader.RegisterModule(viewlogs.New()) + loader.RegisterModule(viewservices.New()) if err := loader.LoadActive(); err != nil { log.Fatalf("Erreur chargement modules : %v", err) } diff --git a/docker-compose.yml b/docker-compose.yml index 25e0a0b..6ef4aaa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,8 +7,8 @@ services: # ── Backend Go (API + WebSocket) ──────────────────────────────────────── backend: build: - context: ./backend - dockerfile: Dockerfile + context: .. + dockerfile: core/backend/Dockerfile container_name: proxmoxpanel-backend restart: unless-stopped expose: diff --git a/frontend/nginx.conf b/frontend/nginx.conf index e75429a..2d7a465 100644 --- a/frontend/nginx.conf +++ b/frontend/nginx.conf @@ -60,6 +60,25 @@ http { proxy_send_timeout 3600s; } + # Proxy modules → backend Go + location /viewLogs/ { + proxy_pass http://backend:3001; + proxy_http_version 1.1; + 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; + } + + location /viewServices/ { + proxy_pass http://backend:3001; + proxy_http_version 1.1; + 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; + } + # URLs propres : /dashboard → /dashboard.html location / { try_files $uri $uri.html $uri/ /index.html;