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>
This commit is contained in:
enzo 2026-03-20 21:08:53 +01:00
commit 5dbcb1df07
66 changed files with 10370 additions and 0 deletions

View file

@ -0,0 +1,70 @@
/* ============================================================
ProxmoxPanel Thème clair
============================================================ */
[data-theme="light"] {
--neu-bg: #e8ecf2;
--neu-surface: #eef1f8;
--neu-text: #2d3561;
--neu-text-muted: #8892b0;
--neu-border: #d4d9e8;
--neu-shadow-dark: #c8cdd8;
--neu-shadow-light: #ffffff;
--neu-primary: #4a6bd4;
--neu-primary-dim: #3558c0;
--neu-success: #2ea87a;
--neu-warning: #d4860e;
--neu-danger: #d43f52;
--neu-info: #1fa8bc;
color-scheme: light;
}
[data-theme="light"] body {
background-color: var(--neu-bg);
color: var(--neu-text);
}
[data-theme="light"] .neu-card {
background: var(--neu-surface);
box-shadow:
5px 5px 10px var(--neu-shadow-dark),
-5px -5px 10px var(--neu-shadow-light);
}
[data-theme="light"] .neu-inset {
background: var(--neu-bg);
box-shadow:
inset 3px 3px 7px var(--neu-shadow-dark),
inset -3px -3px 7px var(--neu-shadow-light);
}
[data-theme="light"] .neu-btn {
box-shadow:
4px 4px 8px var(--neu-shadow-dark),
-4px -4px 8px var(--neu-shadow-light);
}
[data-theme="light"] .neu-input {
background: var(--neu-bg);
color: var(--neu-text);
box-shadow:
inset 3px 3px 7px var(--neu-shadow-dark),
inset -3px -3px 7px var(--neu-shadow-light);
}
[data-theme="light"] ::selection {
background: rgba(74, 107, 212, 0.25);
color: var(--neu-text);
}
/* Scrollbar thème clair */
[data-theme="light"] ::-webkit-scrollbar-track {
background: var(--neu-bg);
}
[data-theme="light"] ::-webkit-scrollbar-thumb {
background: var(--neu-border);
}