feat: proxy provider UI, webhook URL fix, and dev-server key persistence
- Add proxy provider selector (None/NPM) to settings page with radio cards - Show warning when switching to None about existing NPM routes - Conditionally hide SSL certificate picker and NPM credentials when provider is None - Fix webhook URL regenerate not updating UI (field name mismatch: url vs webhook_url) - Fix dev-server.sh to persist ENCRYPTION_KEY across restarts via data/.dev-key - Fix selected radio card background visibility in dark mode
This commit is contained in:
+4
-4
@@ -260,12 +260,12 @@ export function updateSettings(data: Partial<Settings>): Promise<Settings> {
|
||||
return put<Settings>('/api/settings', data);
|
||||
}
|
||||
|
||||
export function getWebhookUrl(): Promise<{ url: string }> {
|
||||
return get<{ url: string }>('/api/settings/webhook-url');
|
||||
export function getWebhookUrl(): Promise<{ webhook_url: string }> {
|
||||
return get<{ webhook_url: string }>('/api/settings/webhook-url');
|
||||
}
|
||||
|
||||
export function regenerateWebhookUrl(): Promise<{ url: string }> {
|
||||
return post<{ url: string }>('/api/settings/webhook-url/regenerate');
|
||||
export function regenerateWebhookUrl(): Promise<{ webhook_url: string }> {
|
||||
return post<{ webhook_url: string }>('/api/settings/webhook-url/regenerate');
|
||||
}
|
||||
|
||||
export function listNpmCertificates(): Promise<NpmCertificate[]> {
|
||||
|
||||
@@ -238,7 +238,14 @@
|
||||
"backup": "Backups",
|
||||
"appearance": "Appearance",
|
||||
"staleThreshold": "Stale threshold (days)",
|
||||
"staleThresholdHelp": "Containers inactive for longer than this will be flagged as stale."
|
||||
"staleThresholdHelp": "Containers inactive for longer than this will be flagged as stale.",
|
||||
"proxyProvider": "Proxy Provider",
|
||||
"proxyProviderHelp": "Select how reverse proxy routes are managed for deployed containers.",
|
||||
"proxyNone": "None",
|
||||
"proxyNoneDesc": "No proxy — containers are accessed directly by port",
|
||||
"proxyNpm": "Nginx Proxy Manager",
|
||||
"proxyNpmDesc": "Routes managed via NPM API (configure credentials below)",
|
||||
"proxyNoneWarning": "Switching to None does not remove existing proxy routes from NPM. You can delete them manually from your NPM dashboard."
|
||||
},
|
||||
"settingsGeneral": {
|
||||
"title": "General Settings",
|
||||
|
||||
@@ -238,7 +238,14 @@
|
||||
"backup": "Резервные копии",
|
||||
"appearance": "Внешний вид",
|
||||
"staleThreshold": "Порог устаревания (дни)",
|
||||
"staleThresholdHelp": "Контейнеры, неактивные дольше этого срока, будут помечены как устаревшие."
|
||||
"staleThresholdHelp": "Контейнеры, неактивные дольше этого срока, будут помечены как устаревшие.",
|
||||
"proxyProvider": "Провайдер прокси",
|
||||
"proxyProviderHelp": "Выберите способ управления обратным прокси для развёрнутых контейнеров.",
|
||||
"proxyNone": "Нет",
|
||||
"proxyNoneDesc": "Без прокси — контейнеры доступны напрямую по порту",
|
||||
"proxyNpm": "Nginx Proxy Manager",
|
||||
"proxyNpmDesc": "Маршруты через NPM API (настройте учётные данные ниже)",
|
||||
"proxyNoneWarning": "Переключение на «Нет» не удаляет существующие прокси-маршруты из NPM. Вы можете удалить их вручную в панели NPM."
|
||||
},
|
||||
"settingsGeneral": {
|
||||
"title": "Общие настройки",
|
||||
|
||||
@@ -115,6 +115,7 @@ export interface Settings {
|
||||
dns_provider: string;
|
||||
has_cloudflare_api_token: boolean;
|
||||
cloudflare_zone_id: string;
|
||||
proxy_provider: string;
|
||||
backup_enabled: boolean;
|
||||
backup_interval_hours: number;
|
||||
backup_retention_count: number;
|
||||
|
||||
Reference in New Issue
Block a user