'use client'; import { useState } from 'react'; import { buildProxyConfig, buildCertCommand, type ProxyServer, type CertTool, type ReverseProxyOptions, } from '@/lib/xray/reverse-proxy'; import { ToolFrame } from './tool-frame'; import { TextField, SelectField } from './shared/fields'; import { OutputBlock } from './shared/output-block'; export function ReverseProxyGenerator() { const [server, setServer] = useState('nginx'); const [domain, setDomain] = useState('panel.example.com'); const [panelPort, setPanelPort] = useState('2053'); const [panelPath, setPanelPath] = useState('/panel'); const [certTool, setCertTool] = useState('certbot'); const options: ReverseProxyOptions = { server, domain, panelPort, panelPath, certTool }; return (
setServer(v as ProxyServer)} options={['nginx', 'caddy']} /> {server === 'nginx' ? ( setCertTool(v as CertTool)} options={['certbot', 'acme.sh']} /> ) : null}
{server === 'nginx' ? ( ) : (

Caddy obtains and renews TLS certificates automatically — no extra command needed.

)}
); }