diff --git a/ui/src/pages/Admin/EnvironmentsPage.tsx b/ui/src/pages/Admin/EnvironmentsPage.tsx
index 281f2340..3b6f51d9 100644
--- a/ui/src/pages/Admin/EnvironmentsPage.tsx
+++ b/ui/src/pages/Admin/EnvironmentsPage.tsx
@@ -333,12 +333,20 @@ function DefaultResourcesSection({ environment, onSave, saving }: {
const [memoryReserve, setMemoryReserve] = useState('');
const [cpuShares, setCpuShares] = useState('');
const [cpuLimit, setCpuLimit] = useState('');
+ const [routingMode, setRoutingMode] = useState(String(defaults.routingMode ?? 'path'));
+ const [routingDomain, setRoutingDomain] = useState(String(defaults.routingDomain ?? ''));
+ const [serverUrl, setServerUrl] = useState(String(defaults.serverUrl ?? ''));
+ const [envSslOffloading, setEnvSslOffloading] = useState(defaults.sslOffloading !== false);
useEffect(() => {
setMemoryLimit(String(defaults.memoryLimitMb ?? ''));
setMemoryReserve(String(defaults.memoryReserveMb ?? ''));
setCpuShares(String(defaults.cpuShares ?? ''));
setCpuLimit(String(defaults.cpuLimit ?? ''));
+ setRoutingMode(String(environment.defaultContainerConfig.routingMode ?? 'path'));
+ setRoutingDomain(String(environment.defaultContainerConfig.routingDomain ?? ''));
+ setServerUrl(String(environment.defaultContainerConfig.serverUrl ?? ''));
+ setEnvSslOffloading(environment.defaultContainerConfig.sslOffloading !== false);
setEditing(false);
}, [environment.id]);
@@ -347,6 +355,10 @@ function DefaultResourcesSection({ environment, onSave, saving }: {
setMemoryReserve(String(defaults.memoryReserveMb ?? ''));
setCpuShares(String(defaults.cpuShares ?? ''));
setCpuLimit(String(defaults.cpuLimit ?? ''));
+ setRoutingMode(String(defaults.routingMode ?? 'path'));
+ setRoutingDomain(String(defaults.routingDomain ?? ''));
+ setServerUrl(String(defaults.serverUrl ?? ''));
+ setEnvSslOffloading(defaults.sslOffloading !== false);
setEditing(false);
}
@@ -356,6 +368,10 @@ function DefaultResourcesSection({ environment, onSave, saving }: {
memoryReserveMb: memoryReserve ? parseInt(memoryReserve) : null,
cpuShares: cpuShares ? parseInt(cpuShares) : null,
cpuLimit: cpuLimit ? parseFloat(cpuLimit) : null,
+ routingMode,
+ routingDomain: routingDomain || null,
+ serverUrl: serverUrl || null,
+ sslOffloading: envSslOffloading,
});
setEditing(false);
}
@@ -386,6 +402,29 @@ function DefaultResourcesSection({ environment, onSave, saving }: {
{editing
? setCpuLimit(e.target.value)} placeholder="e.g. 1.0" style={{ width: 100 }} />
: {defaults.cpuLimit ? `${defaults.cpuLimit} cores` : '—'}}
+
+ Routing Mode
+ {editing
+ ?
+ : {routingMode === 'subdomain' ? 'Subdomain' : 'Path-based'}}
+
+ Routing Domain
+ {editing
+ ? setRoutingDomain(e.target.value)} placeholder="e.g. apps.example.com" style={{ width: 200 }} />
+ : {String(defaults.routingDomain || '—')}}
+
+ Server URL
+ {editing
+ ? setServerUrl(e.target.value)} placeholder="auto-detect" style={{ width: 200 }} />
+ : {String(defaults.serverUrl || '(global default)')}}
+
+ SSL Offloading
+ {editing
+ ? setEnvSslOffloading(!envSslOffloading)} />
+ : {envSslOffloading ? 'Enabled' : 'Disabled'}}
{editing ? (