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

# NexoHub

> Manage one Nexo resource pack for your whole network, from one place.

Running Nexo across a network normally means keeping a full copy of it on every
backend: the same `items/`, `glyphs/` and `pack/assets/`, changed by hand on each
server every time you add an item.

NexoHub moves those files onto the proxy. You edit them in one place, every backend
picks up the change and reloads, and players download a single shared pack.

<Frame>
  <img src="https://mintcdn.com/nexohub/oWoKvLCEwhoXQJJH/images/one-pack-network.svg?fit=max&auto=format&n=oWoKvLCEwhoXQJJH&q=85&s=a278c1e1b3f2beb2e002b9176a17ff2c" alt="You edit one file on the proxy. Every backend builds from it, and the first to finish uploads the pack the whole network serves." width="2080" height="1700" data-path="images/one-pack-network.svg" />
</Frame>

## What you get

<CardGroup cols={2}>
  <Card title="One place to edit" icon="folder-open" href="/guides/managing-files">
    Change a file on the proxy and save. Every backend pulls it and reloads within
    seconds, without a restart or a per-server edit.
  </Card>

  <Card title="One pack, one download" icon="box">
    Players download the pack once, not once per server. Switching servers does not
    re-download it.
  </Card>

  <Card title="Nothing broken gets sent" icon="shield-check" href="/guides/safety">
    A file with a mistake in it never reaches your servers. Past versions are kept, so
    one command undoes an edit.
  </Card>

  <Card title="Disposable backends" icon="trash">
    A backend keeps nothing of its own, so retiring one means stopping it.
  </Card>

  <Card title="Works with your other plugins" icon="puzzle-piece" href="/guides/plugin-packs">
    BetterHUD, ModelEngine and BetterModel keep working, even when different servers
    use different HUDs and models.
  </Card>

  <Card title="One command to check it all" icon="stethoscope" href="/guides/commands#nexohub-doctor">
    `/nexohub doctor` tests the address players are handed, the state of every backend,
    and whether they will build the same pack.
  </Card>
</CardGroup>

## How it works

Your files live on the proxy in three layers. `_shared/` goes to every backend,
`groups/<name>/` to the backends you list, and `servers/<name>/` to one. A server that
needs one thing different gets it without a second copy of everything else. See
[managing your files](/guides/managing-files).

Each backend still builds the pack itself, which takes a few seconds on boot. The first
one to finish uploads it and the rest skip.

Backends hear about a change as it happens, and ask on a timer too, so a server nobody
is on does not sit on old files.

## Two plugins

| Plugin | Goes on |
| - | - |
| `NexoHub` | your proxy: `NexoHubVelocity.jar` on Velocity, `NexoHubBungee.jar` on BungeeCord or Waterfall |
| `NexoHubBridge` | every backend, next to Nexo |

Install one proxy jar, not both. They are the same hub with a different plugin
descriptor, so nothing else on this site depends on which proxy you run.

## Do you still need NexoProxy?

Yes. Keep it. NexoHub does a different job and replaces no part of it.

| | Handles |
| - | - |
| NexoProxy | what happens to a player moving between servers: not being sent the pack again on every switch, and glyphs carrying across |
| NexoHub | the files and the hosting: one place to edit them, and one pack built and uploaded once |

NexoHub does work without NexoProxy. Every server hands out the same link, so the
client already has the file and will not download it a second time. It still gets sent
the pack on each switch, though, and stopping that is NexoProxy's job.

Start with the [quickstart](/quickstart). If you already have Nexo running on several
backends, read [moving an existing network](/guides/migrating) instead.


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