For custom domains to work with Larafast Multi-Tenancy, proper DNS configuration is essential. The system automatically verifies DNS records before provisioning sites and SSL certificates.
Use the Filament admin panel to check domain status:
// In your TeamResource or custom pageForms\Components\Placeholder::make('domain_status') ->content(function ($record) { if (!$record->domain) { return 'No domain configured'; } $domain = $record->domains()->where('domain', $record->domain)->first(); if (!$domain) { return '⏳ Pending DNS verification'; } if (!$domain->dns_verified) { return "❌ DNS not verified (Attempts: {$domain->dns_verification_attempts})"; } if (!$domain->ssl_installed) { return '⏳ SSL certificate being installed'; } if (!$domain->ssl_active) { return '⏳ SSL certificate being activated'; } return '✅ Domain active and secure'; })
# Check A recordsdig +short app.clientdomain.com A# Check with specific nameserverdig @8.8.8.8 app.clientdomain.com A# Detailed DNS querynslookup app.clientdomain.com
// Get all pending verifications\App\Models\Domain::where('dns_verified', false)->get();// Get domains with multiple failed attempts\App\Models\Domain::where('dns_verification_attempts', '>', 3)->get();
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Larafast","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"favicon":"/logo/favicon.svg","logo":{"light":"https://mintcdn.com/larafast/p7p6xbnL6MINm0mR/logo/larafast-small.png?fit=max\u0026auto=format\u0026n=p7p6xbnL6MINm0mR\u0026q=85\u0026s=e282ae2d477406a3992013a47d0c30c9","dark":"https://mintcdn.com/larafast/p7p6xbnL6MINm0mR/logo/larafast-small-white.png?fit=max\u0026auto=format\u0026n=p7p6xbnL6MINm0mR\u0026q=85\u0026s=79a7301c8c7bd102082ffa9f428e8f0c"},"navbar":{"links":[{"label":"Support","href":"mailto:[email protected]"}],"primary":{"type":"button","label":"Website","href":"https://larafast.com"}},"footer":{"socials":{"twitter":"https://twitter.com/larafastphp","github":"https://github.com/karakhanyans-tools/larafast.git"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"larafast","hasAudioNarration":false,"actualSubdomain":"larafast","customDomains":["docs.larafast.com"],"gitSource":{"type":"github","owner":"karakhanyans","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae91eff1deeea3b72fa104a:success","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"VILT Components","count":38},{"language":"default","tag":"Features","count":35},{"language":"default","tag":"TALL Components","count":34},{"language":"default","tag":"Documentation","count":32},{"language":"default","tag":"Multi-Tenancy","count":29},{"language":"default","tag":"Fast Projects: API","count":14},{"language":"default","tag":"Fast Projects: Directories","count":7},{"language":"default","tag":"Tutorials","count":7},{"language":"default","tag":"Get Started","count":6},{"language":"default","tag":"Auth","count":5}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"multi-tenancy/custom-domains/dns-configuration","slug":"/multi-tenancy/custom-domains/dns-configuration","pageMetadata":{"title":"DNS Configuration","description":"Configure DNS records for custom domains","icon":"network-wired","href":"/multi-tenancy/custom-domains/dns-configuration"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Configure DNS records for custom domains\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`dns-requirements`,children:`DNS Requirements`}),`\n`,_jsx(_components.p,{children:`For custom domains to work with Larafast Multi-Tenancy, proper DNS configuration is essential. The system automatically verifies DNS records before provisioning sites and SSL certificates.`}),`\n`,_jsx(Heading,{level:`2`,id:`dns-record-types`,children:`DNS Record Types`}),`\n`,_jsx(Heading,{level:`3`,id:`a-record-ipv4`,children:`A Record (IPv4)`}),`\n`,_jsx(_components.p,{children:`The most common configuration is to point your custom domain directly to your server’s IP address using an A record.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example:`})}),`\n`,_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Type: A`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Name: app (or @ for root domain)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Value: 203.0.113.42`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`TTL: 3600`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`This creates:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`app.yourdomain.com`}),` → `,_jsx(_components.code,{children:`203.0.113.42`})]}),`\n`,_jsxs(_components.li,{children:[`Or `,_jsx(_components.code,{children:`yourdomain.com`}),` → `,_jsx(_components.code,{children:`203.0.113.42`}),` (if using @)`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`aaaa-record-ipv6`,children:`AAAA Record (IPv6)`}),`\n`,_jsx(_components.p,{children:`If your server has an IPv6 address, you should also configure an AAAA record:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Type: AAAA`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Name: app`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Value: 2001:0db8:85a3:0000:0000:8a2e:0370:7334`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`TTL: 3600`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`cname-record`,children:`CNAME Record`}),`\n`,_jsx(_components.p,{children:`Alternatively, you can use a CNAME record to point to your main domain or server hostname:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Type: CNAME`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Name: app`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Value: yourmainapp.com`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`TTL: 3600`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`CNAME records cannot be used for root domains (e.g., `,_jsx(_components.code,{children:`yourdomain.com`}),`). Use A records for root domains.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`dns-configuration-by-provider`,children:`DNS Configuration by Provider`}),`\n`,_jsx(Heading,{level:`3`,id:`cloudflare`,children:`Cloudflare`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Log in to your Cloudflare dashboard`}),`\n`,_jsx(_components.li,{children:`Select your domain`}),`\n`,_jsxs(_components.li,{children:[`Navigate to `,_jsx(_components.strong,{children:`DNS`}),` → `,_jsx(_components.strong,{children:`Records`})]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Add record`})]}),`\n`,_jsxs(_components.li,{children:[`Configure:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Type`}),`: A`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Name`}),`: app (or your subdomain)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`IPv4 address`}),`: Your server IP`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Proxy status`}),`: DNS only (orange cloud OFF)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`TTL`}),`: Auto`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Save`})]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`When using Cloudflare, ensure “Proxy status” is set to `,_jsx(_components.strong,{children:`DNS only`}),` (gray cloud). The orange cloud (proxied) can interfere with SSL provisioning.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`digitalocean`,children:`DigitalOcean`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Log in to your DigitalOcean account`}),`\n`,_jsxs(_components.li,{children:[`Navigate to `,_jsx(_components.strong,{children:`Networking`}),` → `,_jsx(_components.strong,{children:`Domains`})]}),`\n`,_jsx(_components.li,{children:`Select your domain or add a new one`}),`\n`,_jsxs(_components.li,{children:[`Under `,_jsx(_components.strong,{children:`Add a record`}),`, select:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Type`}),`: A`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Hostname`}),`: app`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Will Direct To`}),`: Your server IP`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`TTL`}),`: 3600`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Create Record`})]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`aws-route-53`,children:`AWS Route 53`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Log in to AWS Console`}),`\n`,_jsxs(_components.li,{children:[`Navigate to `,_jsx(_components.strong,{children:`Route 53`}),` → `,_jsx(_components.strong,{children:`Hosted Zones`})]}),`\n`,_jsx(_components.li,{children:`Select your domain`}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Create Record`})]}),`\n`,_jsxs(_components.li,{children:[`Configure:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Record name`}),`: app`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Record type`}),`: A`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Value`}),`: Your server IP`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`TTL`}),`: 300`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Routing policy`}),`: Simple routing`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Create records`})]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`namecheap`,children:`Namecheap`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Log in to Namecheap`}),`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Domain List`}),` → Select your domain`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Manage`}),` → `,_jsx(_components.strong,{children:`Advanced DNS`})]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Add New Record`})]}),`\n`,_jsxs(_components.li,{children:[`Configure:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Type`}),`: A Record`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Host`}),`: app`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Value`}),`: Your server IP`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`TTL`}),`: Automatic`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.li,{children:`Click the checkmark to save`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`godaddy`,children:`GoDaddy`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Log in to GoDaddy`}),`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`My Products`}),` → `,_jsx(_components.strong,{children:`Domains`})]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`DNS`}),` next to your domain`]}),`\n`,_jsxs(_components.li,{children:[`Under `,_jsx(_components.strong,{children:`Records`}),`, click `,_jsx(_components.strong,{children:`Add`})]}),`\n`,_jsxs(_components.li,{children:[`Configure:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Type`}),`: A`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Name`}),`: app`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Value`}),`: Your server IP`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`TTL`}),`: 1 Hour`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Save`})]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`google-domains`,children:`Google Domains`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Log in to Google Domains`}),`\n`,_jsx(_components.li,{children:`Select your domain`}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`DNS`}),` on the left sidebar`]}),`\n`,_jsxs(_components.li,{children:[`Scroll to `,_jsx(_components.strong,{children:`Custom resource records`})]}),`\n`,_jsxs(_components.li,{children:[`Add a new record:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Name`}),`: app`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Type`}),`: A`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`TTL`}),`: 1H`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Data`}),`: Your server IP`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Add`})]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`dns-verification-process`,children:`DNS Verification Process`}),`\n`,_jsx(_components.p,{children:`When a team adds a custom domain, Larafast Multi-Tenancy automatically verifies DNS configuration:`}),`\n`,_jsx(Heading,{level:`3`,id:`1-dns-lookup`,children:`1. DNS Lookup`}),`\n`,_jsx(_components.p,{children:`The system performs DNS lookups to verify the domain points to your server:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Example of what the system checks`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$dnsRecords`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` dns_get_record`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'app.clientdomain.com'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`DNS_A`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Verifies if any record matches your server's IP`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`2-verification-job`,children:`2. Verification Job`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`VerifyDomainDnsRecordsJob`}),` runs to check DNS:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Queries DNS records for the custom domain`}),`\n`,_jsx(_components.li,{children:`Compares resolved IP with your server’s IP`}),`\n`,_jsx(_components.li,{children:`Updates the domain record with verification status`}),`\n`,_jsxs(_components.li,{children:[`Fires `,_jsx(_components.code,{children:`DnsVerified`}),` event on success`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`3-retry-logic`,children:`3. Retry Logic`}),`\n`,_jsx(_components.p,{children:`If DNS verification fails:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The system retries up to 3 times`}),`\n`,_jsxs(_components.li,{children:[`Tracks retry attempts in `,_jsx(_components.code,{children:`dns_verification_attempts`})]}),`\n`,_jsx(_components.li,{children:`Waits between retries for DNS propagation`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`4-automated-progression`,children:`4. Automated Progression`}),`\n`,_jsx(_components.p,{children:`Once DNS is verified:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DnsVerified`}),` event is fired`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CreateForgeSite`}),` listener creates a Forge site`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CreateForgeSiteCertificateJob`}),` provisions SSL certificate`]}),`\n`,_jsx(_components.li,{children:`Team is notified when complete`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`dns-propagation-time`,children:`DNS Propagation Time`}),`\n`,_jsx(_components.p,{children:`DNS changes take time to propagate across the internet:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Provider`}),_jsx(_components.th,{children:`Typical Propagation Time`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Cloudflare`}),_jsx(_components.td,{children:`2-5 minutes`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`DigitalOcean`}),_jsx(_components.td,{children:`5-30 minutes`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`AWS Route 53`}),_jsx(_components.td,{children:`1-5 minutes`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Namecheap`}),_jsx(_components.td,{children:`30 minutes - 2 hours`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`GoDaddy`}),_jsx(_components.td,{children:`1 hour - 24 hours`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Google Domains`}),_jsx(_components.td,{children:`5-30 minutes`})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`You can use tools like `,_jsx(_components.a,{href:`https://www.whatsmydns.net`,children:`whatsmydns.net`}),` to check DNS propagation globally.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best Practices`}),`\n`,_jsx(Heading,{level:`3`,id:`1-lower-ttl-before-changes`,children:`1. Lower TTL Before Changes`}),`\n`,_jsx(_components.p,{children:`Before configuring a custom domain:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Lower the DNS TTL to 300-600 seconds (5-10 minutes)`}),`\n`,_jsx(_components.li,{children:`Wait for the old TTL to expire`}),`\n`,_jsx(_components.li,{children:`Make your DNS changes`}),`\n`,_jsx(_components.li,{children:`After verification, you can increase TTL back to 3600 (1 hour)`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`2-use-subdomains`,children:`2. Use Subdomains`}),`\n`,_jsx(_components.p,{children:`Prefer subdomains over root domains:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`✅ `,_jsx(_components.code,{children:`app.clientdomain.com`}),` (subdomain)`]}),`\n`,_jsxs(_components.li,{children:[`❌ `,_jsx(_components.code,{children:`clientdomain.com`}),` (root domain)`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Subdomains are more flexible and can use CNAME records.`}),`\n`,_jsx(Heading,{level:`3`,id:`3-disable-proxying`,children:`3. Disable Proxying`}),`\n`,_jsx(_components.p,{children:`If using Cloudflare or similar CDN:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Disable the proxy (orange cloud) during initial setup`}),`\n`,_jsx(_components.li,{children:`Enable it after SSL is active (optional)`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`4-check-before-adding`,children:`4. Check Before Adding`}),`\n`,_jsx(_components.p,{children:`Advise your users to:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Configure DNS records first`}),`\n`,_jsx(_components.li,{children:`Wait 5-10 minutes for propagation`}),`\n`,_jsx(_components.li,{children:`Then add the domain in your application`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`monitoring-dns-status`,children:`Monitoring DNS Status`}),`\n`,_jsx(Heading,{level:`3`,id:`check-domain-status`,children:`Check Domain Status`}),`\n`,_jsx(_components.p,{children:`Use the Filament admin panel to check domain status:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`27`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`27`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// In your TeamResource or custom page`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`Forms\\\\Components\\\\`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Placeholder`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`make`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'domain_status'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`content`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$record`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$record`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`domain`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'No domain configured'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $domain`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $record`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`domains`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`where`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'domain'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$record`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`domain`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`first`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$domain`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '⏳ Pending DNS verification'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$domain`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dns_verified`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"❌ DNS not verified (Attempts: {`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$domain`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dns_verification_attempts`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`})\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$domain`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ssl_installed`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '⏳ SSL certificate being installed'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$domain`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ssl_active`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '⏳ SSL certificate being activated'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '✅ Domain active and secure'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` })`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`manual-dns-check`,children:`Manual DNS Check`}),`\n`,_jsx(_components.p,{children:`Check DNS records manually using command line:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Check A records`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`dig`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` +short`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` app.clientdomain.com`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` A`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Check with specific nameserver`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`dig`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @8.8.8.8`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` app.clientdomain.com`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` A`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Detailed DNS query`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`nslookup`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` app.clientdomain.com`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`monitor-verification-attempts`,children:`Monitor Verification Attempts`}),`\n`,_jsx(_components.p,{children:`Query the database to see verification status:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`php`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` artisan`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tinker`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Get all pending verifications`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`\\\\App\\\\Models\\\\`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Domain`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`where`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'dns_verified'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Get domains with multiple failed attempts`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`\\\\App\\\\Models\\\\`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Domain`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`where`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'dns_verification_attempts'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'>'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`get`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting-dns-issues`,children:`Troubleshooting DNS Issues`}),`\n`,_jsx(Heading,{level:`3`,id:`dns-not-resolving`,children:`DNS Not Resolving`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Problem`}),`: DNS lookups return no results.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution`}),`:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Verify the DNS record was created correctly`}),`\n`,_jsx(_components.li,{children:`Check for typos in the domain name`}),`\n`,_jsx(_components.li,{children:`Wait for DNS propagation (5-30 minutes)`}),`\n`,_jsxs(_components.li,{children:[`Use `,_jsx(_components.code,{children:`dig`}),` or `,_jsx(_components.code,{children:`nslookup`}),` to verify`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`wrong-ip-address`,children:`Wrong IP Address`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Problem`}),`: DNS resolves to wrong IP address.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution`}),`:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Update DNS record with correct IP`}),`\n`,_jsx(_components.li,{children:`Lower TTL for faster propagation`}),`\n`,_jsxs(_components.li,{children:[`Clear local DNS cache: `,_jsx(_components.code,{children:`sudo dscacheutil -flushcache`}),` (macOS)`]}),`\n`,_jsx(_components.li,{children:`Wait for propagation`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`cloudflare-proxy-issues`,children:`Cloudflare Proxy Issues`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Problem`}),`: DNS verification fails with Cloudflare.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution`}),`:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Click the orange cloud to make it gray (DNS only)`}),`\n`,_jsx(_components.li,{children:`Wait 2-5 minutes for changes to propagate`}),`\n`,_jsx(_components.li,{children:`Retry verification`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`multiple-a-records`,children:`Multiple A Records`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Problem`}),`: Domain has multiple conflicting A records.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution`}),`:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Remove old/incorrect A records`}),`\n`,_jsx(_components.li,{children:`Keep only the record pointing to your server`}),`\n`,_jsx(_components.li,{children:`Wait for DNS propagation`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`advanced-wildcard-domains`,children:`Advanced: Wildcard Domains`}),`\n`,_jsxs(_components.p,{children:[`If you want to support wildcard domains (e.g., `,_jsx(_components.code,{children:`*.clientdomain.com`}),`):`]}),`\n`,_jsx(Heading,{level:`3`,id:`dns-configuration`,children:`DNS Configuration`}),`\n`,_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Type: A`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Name: *`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Value: Your server IP`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`TTL: 3600`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`This allows any subdomain to work:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`app.clientdomain.com`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`portal.clientdomain.com`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`anything.clientdomain.com`})}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`server-configuration`,children:`Server Configuration`}),`\n`,_jsx(_components.p,{children:`On your Forge server, you’ll need to:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Configure Nginx to handle wildcard domains`}),`\n`,_jsx(_components.li,{children:`Use wildcard SSL certificates`}),`\n`,_jsx(_components.li,{children:`Adjust your application routing logic`}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Wildcard domain support requires additional configuration beyond the standard custom domains setup.`})}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next Steps`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/multi-tenancy/custom-domains/ssl-certificates`,children:`SSL Certificates`}),` - Understand SSL certificate automation`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/multi-tenancy/custom-domains/troubleshooting`,children:`Troubleshooting`}),` - Common issues and solutions`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/multi-tenancy/custom-domains/api-reference`,children:`API Reference`}),` - Programmatic domain management`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"DNS Configuration","description":"Configure DNS records for custom domains","icon":"network-wired","href":"/multi-tenancy/custom-domains/dns-configuration"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"DNS Requirements","slug":"dns-requirements","depth":2,"children":[]},{"title":"DNS Record Types","slug":"dns-record-types","depth":2,"children":[{"title":"A Record (IPv4)","slug":"a-record-ipv4","depth":3,"children":[]},{"title":"AAAA Record (IPv6)","slug":"aaaa-record-ipv6","depth":3,"children":[]},{"title":"CNAME Record","slug":"cname-record","depth":3,"children":[]}]},{"title":"DNS Configuration by Provider","slug":"dns-configuration-by-provider","depth":2,"children":[{"title":"Cloudflare","slug":"cloudflare","depth":3,"children":[]},{"title":"DigitalOcean","slug":"digitalocean","depth":3,"children":[]},{"title":"AWS Route 53","slug":"aws-route-53","depth":3,"children":[]},{"title":"Namecheap","slug":"namecheap","depth":3,"children":[]},{"title":"GoDaddy","slug":"godaddy","depth":3,"children":[]},{"title":"Google Domains","slug":"google-domains","depth":3,"children":[]}]},{"title":"DNS Verification Process","slug":"dns-verification-process","depth":2,"children":[{"title":"1. DNS Lookup","slug":"1-dns-lookup","depth":3,"children":[]},{"title":"2. Verification Job","slug":"2-verification-job","depth":3,"children":[]},{"title":"3. Retry Logic","slug":"3-retry-logic","depth":3,"children":[]},{"title":"4. Automated Progression","slug":"4-automated-progression","depth":3,"children":[]}]},{"title":"DNS Propagation Time","slug":"dns-propagation-time","depth":2,"children":[]},{"title":"Best Practices","slug":"best-practices","depth":2,"children":[{"title":"1. Lower TTL Before Changes","slug":"1-lower-ttl-before-changes","depth":3,"children":[]},{"title":"2. Use Subdomains","slug":"2-use-subdomains","depth":3,"children":[]},{"title":"3. Disable Proxying","slug":"3-disable-proxying","depth":3,"children":[]},{"title":"4. Check Before Adding","slug":"4-check-before-adding","depth":3,"children":[]}]},{"title":"Monitoring DNS Status","slug":"monitoring-dns-status","depth":2,"children":[{"title":"Check Domain Status","slug":"check-domain-status","depth":3,"children":[]},{"title":"Manual DNS Check","slug":"manual-dns-check","depth":3,"children":[]},{"title":"Monitor Verification Attempts","slug":"monitor-verification-attempts","depth":3,"children":[]}]},{"title":"Troubleshooting DNS Issues","slug":"troubleshooting-dns-issues","depth":2,"children":[{"title":"DNS Not Resolving","slug":"dns-not-resolving","depth":3,"children":[]},{"title":"Wrong IP Address","slug":"wrong-ip-address","depth":3,"children":[]},{"title":"Cloudflare Proxy Issues","slug":"cloudflare-proxy-issues","depth":3,"children":[]},{"title":"Multiple A Records","slug":"multiple-a-records","depth":3,"children":[]}]},{"title":"Advanced: Wildcard Domains","slug":"advanced-wildcard-domains","depth":2,"children":[{"title":"DNS Configuration","slug":"dns-configuration","depth":3,"children":[]},{"title":"Server Configuration","slug":"server-configuration","depth":3,"children":[]}]},{"title":"Next Steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"larafast","siteName":"Larafast","title":"DNS Configuration - Larafast","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"multi-tenancy/custom-domains/dns-configuration.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Configure DNS records for custom domains\">\u003cmeta data-mint-head name=\"application-name\" content=\"Larafast\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"DNS Configuration - Larafast\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configure DNS records for custom domains\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Larafast\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.larafast.com/multi-tenancy/custom-domains/dns-configuration\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://larafast.mintlify.site/_mintlify/api/og/v2?division=Custom+Domains\u0026amp;title=DNS+Configuration\u0026amp;description=Configure+DNS+records+for+custom+domains\u0026amp;theme=9371b70b45db6ce8fc4b435b\u0026amp;signature=1237964d6df5f766847d782be56edcf29b4ac41f88106e7a294268527c458a5b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"DNS Configuration - Larafast\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configure DNS records for custom domains\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://larafast.mintlify.site/_mintlify/api/og/v2?division=Custom+Domains\u0026amp;title=DNS+Configuration\u0026amp;description=Configure+DNS+records+for+custom+domains\u0026amp;theme=9371b70b45db6ce8fc4b435b\u0026amp;signature=1237964d6df5f766847d782be56edcf29b4ac41f88106e7a294268527c458a5b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/larafast/qg37bNa7kqUkjnFx/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Larafast\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.larafast.com/multi-tenancy/custom-domains/dns-configuration\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/multi-tenancy/custom-domains/dns-configuration.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.larafast.com/#organization\",\"name\":\"Larafast\",\"url\":\"https://docs.larafast.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/larafast/p7p6xbnL6MINm0mR/logo/larafast-small.png?fit=max\u0026auto=format\u0026n=p7p6xbnL6MINm0mR\u0026q=85\u0026s=e282ae2d477406a3992013a47d0c30c9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.larafast.com#website\",\"name\":\"Larafast\",\"url\":\"https://docs.larafast.com\",\"publisher\":{\"@id\":\"https://docs.larafast.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.larafast.com/multi-tenancy/custom-domains/dns-configuration#webpage\",\"url\":\"https://docs.larafast.com/multi-tenancy/custom-domains/dns-configuration\",\"name\":\"DNS Configuration\",\"description\":\"Configure DNS records for custom domains\",\"isPartOf\":{\"@id\":\"https://docs.larafast.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.larafast.com/multi-tenancy/custom-domains/dns-configuration#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.larafast.com/multi-tenancy/custom-domains/dns-configuration#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Custom Domains\",\"item\":\"https://docs.larafast.com/multi-tenancy/custom-domains/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DNS Configuration\",\"item\":\"https://docs.larafast.com/multi-tenancy/custom-domains/dns-configuration\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.larafast.com/multi-tenancy/custom-domains/dns-configuration#article\",\"headline\":\"DNS Configuration\",\"name\":\"DNS Configuration\",\"description\":\"Configure DNS records for custom domains\",\"url\":\"https://docs.larafast.com/multi-tenancy/custom-domains/dns-configuration\",\"mainEntityOfPage\":{\"@id\":\"https://docs.larafast.com/multi-tenancy/custom-domains/dns-configuration#webpage\"},\"publisher\":{\"@id\":\"https://docs.larafast.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.larafast.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Larafast\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Larafast\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/multi-tenancy/custom-domains/dns-configuration.md","siteName":"Larafast","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/larafast-installer"}]},{"tab":"Multi-Tenancy","groups":[{"group":"Get Started","pages":[{"title":"Start Here for Multi-Tenancy","icon":"arrow-right","href":"/multi-tenancy/intro"}]},{"group":"Database","pages":[{"title":"Database Overview","icon":"database","href":"/multi-tenancy/database/overview"},{"title":"Teams Table","icon":"table","href":"/multi-tenancy/database/teams-table"},{"title":"Team User Table","icon":"table","href":"/multi-tenancy/database/team-user-table"},{"title":"Team Invitations Table","icon":"table","href":"/multi-tenancy/database/invitations-table"},{"title":"Creating Tenant-Scoped Tables","icon":"table-cells","href":"/multi-tenancy/database/tenant-scoped-tables"}]},{"group":"Configuration","pages":[{"title":"Panel Setup","icon":"sliders","href":"/multi-tenancy/configuration/panel-setup"},{"title":"User Model Setup","icon":"user","href":"/multi-tenancy/configuration/user-model"}]},{"group":"Team Management","pages":[{"title":"Creating Teams","icon":"plus","href":"/multi-tenancy/teams/creating-teams"},{"title":"Managing Members","icon":"users","href":"/multi-tenancy/teams/managing-members"},{"title":"Team Settings","icon":"gear","href":"/multi-tenancy/teams/team-settings"}]},{"group":"Team Invitations","pages":[{"title":"Sending Invitations","icon":"paper-plane","href":"/multi-tenancy/invitations/sending-invitations"},{"title":"Accepting Invitations","icon":"check","href":"/multi-tenancy/invitations/accepting-invitations"}]},{"group":"Custom Domains","pages":[{"title":"Custom Domains Overview","icon":"globe","href":"/multi-tenancy/custom-domains/overview"},{"title":"Setup Guide","description":"Step-by-step guide to configure custom domains for your multi-tenancy application","icon":"wrench","href":"/multi-tenancy/custom-domains/setup-guide"},{"title":"DNS Configuration","icon":"network-wired","href":"/multi-tenancy/custom-domains/dns-configuration"},{"title":"SSL Certificates","description":"Automated SSL certificate provisioning and management for custom domains","icon":"lock","href":"/multi-tenancy/custom-domains/ssl-certificates"}]},{"group":"Pricing \u0026 Subscriptions","pages":[{"title":"Pricing \u0026 Subscriptions Overview","icon":"credit-card","href":"/multi-tenancy/pricing/overview"},{"title":"Stripe Setup","icon":"stripe","href":"/multi-tenancy/pricing/stripe-setup"},{"title":"Plans Configuration","icon":"list-check","href":"/multi-tenancy/pricing/plans-configuration"}]},{"group":"Settings","pages":[{"title":"Settings Overview","icon":"gear","href":"/multi-tenancy/settings/overview"},{"title":"General Settings","icon":"sliders","href":"/multi-tenancy/settings/general-settings"},{"title":"Social Authentication","icon":"users-gear","href":"/multi-tenancy/settings/social-authentication"},{"title":"Environment Management","icon":"file-code","href":"/multi-tenancy/settings/environment-management"}]},{"group":"Tenant Resources","pages":[{"title":"Creating Tenant Resources","icon":"rectangle-group","href":"/multi-tenancy/resources/creating-resources"}]},{"group":"Examples","pages":[{"title":"Agency Client Portal","icon":"briefcase","href":"/multi-tenancy/examples/project-management"},{"title":"B2B CRM System","icon":"users-rectangle","href":"/multi-tenancy/examples/crm-system"},{"title":"SaaS Subscription Platform","icon":"chart-line","href":"/multi-tenancy/examples/saas-platform"},{"title":"Learning Management Platform","icon":"graduation-cap","href":"/multi-tenancy/examples/learning-platform"}]}]},{"tab":"VILT Components","pages":[{"title":"VILT Components","href":"/vilt/components/themes-and-ui"}]},{"tab":"TALL Components","pages":[{"title":"TALL Components","href":"/tall/components/themes-and-ui"}]},{"tab":"Fast Projects: Directories","pages":[{"title":"Fast Projects: Directories","href":"/fast-projects/directories/intro"}]},{"tab":"Fast Projects: API","pages":[{"title":"Fast Projects: API","href":"/fast-projects/api/intro"}]}]},"basePath":"","title":"DNS Configuration - Larafast","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":[],"chunks":[]}