Update gpu monitor

This commit is contained in:
MacRimi
2026-01-29 19:04:52 +01:00
parent ca13d18d7d
commit 454ff37a72
2 changed files with 34 additions and 16 deletions

View File

@@ -4,20 +4,7 @@ import { Card } from "@/components/ui/card"
import { Badge } from "@/components/ui/badge" import { Badge } from "@/components/ui/badge"
import { Progress } from "@/components/ui/progress" import { Progress } from "@/components/ui/progress"
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "@/components/ui/dialog" import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "@/components/ui/dialog"
import { import { Cpu, HardDrive, Thermometer, Zap, Loader2, CpuIcon, Cpu as Gpu, Network, MemoryStick, PowerIcon, FanIcon, Battery } from "lucide-react"
Cpu,
HardDrive,
Thermometer,
Zap,
Loader2,
CpuIcon,
Cpu as Gpu,
Network,
MemoryStick,
PowerIcon,
FanIcon,
Battery,
} from "lucide-react"
import { Download } from "lucide-react" import { Download } from "lucide-react"
import { Button } from "@/components/ui/button" import { Button } from "@/components/ui/button"
import useSWR from "swr" import useSWR from "swr"
@@ -241,6 +228,7 @@ export default function Hardware() {
const [selectedUPS, setSelectedUPS] = useState<any>(null) const [selectedUPS, setSelectedUPS] = useState<any>(null)
const [showNvidiaInstaller, setShowNvidiaInstaller] = useState(false) const [showNvidiaInstaller, setShowNvidiaInstaller] = useState(false)
const [installingNvidiaDriver, setInstallingNvidiaDriver] = useState(false) const [installingNvidiaDriver, setInstallingNvidiaDriver] = useState(false)
const [showAmdInstaller, setShowAmdInstaller] = useState(false)
const fetcher = async (url: string) => { const fetcher = async (url: string) => {
const data = await fetchApi(url) const data = await fetchApi(url)
@@ -262,6 +250,11 @@ export default function Hardware() {
setShowNvidiaInstaller(true) setShowNvidiaInstaller(true)
} }
const handleInstallAmdTools = () => {
console.log("[v0] Opening AMD GPU tools installer terminal")
setShowAmdInstaller(true)
}
useEffect(() => { useEffect(() => {
if (!selectedGPU) return if (!selectedGPU) return
@@ -1110,6 +1103,17 @@ export default function Hardware() {
</> </>
</Button> </Button>
)} )}
{(selectedGPU.vendor.toLowerCase().includes("amd") || selectedGPU.vendor.toLowerCase().includes("ati")) && (
<Button
onClick={handleInstallAmdTools}
className="w-full bg-red-600 hover:bg-red-700 text-white"
>
<>
<Download className="mr-2 h-4 w-4" />
Install AMD GPU Tools
</>
</Button>
)}
</div> </div>
</div> </div>
</div> </div>
@@ -2052,6 +2056,20 @@ export default function Hardware() {
title="NVIDIA Driver Installation" title="NVIDIA Driver Installation"
description="Installing NVIDIA proprietary drivers for GPU monitoring..." description="Installing NVIDIA proprietary drivers for GPU monitoring..."
/> />
<ScriptTerminalModal
open={showAmdInstaller}
onClose={() => {
setShowAmdInstaller(false)
mutateHardware()
}}
scriptPath="/usr/local/share/proxmenux/scripts/gpu_tpu/amd_gpu_tools.sh"
scriptName="amd_gpu_tools"
params={{
EXECUTION_MODE: "web",
}}
title="AMD GPU Tools Installation"
description="Installing amdgpu_top for AMD GPU monitoring..."
/>
</div> </div>
) )
} }

View File

@@ -641,13 +641,13 @@ export function ScriptTerminalModal({
ref={resizeBarRef} ref={resizeBarRef}
onMouseDown={handleResizeStart} onMouseDown={handleResizeStart}
onTouchStart={handleResizeStart} onTouchStart={handleResizeStart}
className={`h-2 w-full cursor-row-resize transition-colors flex items-center justify-center group relative ${ className={`h-4 w-full cursor-row-resize transition-colors flex items-center justify-center group relative ${
isResizing ? "bg-blue-500" : "bg-zinc-800 hover:bg-blue-600" isResizing ? "bg-blue-500" : "bg-zinc-800 hover:bg-blue-600"
}`} }`}
style={{ touchAction: "none" }} style={{ touchAction: "none" }}
> >
<GripHorizontal <GripHorizontal
className={`h-4 w-4 transition-colors pointer-events-none ${ className={`h-5 w-5 transition-colors pointer-events-none ${
isResizing ? "text-white" : "text-zinc-600 group-hover:text-white" isResizing ? "text-white" : "text-zinc-600 group-hover:text-white"
}`} }`}
/> />