update oci manager

This commit is contained in:
MacRimi
2026-03-12 23:37:21 +01:00
parent 84d9146c04
commit 2c18f6d975
3 changed files with 620 additions and 660 deletions

View File

@@ -99,11 +99,14 @@ export function SecureGatewaySetup() {
const loadInitialData = async () => { const loadInitialData = async () => {
setLoading(true) setLoading(true)
try { try {
// Load runtime info (just for display, deploy will auto-install if needed) // Load runtime info (checks for Proxmox 9.1+ OCI support)
const runtimeRes = await fetchApi("/api/oci/runtime") const runtimeRes = await fetchApi("/api/oci/runtime")
if (runtimeRes.success && runtimeRes.available) { if (runtimeRes.success && runtimeRes.available) {
setRuntimeAvailable(true) setRuntimeAvailable(true)
setRuntimeInfo({ runtime: runtimeRes.runtime, version: runtimeRes.version }) setRuntimeInfo({ runtime: runtimeRes.runtime, version: runtimeRes.version })
} else {
// Show version requirement message
setRuntimeInfo({ runtime: "proxmox-lxc", version: runtimeRes.version || "unknown" })
} }
// Load app definition // Load app definition
@@ -180,8 +183,8 @@ export function SecureGatewaySetup() {
if (!result.success) { if (!result.success) {
// Make runtime errors more user-friendly // Make runtime errors more user-friendly
let errorMsg = result.message || "Deployment failed" let errorMsg = result.message || "Deployment failed"
if (errorMsg.includes("runtime not available") || errorMsg.includes("Container runtime")) { if (errorMsg.includes("9.1") || errorMsg.includes("OCI") || errorMsg.includes("not supported")) {
errorMsg = "Container runtime (Podman) is required but could not be installed automatically. Please run 'apt install podman' on your Proxmox host first, then try again." errorMsg = "OCI containers require Proxmox VE 9.1 or later. Please upgrade your Proxmox installation to use this feature."
} }
setDeployError(errorMsg) setDeployError(errorMsg)
setDeploying(false) setDeploying(false)
@@ -805,18 +808,19 @@ export function SecureGatewaySetup() {
{runtimeAvailable ? ( {runtimeAvailable ? (
<div className="flex items-center gap-2 text-xs text-muted-foreground"> <div className="flex items-center gap-2 text-xs text-muted-foreground">
<CheckCircle className="h-3.5 w-3.5 text-green-500" /> <CheckCircle className="h-3.5 w-3.5 text-green-500" />
<span>{runtimeInfo?.runtime} {runtimeInfo?.version} available</span> <span>Proxmox VE {runtimeInfo?.version} - OCI support available</span>
</div> </div>
) : ( ) : (
<div className="flex items-center gap-2 text-xs text-muted-foreground"> <div className="flex items-center gap-2 text-xs text-yellow-500">
<Info className="h-3.5 w-3.5 text-cyan-500" /> <AlertTriangle className="h-3.5 w-3.5" />
<span>Podman will be installed automatically during deployment</span> <span>Requires Proxmox VE 9.1+ (current: {runtimeInfo?.version || "unknown"})</span>
</div> </div>
)} )}
<Button <Button
onClick={() => setShowWizard(true)} onClick={() => setShowWizard(true)}
className="w-full bg-cyan-600 hover:bg-cyan-700" className="w-full bg-cyan-600 hover:bg-cyan-700"
disabled={!runtimeAvailable}
> >
<ShieldCheck className="h-4 w-4 mr-2" /> <ShieldCheck className="h-4 w-4 mr-2" />
Deploy Secure Gateway Deploy Secure Gateway

View File

@@ -310,7 +310,8 @@ pip3 install --target "$APP_DIR/usr/lib/python3/dist-packages" --upgrade --no-de
PyJWT \ PyJWT \
pyotp \ pyotp \
segno \ segno \
beautifulsoup4 beautifulsoup4 \
cryptography
# Phase 3: Install WebSocket with newer h11 # Phase 3: Install WebSocket with newer h11
pip3 install --target "$APP_DIR/usr/lib/python3/dist-packages" --upgrade \ pip3 install --target "$APP_DIR/usr/lib/python3/dist-packages" --upgrade \

File diff suppressed because it is too large Load Diff