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;