Getting Started with GameFabric: Vessels

Welcome to Getting Started with GameFabric!

In this guide, we’ll have you deploying your first game server in a matter of minutes, fully configured and operational.

What you’ll need:

A Vessel is a single named game server instance. It has its own configuration, its own connection details, and its own logs. You can connect to it directly, watch it start up, and see exactly what it’s doing.

They’re primarily used for long-running game sessions where players often return to a specific instance, usually via browsing a server list and if users carry progression between sessions. Even if your game calls for session-based matchmaking, starting with a Vessel still makes sense. The visibility you get here is worth it before you move to Armadas and scale up.

When you’re ready to manage multiple Vessels with a shared configuration, you’ll create a Formation. This is a template layer that subsequent Vessels will inherit from. You can also promote a Vessel to a Formation directly from the UI, covered at the end of this guide.

Let’s deploy!

Make sure you’re in your GameFabric installation’s UI. From there, look to the left sidebar to find ‘Vessels’ and select it.

You’ll land on the following panel.

Here, you’ll get an overview of your currently running Vessels (likely 0), your available capacity, Vessels flagged as unhealthy, and a list of your current game servers (also likely 0 — but that will soon change!).

Click ‘+ Create New Vessel’ in the top right of the panel page. You’ll be taken to a new field with a few steps.

General

First up is the General information.

  1. Name (required) — give your server a name and make sure it’s unique to any others you may have or intend to make. A good rule of thumb is to reference its stage in your production pipeline and the region it will service (e.g., prod-eu). 

  2. Description (optional) — it’s recommended to write a brief description of your Vessel to give your team better insight into what it’s for explicitly.

  3. Game Server Labels (optional) — these are key/value pairs your matchmaker can filter on during allocation. Useful when you need to route players to specific server types, but we don’t need these for now.

  4. Tag (optional) — this is a short label that appears next to the Vessel name in the UI. Useful for organizing multiple Vessels at a glance, but we’ll skip it here.

Hit ‘Next’ to continue.

Region

Now, you’ll choose a Region which determines the location your game server will spawn in (don’t worry about specifying bare metal or cloud, GameFabric will handle this automatically!).

In the dropdown menu, you should see the Region you set up in Getting Started with GameFabric: Environments & Regions. Go ahead and select it.

One important thing to remember: the Region is permanent. If you need to move a Vessel to a different Region, you’ll need to clone it and recreate it, and then change the Region. The clone carries all configuration over, but any stored state is retained only on the original.

Click ‘Next’.

Configure Templates & Volumes

This is where you’ll find the meat and potatoes of your Vessel. The panel is broken up between required settings and a variety of optional, quality of life additions. 

We’ll walk you through exactly what you need to fill in, and a few things you may want to take note of for the future:

Required — just follow these steps and you’ll be good to go:

  1. Name — this locks as ‘default’, tied to the name of your vessel in the Step 2.

  2. Branch — Select the Branch you wish to take your image from. If you followed our Getting Started with GameFabric: Branches & Images guide, you should have a Branch with an image already.

    1. Select Image — Select the image you assigned to your Branch

    2. Select Tag — Select the specific image version you want to use for the Vessel

  3. Container ports  Add at least one port for your game server:

    1. Policy — Dynamic’ (recommended): a random, fixed public port is assigned at runtime while your server binds to its expected fixed local port.

Passthrough’: public and local port match

  1. Name — an identifier for this port, used in API references and logs

  2. Port — the local port your game server binds to

  3. Network Protocol — TCP or UDP, depending on your game’s transport layer

  4. Protection Protocol — None or TCP

  1. Compute Resources — the resources guaranteed to your Vessel, used for scheduling. Reflect real usage, as a server scheduled on a node without enough free resources won’t start!

    1. CPU Request — the minimum CPU guaranteed to your Vessel. Enter a value, then select your unit from the following dropdown. If you’re unsure, millicores is the more precise option. 

      1. Millicores — For finer control (e.g, 500 = half a core)

      2. Cores — For whole numbers (e.g., 2 = two full cores) 

    2. Memory Request — the minimum guaranteed amount of memory for a container. Enter a value, then select your unit.

      1. Mi — mebibytes; M is the decimal equivalent.

      2. Gi — gibibytes; G is the decimal equivalent.

Optional — We won’t cover these in this guide, but read below for those who want greater control of if you’re interested in additional functionality:

You’ll note a toggleable button labeled ‘Advanced Settings’ here. This reveals optional CPU Limit and Memory Limit fields. These are not recommended at this stage.

  1. Command — overrides your Dockerfile’s ENTRYPOINT. Skip unless you need to change startup behavior without rebuilding.

  2. Args — overrides CMD from your Dockerfile. Skip this unless you need custom startup arguments.

  3. Environment Variables — variables to pass to the container, overriding image defaults. 

  4. Volumes — temporary shared storage across containers, cleared when the server stops.

  5. Config Files — mount configuration files at a specified path inside the container; changes to the source files are automatically reflected without a rebuild.

  6. Secrets — mount sensitive values like API keys without exposing them as plaintext.

When all is filled in, click ‘Next’.

Advanced & Protection

You’ll now land on the final page of the Vessel creation process. This presents a number of optional, though important, functionality you can enable on your game server, namely through protection, observability, health, and lifecycle checks.

Here are a few worth setting before you finalize:

  1. Observability (Profiling) — eBPF-based CPU profiling at around 2-3% overhead. Safe in production. Check the box and you’ll have performance data from day one.

  2. Container Health (Health Checks) — though disabled by default for initial testing, you’ll want this enabled for production. Without them, unresponsive servers can't be detected or cleaned up automatically.

  3. Game Server Termination (Termination Grace Period) — how long your server gets to wind down before a forced shutdown. Default is 30 seconds but can be adjusted to match your typical session length.

Skip for now — these options either require prior setup or are fine on defaults:

  1. SteelShield (Gateway Policies) — controls outbound traffic bypass for game servers via GatewayPolicies. Requires these policies to be configured first, we’ll skip for now.

  2. Shutdown Notification — this controls how long an allocated server has to begin graceful shutdown in different scenarios. The defaults are sensible, so we don’t need to change these. Leave them unless you have specific requirements.

You made it through! When everything is tweaked to your specific needs, you’re all clear to click on ‘Create Vessel’.

Your new Vessel should now appear in the main panel on the ‘Vessels’ page. It will move through its startup states: Pending → Scheduled → Created → Starting → Running.

Once it’s Running, your game server has called Ready() and is live!

You can click on the three dots on the far right of your listed Vessel to take a look at its details and some other options like your ‘Grafana Overview’.

For now, click on ‘Details’. Here you’ll see its public IP and ports. Connect to your game server using those values. Logs are on the same page and they’re the first place to look if something’s not starting cleanly.

And that’s your first deployment in GameFabric!

Once your Vessel is configured and running the way you want it, you can actually promote it to a Formation directly in the UI, using it as a reusable template. Other Vessels can then be spun up from the same baseline without starting from scratch.

Your current ‘Formations’ can be found above Vessels in the leftward sidebar

In your Vessels list, find your Vessel and click the three-dot menu. Select ‘Convert to Formation’.

Congratulations! You’ve successfully deployed your first Vessel running in GameFabric. From here, you can hop on and try your game!

If you want a more detailed overview on Vessels and Formations, read more in our official documentation.

Next: Getting Started with GameFabric: Armadas & ArmadaSets

Weave GameFabric Into Your Game.

Get Started