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

# DNS (optional)

> A name for each game server, published automatically in your DNS zone.

Without DNS, players join a server with `IP:port`. With a DNS zone handed to Kuro, each server
gets a name: `survival.play.example.com`.

## What Kuro publishes

| Name | Type | Points to |
| - | - | - |
| `<node>.nodes.play.example.com` | `A` (and `AAAA`) | The node's public address |
| `<server>.play.example.com` | `CNAME` | Its node's name |
| `_minecraft._tcp.<server>.play.example.com` | `SRV` | The node and server port, if the prefab declares it |

The port stays in the address (`survival.play.example.com:25568`), since several servers share
a node's IP. Games that read an `SRV` record, like Minecraft Java, do without it: the player only
types the name.

Kuro **never** touches a record it did not create, and recreates the ones deleted by hand.

> [!TIP]
>
> **A dedicated domain.** At Cloudflare, an API token covers a whole zone. Use a domain for game
> servers that is separate from your website's: a stolen token could then change nothing on your
> site or your other services.

## Cloudflare

**1. Create the token**

**My Profile › API Tokens › Create Token**, "Edit zone DNS" template.

**2. Limit its permissions**

Permissions: `Zone › DNS › Edit` and `Zone › Zone › Read`, on **this zone only**. Optional:
restrict the token to the API machine's IP address.

**3. Give it to Kuro**

In Kuro, **Settings › DNS**: Cloudflare provider, server domain (for example
`play.example.com`), token, then **Save** and **Test**.

**4. Fill in the nodes**

On each node's page, fill in its **public address**.

Records appear within a minute, as "DNS only" (grey cloud): game traffic does not go through the
Cloudflare proxy.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.