"use client"; import { useState } from "react"; export default function ReverseProxyPage() { const [serverIp, setServerIp] = useState(""); const [domain, setDomain] = useState(""); const [port, setPort] = useState(""); const [loading, setLoading] = useState(false); const [message, setMessage] = useState(""); const [isError, setIsError] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setMessage(""); setIsError(false); const payload = { server_ip: serverIp, domain, port, }; try { const res = await fetch( "https://manage.api.metatronnest.com/proxy/nginx-app", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload), } ); const data = await res.json(); if (!res.ok) { throw new Error(data?.message || "API Error"); } setMessage("✅ Reverse Proxy created successfully"); setServerIp(""); setDomain(""); setPort(""); } catch (err: any) { setIsError(true); setMessage(err.message || "❌ Failed to create reverse proxy"); } finally { setLoading(false); } }; const inputStyle: React.CSSProperties = { width: "100%", padding: 10, marginTop: 6, border: "1px solid #d1d5db", borderRadius: 6, fontSize: 14, outline: "none", }; return (
{/* CARD */}

Reverse Proxy

{/* Server IP */}
{/* Domain */}
setDomain(e.target.value)} placeholder="git.metatroncube.in" required style={inputStyle} />
{/* Port */}
setPort(e.target.value)} placeholder="3000" required style={inputStyle} />
{/* Submit Button */}
{/* Message */} {message && (
{message}
)} {/* Placeholder + Focus styling */}
); }