mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-23 15:08:16 +02:00
UI: affichage de la RAM systeme dans la barre laterale
Nouvel endpoint /api/ram (lecture /proc/meminfo, used/total en Mo, 0 hors Linux) et bloc RAM dans la sidebar a cote du GPU, rafraichi toutes les 3 s. Masque si pas de /proc/meminfo (Windows/mac).
This commit is contained in:
1 parent
ee76638f15
commit
dbb0ac40a4
7 files changed
+60
-2
No files matched your search
@@ -70,6 +70,35 @@ func handleVram(w http.ResponseWriter, r *http.Request) {
|
||||
sendJSON(w, 200, gpus)
|
||||
}
|
||||
|
||||
// handleRam renvoie la RAM système {used, total} en Mo (mêmes unités que
|
||||
// /api/vram → l'UI divise par 1024 pour des Gio). Lit /proc/meminfo (Linux, la
|
||||
// box de prod). Sur un OS sans /proc, renvoie total=0 → l'UI masque le bloc.
|
||||
func handleRam(w http.ResponseWriter, r *http.Request) {
|
||||
out := map[string]any{"used": 0, "total": 0}
|
||||
b, err := os.ReadFile("/proc/meminfo")
|
||||
if err == nil {
|
||||
var totalKB, availKB int
|
||||
for _, line := range strings.Split(string(b), "\n") {
|
||||
f := strings.Fields(line)
|
||||
if len(f) < 2 {
|
||||
continue
|
||||
}
|
||||
v, _ := strconv.Atoi(f[1]) // valeur en kB
|
||||
switch f[0] {
|
||||
case "MemTotal:":
|
||||
totalKB = v
|
||||
case "MemAvailable:":
|
||||
availKB = v
|
||||
}
|
||||
}
|
||||
if totalKB > 0 {
|
||||
out["total"] = totalKB / 1024
|
||||
out["used"] = (totalKB - availKB) / 1024
|
||||
}
|
||||
}
|
||||
sendJSON(w, 200, out)
|
||||
}
|
||||
|
||||
func handleConfigEnv(w http.ResponseWriter, r *http.Request) {
|
||||
sendJSON(w, 200, ReadConfig())
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user