Commit graph

8 commits

Author SHA1 Message Date
bfc630da2e revert: supprimer extra_hosts spécifique au serveur 2026-03-22 17:24:18 +01:00
bc02076d97 fix: extra_hosts git.geronzi.fr→10.0.0.2 pour Docker dans LXC
Le hairpin NAT fonctionne pour le LXC host mais pas pour les containers
Docker (réseau isolé). Même pattern que NextCloud/GlitchTip dans l'infra.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 17:20:53 +01:00
22a5fed8cc fix: store 502, refresh button, rebuild UX pour modules
- GetRegistryModules: endpoint /api/v1/orgs/{org}/repos + timeout 10s
  répond toujours HTTP 200 avec {modules, error} au lieu de 502
- InstallRegistryModule: essaie branche master puis main pour module.json
- Ajouter FORGEJO_URL / FORGEJO_ORG dans docker-compose.yml
- Frontend: bouton rafraîchir store + affichage erreur
- Frontend: bannière rebuild en cours + bannière rebuild terminé
- Frontend: polling /api/health toutes les 3s après rebuild/restart

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 17:03:42 +01:00
a61f805cd0 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>
2026-03-22 16:54:21 +01:00
dcf3b937fa revert: supprimer les dépendances externes viewLogs/viewServices du CORE
Le CORE est autonome — les modules externes ne doivent pas être
des dépendances Go compilées dans le binaire. Retour au Dockerfile
et docker-compose.yml originaux (context: ./backend).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 16:05:11 +01:00
4b1a0a09a8 fix: Dockerfile auto-suffisant — clone viewLogs/viewServices depuis Forgejo
Supprime la dépendance au contexte parent (context: ..).
Le Dockerfile clone viewLogs et viewServices depuis git pendant le build,
dans /workspace/ pour correspondre aux replace directives go.mod (../../).
docker-compose.yml revient à context: ./backend — fonctionne quelle que
soit la structure de répertoires sur le serveur.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 16:01:33 +01:00
cbf87a87fc feat: intégrer viewLogs et viewServices comme dépendances Go compilées dans CORE
- 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 <noreply@anthropic.com>
2026-03-22 04:35:27 +01:00
5dbcb1df07 feat: initialisation complète du CORE ProxmoxPanel
Backend Go 1.23+ :
- API REST + WebSocket (chi, gorilla/websocket)
- Authentification PAM via SSH + JWT RS256
- Chiffrement AES-256-GCM pour secrets SQLite
- Pool SSH, client Proxmox REST, hub WebSocket pub/sub
- Système de modules compilés à initialisation conditionnelle
- Audit log, migrations SQLite versionnées

Frontend Vue 3 + Vite + TypeScript :
- Thème Neumorphism sombre/clair (CSS custom properties)
- Wizard d'installation, Dashboard drag-drop, Terminal xterm.js
- Toutes les vues CORE + stubs modules optionnels
- i18n EN/FR (vue-i18n v11)

Infrastructure :
- Docker multi-stage (Go → alpine, Node → nginx)
- docker-compose.yml, .gitattributes, LICENSE MIT, README

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 21:08:53 +01:00