# Host a Minecraft server

> Order a Minecraft server, install plugins, invite friends and keep the world safe, from start to finish.

Source: https://www.coritan.com/docs/managed-containers/host-a-minecraft-server/

This tutorial takes you from an empty account to friends playing on your own Minecraft: Java Edition server. You order the server, start it, join it, add plugins or mods, make yourself an operator and set up snapshots that keep the world safe. Each section ends with something you can check before you go on.

## Before you begin

- A Coritan account. [Create an account](/docs/get-started/create-an-account/) if you have none, then sign in.
- A way to pay: a [payment method](/docs/billing/payment-methods/) or [credit](/docs/billing/add-credit/) on the account.
- Minecraft: Java Edition on your computer. Bedrock players can join too once you turn on [Bedrock crossplay](/docs/managed-containers/software/bedrock-crossplay/).

## 1. Order the server

1. In the [dashboard](https://www.coritan.com/dashboard/servers), go to **Container Apps** and select **Order server**. The **Container Apps** order page opens, with its sections numbered down the page and the summary beside them.
2. Under **Plan**, choose the billing cycle at the top of the section, then a plan under **Size**. Each row shows the plan's price, vCPUs, memory and storage. A world with many players, plugins or mods needs more memory, and you can [change the plan](/docs/billing/change-plan/) later.
3. Under **Software**, select **Game servers**, then **Minecraft**, and choose the flavour:
   - Minecraft Paper runs plugins.
   - Minecraft Fabric, Minecraft Forge and Minecraft NeoForge run mods.
   - Minecraft Vanilla runs the game as Mojang releases it, without plugins or mods.
4. Under **Version**, leave **Latest** selected, or choose the version your players run. Players need the same game version as the server.
5. Under **Location**, choose the data centre closest to your players.
6. Under **Settings**, replace the suggested **Server name** with your own, such as `survival-smp`. The dashboard has no way to rename a server later.
7. Check the summary under **Your order**, then select the button under it. It reads **Deploy server** when your credit pays the first invoice, and **Place order and pay** when you pay on the next page.
8. If the order's page reads **Order placed, payment due**, pay under **Pay invoice**. We set the server up once it is paid.

The order's page shows **Setting up**, and `survival-smp` appears on the **Container Apps** page with the status `Installing`. [Order a server](/docs/managed-containers/order-a-server/) describes every section of the order page, including add-ons such as a dedicated address, which players join on the default port without typing one.

## 2. Start the server

1. On the **Container Apps** page, open `survival-smp`. While the software installs, the **Console** tab shows **Console unavailable**.
2. The page does not update by itself when the install finishes. Reload it from time to time until the console appears.
3. Read the [Minecraft EULA](https://aka.ms/MinecraftEULA). The game runs only when the file `eula.txt` on the server says `eula=true`, and our install writes that line for you. The line says that you accept the EULA.
4. Select **Start** at the top of the page. We do not start a new server for you when its install finishes.

The status badge at the top of the page goes from `Starting` to `Running`. The console prints a line that starts with `Done` when the world has loaded, and the **Live stats** card then shows **Players**, **Version** and **Online now**.

## 3. Join the server

1. At the top of the server page, select **Copy address**. The address is an IP address and a port, such as `203.0.113.10:10432`.
2. In Minecraft, select Multiplayer, then Add Server, and paste the address into Server Address. Select Done.
3. Select the server in the list and join it.
4. Send the same address to your friends.

The IP address is shared with other servers, and the port tells them apart. Players must type the whole address, port included.

For a name without a port, [create a join address](/docs/proxies/join-addresses/create-a-join-address/) under `coritan.gg`, such as `survival-smp.coritan.gg`. Leave **PROXY protocol** off when you create it: you cannot change it later, and a server that does not expect it refuses every player. [Edge Proxy](/docs/proxies/) explains join addresses and how to use a domain of your own.

You are in the world, and the console shows `Alex joined the game`, with your Minecraft name in place of `Alex`.

## 4. Add plugins or mods

Take a [snapshot](/docs/managed-containers/snapshots/) before you change what the server runs, so you can go back if something breaks. Section 6 shows how.

To add a plugin to a Minecraft Paper server:

1. Open the server's **Software** tab and select **Marketplace**.
2. In the list before the search field, choose **Plugins**. Type a name, such as `LuckPerms`, and select **Search**.
3. Select **Install…** on the result. In **Version**, choose a build made for your server's software and Minecraft version.
4. Select **Dependencies**. The dashboard installs only the plugin you chose, so note each `Required` project that shows `Not installed`, and install it the same way afterwards.
5. Select **Install**. Wait until the job at the top of the tab shows `Succeeded`.
6. Select **Restart** at the top of the page. The server loads a new plugin only when it starts.

A Paper server does not load mods. To run mods, switch the server to a mod loader first:

1. On the **Software** tab, the **Server software** panel opens first. Under **Choose the software to run**, select Minecraft Fabric, Minecraft Forge or Minecraft NeoForge.
2. Choose the Minecraft version the world runs now, or a newer one. Minecraft cannot load a world saved by a newer version.
3. Choose **Keep my files**, so the world stays. Plugins stay on the disk too, but a mod loader does not load them.
4. Select **Switch software**. The change stops the server. Wait until the job shows `Succeeded`.
5. Select **Start**, then install mods from **Marketplace** as above, with **Mods** chosen in place of **Plugins**.

The addon is listed under **Installed from the marketplace** and on the **Installed addons** panel, and the console shows it loading when the server starts. [Install plugins, mods and modpacks](/docs/managed-containers/software/plugins-and-mods/) covers modpacks and datapacks.

## 5. Make yourself an operator

An operator can run the game's admin commands, such as `/gamemode` and `/ban`, from inside the game.

1. Open the **Console** tab.
2. Type `op Alex`, with your Minecraft name in place of `Alex` and without a leading `/`.
3. Press <kbd>Enter</kbd> or select **Send**.

To let only the players you choose join, send `whitelist add` followed by each player's name, yours included, and then `whitelist on`.

The console shows `Made Alex a server operator`, and in the game you can now run `/gamemode creative`.

## 6. Keep the world safe

Snapshots have replaced [backups](/docs/managed-containers/backups/) on servers. A snapshot is a full copy of the server's files, kept on your account so it outlives the server. Take one before any big change, and let a schedule take one every night.

1. Open the **Snapshots** tab and select **Take snapshot…**.
2. Check the **Name**, then select **Take snapshot**.
3. Open the **Schedules** tab and select **New schedule…**.
4. Enter the **Name** `Nightly snapshot`. Keep the **Cron expression** the form starts with, `0 4 * * *`, which runs at 04:00 every day in the **Time zone** you choose. Select **Create schedule**.
5. Select the schedule's name to open it, then select **Add task**.
6. Set **Action** to **Take a snapshot**, then select **Add task**.

Snapshots use the snapshot storage that your plan includes. When it is full, the schedule deletes the oldest unlocked snapshots it took of this server to make room. It never deletes a snapshot you took yourself. [How snapshot storage works](/docs/snapshots/storage-allowance/) explains the allowance.

Your snapshot appears on the **Snapshots** tab, and its status goes from `Pending` to `Creating`, then to `Completed`. The schedule shows **Active**, with its next run beside the timetable.

## Troubleshooting

**Console unavailable** stays after a reload
: The install is still running, or it failed. When the page says the install did not finish, see [the install failed](/docs/managed-containers/troubleshooting/#the-install-failed).

The game cannot connect to the server
: Check that the badge shows `Running` and that the address you typed has its port. [Players cannot connect](/docs/managed-containers/troubleshooting/#players-cannot-connect) lists the other causes.

The game refuses the server because of its version
: The player's game runs another Minecraft version. Pick that version in the Minecraft launcher, or change the server's version on the **Software** tab.

A plugin or mod does not load
: Install its `Required` dependencies, then restart the server. [Install plugins, mods and modpacks](/docs/managed-containers/software/plugins-and-mods/#troubleshooting) lists the install errors.

Every player is refused through the join address
: **PROXY protocol** is on and the server does not expect it. See [Troubleshoot proxies and join addresses](/docs/proxies/troubleshooting/).

## Where to go next

- [Use your own domain for a join address](/docs/proxies/join-addresses/custom-domain/), such as `play.example.com`.
- [Share the server with other users](/docs/managed-containers/users/), so a friend can help you run it.
- [Schedule server tasks](/docs/managed-containers/schedules/), such as a nightly restart that warns players first.
- [Let Bedrock players join a Java server](/docs/managed-containers/software/bedrock-crossplay/).
- [Import a server from another host](/docs/managed-containers/import/) to bring a world you already have.
- [Troubleshoot servers](/docs/managed-containers/troubleshooting/) and [Server limits and rate limits](/docs/managed-containers/limits/) cover everything else.
