> ## Documentation Index
> Fetch the complete documentation index at: https://reseller-docs.gfxtoolz.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom domain

> Move your panel from a gfxtoolz.ai subdomain to your own domain, with automatic TLS.

<Frame caption="Domain — your free panel address, and the route to your own domain.">
  ![The Domain screen showing the panel address and the Add a domain action](https://app.gfxtoolz.ai/docs-assets/reseller/domains.png)
</Frame>

The page sums it up: *"Your panel already has an address. Connect your own domain to put your brand in the URL too."*

## Your panel address

Every reseller gets a free subdomain — `yourname.gfxtoolz.ai` — shown here with a copy button and an **Open** link. It keeps working forever, even after you connect your own domain.

## Connecting your own domain

*"Your customers see your domain in the address bar instead of ours. **We handle the SSL certificate and keep it renewed.**"*

Connecting is free. You pay only your registrar for the domain itself.

### Choose a subdomain, not your bare domain

<CardGroup cols={2}>
  <Card title="Works" icon="circle-check">
    `app.yourbrand.com`

    `tools.yourbrand.com`

    `panel.yourbrand.com`
  </Card>

  <Card title="Not supported" icon="circle-xmark">
    `yourbrand.com`

    A bare domain cannot use the CNAME method, and pointing your whole domain here would take your main website offline.
  </Card>
</CardGroup>

<Tip>
  `app.` is the usual choice and leaves `yourbrand.com` free for your marketing site.
</Tip>

### The steps

<Steps>
  <Step title="Press Add a domain" icon="plus">
    Enter the address you want, e.g. `app.yourbrand.com`, and choose a verification method.
  </Step>

  <Step title="Copy the DNS records shown" icon="copy">
    The panel shows the exact records to create. Use those values — do not guess.
  </Step>

  <Step title="Add them at your DNS provider" icon="server">
    Wherever your domain's DNS is managed.

    <Warning>
      If your provider has a proxy toggle (Cloudflare's orange cloud), leave the record **unproxied** while verifying.
    </Warning>
  </Step>

  <Step title="Wait, then press Refresh" icon="rotate">
    DNS changes take anywhere from minutes to hours to propagate. **Refresh** re-checks; it does not speed anything up.
  </Step>

  <Step title="Certificate is issued" icon="lock">
    Once DNS is confirmed, TLS is provisioned automatically. Your domain goes live when that finishes.
  </Step>
</Steps>

## The two methods

<Tabs>
  <Tab title="CNAME">
    You add a CNAME record for your chosen subdomain. Your main domain and everything else on it are untouched.

    **Use this** unless you have a specific reason not to. It is the normal choice, and it is subdomain-only.
  </Tab>

  <Tab title="Nameservers">
    You delegate the whole domain's nameservers to us. More automation, but it hands over DNS for everything on that domain.

    **Only use this** if the domain is dedicated to your panel — no website, no email.

    <Warning>
      Changing nameservers on a domain that also runs your website or email will take those offline.
    </Warning>
  </Tab>
</Tabs>

## Status lifecycle

| Status           | Meaning                                                 |
| ---------------- | ------------------------------------------------------- |
| **Pending DNS**  | Added; waiting for you to create the records.           |
| **Verifying**    | Your records are visible; ownership is being confirmed. |
| **Provisioning** | DNS confirmed; the TLS certificate is being issued.     |
| **Active**       | Live and serving your panel over HTTPS.                 |
| **Error**        | Something is wrong — the panel explains what.           |

<Warning>
  A pending domain check does not wait forever. If DNS is never added, the attempt expires after a few days and you will need to add the domain again.
</Warning>

## When it will not verify

<AccordionGroup>
  <Accordion title="You have not waited long enough">
    Give DNS an hour before assuming anything is wrong.
  </Accordion>

  <Accordion title="The record is proxied">
    Cloudflare's orange cloud hides the record from verification. Set it to DNS-only until active.
  </Accordion>

  <Accordion title="The record name is wrong">
    For `app.yourbrand.com`, most providers want just `app` in the name field. Entering the full address often creates `app.yourbrand.com.yourbrand.com`.
  </Accordion>

  <Accordion title="An old record is in the way">
    An existing A or CNAME on the same name conflicts. Delete it first.
  </Accordion>

  <Accordion title="You used your bare domain">
    Use a subdomain — see above.
  </Accordion>
</AccordionGroup>

## After it goes live

Your `gfxtoolz.ai` subdomain keeps working, so existing customers are not stranded. Update your links, your Buy-now URLs and your marketing to the new address.

<Warning>
  Switching your **primary domain**, or turning on redirects between domains, changes the origin your customers' sessions belong to — they will be **signed out** and will need to sign in again on the new address. Do it deliberately, and tell them first.
</Warning>

<Tip>
  Connect your domain **before** you have many customers. Moving later means asking everyone to update their bookmarks.
</Tip>
