From 7e458ae698554f87526ad4d950acf8cb5b36cae2 Mon Sep 17 00:00:00 2001 From: Z User Date: Thu, 29 Oct 2026 12:37:57 +0000 Subject: [PATCH] fix: Dokploy domain.create uses 'host' (not 'hostName') + certificateType: letsencrypt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Field name: hostName → host (verified via direct API test) - Added certificateType: 'letsencrypt' for automatic HTTPS cert provisioning - Updated createDomain in dokploy.ts + custom-domain route - HTTPS is enabled by default (https: true) - Let's Encrypt auto-provisions certificate for the subdomain --- src/app/api/aos/instances/[id]/custom-domain/route.ts | 3 ++- src/lib/dokploy.ts | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/app/api/aos/instances/[id]/custom-domain/route.ts b/src/app/api/aos/instances/[id]/custom-domain/route.ts index c456d2f..2f59ee2 100644 --- a/src/app/api/aos/instances/[id]/custom-domain/route.ts +++ b/src/app/api/aos/instances/[id]/custom-domain/route.ts @@ -183,9 +183,10 @@ export async function PATCH(req: Request, { params }: { params: Promise<{ id: st try { await dokploy.createDomain({ applicationId: instance.dokployAppId, - hostName: instance.customDomain, + host: instance.customDomain, port: 3000, https: true, + certificateType: 'letsencrypt', }) } catch (e) { // Non-fatal — domain verification still succeeded, Dokploy attach can retry diff --git a/src/lib/dokploy.ts b/src/lib/dokploy.ts index 8b99b93..0bc295e 100644 --- a/src/lib/dokploy.ts +++ b/src/lib/dokploy.ts @@ -259,17 +259,19 @@ export function createDokployClient(config: DokployConfig) { async function createDomain(input: { applicationId: string - hostName: string + host: string path?: string port?: number https?: boolean + certificateType?: string }): Promise { const res = await call<{ domainId?: string; id?: string }>('/domain.create', { applicationId: input.applicationId, - hostName: input.hostName, + host: input.host, path: input.path ?? '/', port: input.port ?? 3000, https: input.https ?? true, + certificateType: input.certificateType ?? 'letsencrypt', }) const domainId = res.domainId ?? res.id if (!domainId) { @@ -277,7 +279,7 @@ export function createDokployClient(config: DokployConfig) { } return { domainId, - hostName: input.hostName, + hostName: input.host, applicationId: input.applicationId, https: input.https ?? true, } @@ -349,9 +351,10 @@ export function createDokployClient(config: DokployConfig) { try { domain = await createDomain({ applicationId: app.applicationId, - hostName: input.subdomain, + host: input.subdomain, port: 3000, https: true, + certificateType: 'letsencrypt', }) } catch (e) { // Domain creation is non-fatal — app is already deployed