feat: système de rebuild Docker pour installation de modules has_backend
- internal/docker/client.go : client HTTP brut sur socket Unix - BuildImage() : build depuis repo git avec ARG MODULES - RebuildAndRestart() : rebuild async + remplacement de container - HandleReplacement() : le container successeur arrête et renomme l'ancien - Restart() : redémarrage simple (enable/disable sans rebuild) - cmd/gen-modules/main.go : générateur de registered_modules.go Lit MODULES env var, génère imports + appels RegisterModules() - registered_modules.go : version par défaut (aucun module) - main.go : appel RegisterModules(loader) + HandleReplacement() au démarrage - settings.go : inject DockerClient, has_backend dans moduleResp/moduleJSON, trigger rebuild à l'install, restart à l'enable/disable - migrations/006 : colonne has_backend sur table modules - Dockerfile : ARG MODULES, git clone modules, go run ./cmd/gen-modules - docker-compose.yml : socket Docker, group_add, env vars CONTAINER_NAME/GIT_REPO/GIT_BRANCH Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
dcf3b937fa
commit
a61f805cd0
8 changed files with 658 additions and 27 deletions
|
|
@ -17,10 +17,25 @@ services:
|
|||
volumes:
|
||||
# Volume persistant pour SQLite, clés JWT, clé maître AES
|
||||
- panel-data:/app/data
|
||||
# Socket Docker — permet au backend de reconstruire son propre container lors d'un install de module
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
group_add:
|
||||
# GID du groupe docker sur l'hôte (docker group = accès au socket).
|
||||
# Trouver avec : getent group docker | cut -d: -f3
|
||||
# Surcharger avec : DOCKER_GID=xxx docker compose up -d
|
||||
- "${DOCKER_GID:-999}"
|
||||
environment:
|
||||
- DATA_DIR=/app/data
|
||||
- LISTEN_ADDR=:3001
|
||||
- APP_ENV=production
|
||||
# Identité de ce container (utilisé pour l'auto-rebuild des modules)
|
||||
- CONTAINER_NAME=proxmoxpanel-backend
|
||||
# Repo git du CORE (pour docker build --remote lors d'un install module)
|
||||
- GIT_REPO=https://git.geronzi.fr/proxmoxPanel/core.git
|
||||
# Branche git à utiliser pour le rebuild
|
||||
- GIT_BRANCH=frontend/alpine
|
||||
# Tag de l'image Docker construite
|
||||
- IMAGE_TAG=proxmoxpanel-backend:latest
|
||||
# Pas de réseau host — le container reste isolé
|
||||
# Les connexions SSH sortantes vers le host Proxmox sont autorisées via le réseau Docker
|
||||
networks:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue