> ## Documentation Index
> Fetch the complete documentation index at: https://andcze.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom domain and SRV record

> Connect your own domain to your store and set up a clean Minecraft server address without a port.

By default, your store runs under an address provided by ItemShop.dev. However, you can connect your **own domain** (e.g. `shop.yourdomain.com`) so your store looks professional and earns the trust of players. On top of that, you can set up an **SRV record**, which lets players connect to your server through a clean address without having to type the port.

You'll find everything under **Settings → Domain**.

<Frame caption="The Domain tab in your store settings">
  <img src="https://mintcdn.com/andcze/6Qp9zwUm8VUzRssf/images/panel/domain.png?fit=max&auto=format&n=6Qp9zwUm8VUzRssf&q=85&s=0f833a7e169291a6d2cdf67dd2758d3e" alt="Domain and SRV record configuration panel" width="1280" height="720" data-path="images/panel/domain.png" />
</Frame>

<Note>
  A domain is the address players type into their browser (e.g. `shop.yourdomain.com`). To connect it, you need access to the control panel at your **domain provider** — that is, wherever you bought the domain.
</Note>

<Info>
  Only people with permission to edit the store can see the **Domain** tab. If you work with a team and a collaborator doesn't have that permission, this tab won't show up for them. As the owner, you always see it.
</Info>

## What you'll find on this page

The page is made up of two separate cards that work independently of each other:

<Columns cols={2}>
  <Card title="Custom domain" icon="globe">
    Here you connect your own store address (e.g. `shop.yourdomain.com`) instead of the address provided by ItemShop.dev.
  </Card>

  <Card title="SRV record (Minecraft)" icon="server">
    You generate a record that lets players connect to your server **without typing a port** at the end of the address.
  </Card>
</Columns>

## Connecting your own domain

<Steps>
  <Step title="Enter your domain">
    In the **Your domain** field, type the address you want your store to run under, e.g. `shop.yourdomain.com`. It's best to use a subdomain (an address with a prefix, like `shop.`), leaving the main domain for your website. As long as the field is empty, the connect button stays disabled.
  </Step>

  <Step title="Connect the domain">
    Click **"Connect domain"**. Once saved, the panel will show the **DNS records** you need to add at your domain provider, and it will display a badge with the domain's status. After the domain is saved, the button changes to **"Update"** — you can type a different address and click again to swap it.
  </Step>

  <Step title="Add the records at your domain provider">
    Log in to the panel where you manage your domain, find the **DNS** section, and add the records exactly as ItemShop.dev shows them — copy the name and the value without any changes.
  </Step>

  <Step title="Check the configuration">
    Go back to the panel and click **"Check configuration"**. The button will verify whether the domain correctly points to our servers. If everything is fine, you'll see a green confirmation and the domain will start working.
  </Step>
</Steps>

<Tip>
  To copy a record's value, just **click it** — a copy icon will appear next to it, and the panel will confirm "Copied". This way you don't have to select the text by hand, and you avoid typos.
</Tip>

### Which records you'll see

The panel picks the records to match the kind of address you entered and shows them in a clear table with the columns **Type**, **Name**, and **Value**:

<Columns cols={2}>
  <Card title="Subdomain (e.g. shop.yourdomain.com)" icon="link">
    A **single CNAME record** is enough. In the **Name** column you'll see the prefix (e.g. `shop`), and in **Value** the address it should point to.
  </Card>

  <Card title="Main domain (e.g. yourdomain.com)" icon="globe">
    The panel will show **two records** — one for the domain itself (marked `@`) and one for `www`, so both variants of the address work.
  </Card>
</Columns>

<Note>
  The records table appears right after you connect the domain — even before you click "Check configuration". It's a hint about what to add at your provider. After the first check, the panel may refine the records based on what it actually detected.
</Note>

### Domain status

Next to the domain field you'll see a colored badge that tells you in real time what stage the configuration is at:

<Columns cols={2}>
  <Card title="None" icon="circle">
    You haven't connected any domain yet — the store runs under the ItemShop.dev address.
  </Card>

  <Card title="Waiting for DNS" icon="clock">
    The domain is saved, but the DNS records don't point to us yet. This is normal right after adding it — wait for it to propagate and click "Check configuration".
  </Card>

  <Card title="Active" icon="circle-check">
    Everything's fine — the domain correctly points to our servers and the store runs under your address.
  </Card>

  <Card title="Error" icon="circle-x">
    Something's wrong with the configuration. Check whether the records were added exactly as the panel shows them.
  </Card>
</Columns>

<Note>
  After you click **"Check configuration"**, an extra message appears below the table: a green **"DNS points to us — domain ready"** when everything works, or a yellow **"Correct records not detected yet"** when you need to wait or fix the entries.
</Note>

<Tip>
  DNS propagation — the spread of changes across the internet — can take anywhere from a few minutes to a dozen or so. If "Check configuration" doesn't work right away, wait a moment and try again.
</Tip>

### Is your domain on Cloudflare?

Below the records table, the panel automatically checks whether your domain is handled by **Cloudflare** and shows the relevant information:

<Columns cols={2}>
  <Card title="Cloudflare detected" icon="bolt">
    An **"Add records automatically"** button appears. This is the easiest route — you don't have to copy anything by hand. After adding them, the panel immediately re-runs the configuration check.
  </Card>

  <Card title="Domain not on Cloudflare" icon="hand">
    The panel will let you know the records need to be added **manually** at your DNS provider — just like we described in the steps above.
  </Card>
</Columns>

<Note>
  The first time you add records automatically, Cloudflare may require you to **connect your account**. You'll then see a message asking you to connect to Cloudflare — follow the indicated step and try again. The feature also works on later runs: if the records already exist, they'll be updated, so you can safely click the button once more.
</Note>

### Removing the domain

Below the domain card you'll find a discreet **"Remove domain"** link. Clicking it disconnects your custom address from the store — the field is cleared, and the store goes back to running under the address provided by ItemShop.dev.

<Warning>
  After you remove the domain, players who saved your custom address will no longer be able to reach the store through it. Only remove the domain when you deliberately want to go back to the ItemShop.dev address or connect a different one.
</Warning>

## SRV record (Minecraft)

The second card on this page is the **SRV record (Minecraft)**. It lets players connect to your server through a clean address, **without adding a port** at the end. Instead of giving out an address with a port number, players simply type something like `play.yourdomain.com`.

<Columns cols={2}>
  <Card title="Connection host" icon="globe">
    The address players will type in the game, e.g. `play.yourdomain.com`. If you already have your own domain connected, the panel suggests a `play.` address with your domain here — you can keep it or change it.
  </Card>

  <Card title="Target (server host)" icon="server">
    The **hostname** of your server — not an IP address (e.g. `node1.your-hosting.com`). If you only have an IP address, first add an **A** record at your provider that turns the IP into a name, and only then enter that name here.
  </Card>

  <Card title="Port" icon="plug">
    The port number your Minecraft server runs on. The standard port `25565` is filled in by default — change it if your server uses a different one.
  </Card>
</Columns>

<Steps>
  <Step title="Fill in the fields">
    Enter the **connection host**, the **target** (your server's hostname), and the **port**. As long as the host and target are empty or the port is invalid, the generate button stays disabled.
  </Step>

  <Step title="Generate the SRV record">
    Click **"Generate SRV record"**. The panel will show the ready-made record in a clear table with the fields **Type**, **Name**, **Priority**, **Weight**, **Port**, and **Target**.
  </Step>

  <Step title="Add the record to your domain">
    Copy the individual fields (click each one to copy it) and add the record at your domain provider. If you use **Cloudflare**, the panel can add the record automatically.
  </Step>
</Steps>

<Note>
  Some DNS panels show the SRV record as **a single field** instead of several. For those, the panel also provides a ready-made **Value** below the table — just copy it and paste it in as a whole.
</Note>

<Warning>
  In the **Target** field, enter a **hostname**, not an IP address. An SRV record doesn't work directly with an IP address — that's why, with just an IP, you have to create an A record first.
</Warning>

<Note>
  If Cloudflare asks you to **connect your account** while adding the SRV record automatically, you'll see a relevant message. Follow the indicated step and try again — if needed, you can also add the record manually at your provider.
</Note>

<Tip>
  Just like with the domain, changes to the SRV record may need a few minutes before they take effect for all players. If the address without the port doesn't connect right after you add it, give DNS a moment to propagate.
</Tip>

## Frequently asked questions

<AccordionGroup>
  <Accordion title="The domain shows 'Waiting for DNS' even though I added the records.">
    This is usually just a matter of time. DNS changes have to spread across the internet, which can take anywhere from a few minutes to a dozen or so. Wait a bit and click **"Check configuration"** again. Also make sure the record's name and value were copied exactly, with no extra spaces.
  </Accordion>

  <Accordion title="Do I have to add the records manually if I have Cloudflare?">
    No. When the panel detects Cloudflare, it shows an **"Add records automatically"** button — clicking it does everything for you. Adding records manually is only needed when the domain isn't handled by Cloudflare.
  </Accordion>

  <Accordion title="I entered a main domain and the panel shows two records. Should I add both?">
    Yes. For a main domain, the panel creates a record for the address itself (marked `@`) and one for `www`, so both variants work. Add both at your provider.
  </Accordion>

  <Accordion title="In the SRV record's 'Target' field, I only have my server's IP address.">
    An SRV record needs a **hostname**, not an IP address. First add an **A** record at your provider that turns your IP into a name (e.g. `node1.yourdomain.com`), then use that name as the target.
  </Accordion>

  <Accordion title="I want to go back to the ItemShop.dev address.">
    Click the **"Remove domain"** link below the domain card. The store will immediately go back to running under the address provided by ItemShop.dev, and the domain field will clear.
  </Accordion>
</AccordionGroup>

## Best practices

<Tip>
  * **Go with a subdomain** — an address like `shop.yourdomain.com` needs one simple record and leaves your main domain for your website.
  * **Copy with a click** — you copy record values with a single click; it's the surest way to avoid typos.
  * **Give DNS a moment** — after adding records, wait a few minutes before deciding something isn't working, and only then click "Check configuration".
  * **Got Cloudflare? Use the automatic option** — the "Add records automatically" button saves time and eliminates mistakes.
  * **In the SRV record, enter a hostname, not an IP** — with just an IP, create an A record first, then use the name as the target.
  * **Keep an eye on the status** — a green "Active" badge is a sign the domain is working; with "Waiting for DNS" or "Error", go back to the records and check the entries.
  * **Remove the domain deliberately** — disconnecting the address instantly cuts off players who use your custom domain.
</Tip>
