> For the complete documentation index, see [llms.txt](https://esmp-fun.gitbook.io/plugins/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://esmp-fun.gitbook.io/plugins/community-chat/getting-started/relay-on-a-minecraft-server.md).

# Run the relay on your Minecraft hosting

If your server runs at a Minecraft host with a control panel — Kinetic, Pebble, Sticky Piston, or any Pterodactyl-style host — the relay can live right there, managed from the same panel as your server. No VPS, no SSH, no Linux. The relay is a tiny Java app — a \~23 MB jar that runs happily in 256 MB of RAM — and it needs Java 25, the same Java that Minecraft 26.x already requires.

The relay is **not a plugin** — don't drop `ccsrv-relay.jar` into your `plugins/` folder. It's a separate little program that needs its own place to run. Panels give you exactly that; here's how.

## Step 1 — Get a slot for the relay

Three routes, in order of preference:

* **Split your existing plan (often free).** Many hosts let you carve a second small server out of the resources you already pay for. On Kinetic it's called the **Split Tool** (panel → Server Management → Server Split Tool): click *Split Server*, give the new split a sliver of your plan — 512 MB is already generous for the relay — and you get a second server on the same panel at no extra cost.
* **A cheap "bot" or generic Java plan.** Most Minecraft hosts sell tiny always-on Java containers as Discord-bot hosting, typically $2–3/month (Kinetic's start at $1.99). They run any jar, not just bots.
* **Ask support.** If neither shows in your panel, one ticket — "I need to run a small standalone Java 25 app with one open TCP port" — and any decent host will tell you which of their options fits.

When creating the instance, set it to run a **custom/generic jar** (not a Minecraft server type) and pick **Java 25**. If the version picker doesn't list 25 yet, pick the newest offered and ask support to enable 25 — the version lists on bot plans often lag behind the Minecraft ones.

## Step 2 — Get a port, and take what you're given

The relay needs one inbound TCP port so the other communities' servers can reach it. On panel hosting **you don't pick the port number — the panel picks one for you**:

* On Kinetic: panel → **Network & Ports** → *Open Port*. A port with a random number appears (say `25612`); add a note like "Community Chat relay" so future-you knows what it's for.
* On Pterodactyl-style panels it's usually called an **allocation**; your instance may already have one, shown right on its page.
* On other hosts it's a quick support ticket ("please open one extra TCP port on my server").

Whatever number you're given is fine — **you'll adjust the relay to the port, not the other way around** (that's Step 4; it's one line of config). Don't ask the host for port 8377 specifically; on shared panels specific numbers are usually reserved for dedicated-IP customers.

Also note the instance's **address** (like `node4.yourhost.com` or an IP) — it's shown next to the port in the panel.

Two traps on this page of the panel:

* **Leave the panel's firewall feature alone.** If your panel has a *Firewall* / *Firewall Rules* page: don't add Allow rules for specific servers. On most panels, creating the first Allow rule for a port silently switches that port to "allow **only** the listed addresses" — and every other community gets *connection refused*. The relay already has real security (each server needs its token); the port should stay open to everyone.
* **Your instance usually has two ports** — its original primary one and the one you just opened. The relay only uses the one you put in its config. Once everything works you can make the relay's port *primary* and delete the unused one (in that order — panels won't delete a primary port); it frees the slot and removes a source of confusion.

## Step 3 — Upload the two files

Open the relay instance's **file manager** in the panel (or connect with SFTP — the login details are on the same page) and upload:

* `ccsrv-relay.jar` — from your purchase,
* `config.yml` — the one you made in [Set up the network](/plugins/community-chat/getting-started/set-up-the-network.md). (Don't have it yet? Start the instance once — the relay writes a `config.yml` template you can fill in right in the panel's file editor.)

If the panel asks which jar to run, point it at `ccsrv-relay.jar`. If it wants a full startup command instead, use:

```
java -Xms64m -Xmx256m -jar ccsrv-relay.jar
```

## Step 4 — Point the relay at your port

The relay listens on **8377** by default, but your panel assigned you a different number in Step 2. Make the relay use *your* number — edit `config.yml` in the panel's file editor and set (or add) this block, with the port from Step 2:

```yaml
listen:
  host: 0.0.0.0
  port: 25612    # ← the port your panel gave you
```

## Step 5 — Start it

Press **Start**. Within a few seconds the console should show `Discord connected` and `Listening on ...`. The panel console works just like your Minecraft server's, and the panel keeps the relay alive from here — auto-restart on crash and on reboots, nothing extra to set up.

If you see an error instead, the [troubleshooting page](/plugins/community-chat/help/troubleshooting.md) covers every common one.

## Step 6 — Give it its real address

The relay is now reachable at the instance's address plus your assigned port — `ws://node4.yourhost.com:25612` — and that form is fine for a first test: point your **own** server's spoke at it and confirm it connects.

But **don't hand that address to the other communities.** It only works if each of their hosts happens to allow outbound connections to your exact port number, and many Minecraft hosts don't — the result is a network where some servers connect and others time out for no visible reason. Finish with [Give the relay a domain address](/plugins/community-chat/getting-started/relay-behind-443.md): on panel hosting it's click-only (the panel's reverse-proxy feature plus a free Cloudflare account), and it produces the address you actually distribute:

```
wss://crosschat.your-domain.com
```

Send that to each community together with their token ([Set up the network, Step 5](/plugins/community-chat/getting-started/set-up-the-network.md#step-5--hand-out-the-tokens)) and point them at [Connect a server](/plugins/community-chat/getting-started/connect-a-server.md). Your own Minecraft server joins the same way as everyone else's: install the spoke plugin, paste the same address.

## Hosting your server yourself?

If your Minecraft server runs on your own machine instead — a dedicated box or a home server — follow the [VPS guide](/plugins/community-chat/getting-started/relay-on-a-vps.md) on that machine; every step works the same, including keeping the relay running across reboots. Just open port 8377 the same way you opened your Minecraft port.

## One honest note

Wherever the relay lives, the network's chat pauses if that machine goes down (servers reconnect by themselves once it's back). Running it on your Minecraft hosting is convenient and often free; a small separate [VPS](/plugins/community-chat/getting-started/relay-on-a-vps.md) keeps the network up even while your Minecraft host has a bad day. Both are fine — pick what suits your network.
