feat: add SSL provider selection to settings and update config generation

This commit is contained in:
Wikid82
2025-11-22 22:22:22 -05:00
parent e66db3c27f
commit 155bedcf66
6 changed files with 63 additions and 20 deletions

View File

@@ -26,6 +26,7 @@ interface UpdateInfo {
export default function SystemSettings() {
const queryClient = useQueryClient()
const [caddyAdminAPI, setCaddyAdminAPI] = useState('http://localhost:2019')
const [sslProvider, setSslProvider] = useState('letsencrypt')
// Fetch Settings
const { data: settings } = useQuery({
@@ -37,6 +38,7 @@ export default function SystemSettings() {
useEffect(() => {
if (settings) {
if (settings['caddy.admin_api']) setCaddyAdminAPI(settings['caddy.admin_api'])
if (settings['caddy.ssl_provider']) setSslProvider(settings['caddy.ssl_provider'])
}
}, [settings])
@@ -66,6 +68,7 @@ export default function SystemSettings() {
const saveSettingsMutation = useMutation({
mutationFn: async () => {
await updateSetting('caddy.admin_api', caddyAdminAPI, 'caddy', 'string')
await updateSetting('caddy.ssl_provider', sslProvider, 'caddy', 'string')
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['settings'] })
@@ -97,6 +100,24 @@ export default function SystemSettings() {
<p className="text-sm text-gray-500 dark:text-gray-400 -mt-2">
URL to the Caddy admin API (usually on port 2019)
</p>
<div className="w-full">
<label className="block text-sm font-medium text-gray-300 mb-1.5">
SSL Provider
</label>
<select
value={sslProvider}
onChange={(e) => setSslProvider(e.target.value)}
className="w-full bg-gray-900 border border-gray-700 rounded-lg px-4 py-2 text-white focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors"
>
<option value="letsencrypt">Let's Encrypt (Default)</option>
<option value="zerossl">ZeroSSL</option>
</select>
<p className="text-sm text-gray-500 dark:text-gray-400 mt-1">
Choose the default Certificate Authority for SSL certificates.
</p>
</div>
<div className="flex justify-end">
<Button
onClick={() => saveSettingsMutation.mutate()}