backupsbest-practicescloud-storage

Server Backup Best Practices for Game Hosting

8 min read

The 3-2-1 rule (and why game servers break it)

The 3-2-1 backup rule is the oldest advice in data protection. Three copies of your data. Two different storage media. One copy offsite. It is simple, it works, and almost nobody running game servers follows it.

Here is what the typical game server backup situation looks like:

  • 1 copy of everything (the live server files)
  • 1 storage medium (the VPS disk or hosting node)
  • 0 offsite copies (everything lives in one data center)

That is a 1-1-0 strategy, which is not really a strategy at all. It is more of a hope. And hope works great right up until the moment it does not.

Game servers are uniquely bad at this because they sit in a weird middle ground. They are not important enough for most people to set up enterprise backup infrastructure. But they contain hundreds or thousands of hours of player effort that cannot be recreated if lost. A Minecraft world with a year of builds. A Rust server with a community's plugin configs and player data. A Discord bot's database that tracks thousands of users. Losing any of these is genuinely painful, and it happens all the time.

What makes a good server backup solution

Not all backup methods are equal. Here is what to look for when choosing how to protect your game servers.

Automated scheduling. If a backup requires you to remember to trigger it, it is not a real backup system. It is a to-do list item that you will forget. The best server backup solution runs on a schedule without human intervention. Set it once, check on it occasionally, never worry about whether it ran.

Offsite storage. Your backups should not live on the same physical hardware as your server. If the server's disk fails, a node goes down, or the hosting provider has an outage, your backups should be somewhere else entirely. Cloud object storage (like S3 or Cloudflare R2) is the standard approach here.

Game-aware file selection. A Minecraft server has a world/ folder with your actual builds and a libraries/ folder with Java dependencies. Both live in the same directory. One is irreplaceable. The other can be redownloaded in seconds. A good backup solution knows the difference and does not waste time and storage on files you can easily replace.

Selective restore. When something goes wrong, you rarely need to restore your entire server. More often, you need one world folder, one config file, or one plugin's data directory. Being able to browse a backup and grab individual files saves time and avoids overwriting things that are still fine.

No admin access required. If you are using a hosting provider, you probably do not have root access to the server node. Your backup solution should work with the access level you actually have, whether that is a panel API key or SFTP credentials.

Cloud backup best practices

If you are storing backups in the cloud (and you should be), here are the practices that matter most for game servers.

Use object storage, not block storage. Object storage services like Amazon S3, Cloudflare R2, or Backblaze B2 are designed for exactly this. They are cheap, durable, and accessible from anywhere. Block storage (additional VPS disks) is better than nothing, but it often sits in the same data center as your server, which defeats the offsite requirement.

Watch your egress costs. This is the sneaky one. Most cloud storage providers charge you to download your own data. Storage is cheap, but restoring a 10GB game server backup from S3 costs money in transfer fees. Cloudflare R2 is the notable exception here: zero egress fees, period. When you are choosing where to store backups, factor in the cost of actually using them. A backup you hesitate to restore because of fees is a worse backup.

Set retention policies. How many days of backups do you actually need? For most game servers, 7 to 30 days covers every realistic scenario. Keeping backups from six months ago "just in case" burns storage for no practical benefit. Set a policy, automate the cleanup, and stop paying to store backups you will never use.

Encryption at rest. Your backups should be encrypted on the storage side. Most cloud providers do this by default (S3 and R2 both encrypt at rest), but verify it. Game server backups can contain player data, IP addresses, and configuration secrets. Treat them accordingly.

How often should you back up a game server?

This depends on two things: how quickly your server's data changes, and how much data loss you can tolerate.

Minecraft servers: Persistent worlds that grow continuously. Players build new things every day. Hourly backups are ideal if your plan supports it. Daily at minimum. Losing a full day of builds is bad. Losing a week's worth is devastating.

Rust servers: Rust wipes on a weekly or monthly cycle by design, so the world data is inherently temporary. But mid-wipe progress still matters to players, and oxide plugin configurations and data persist across wipes. Daily backups during an active wipe, plus a backup right before and after each wipe.

Discord bots and web apps: These change constantly. Database files, config files, user data. Back up daily at minimum. If your bot serves thousands of users, consider hourly. Losing a database with months of user data is not something you can hand-wave away.

Other survival games: Most survival games (DayZ, Satisfactory, Factorio, etc.) have persistent worlds that grow over time. Daily backups are the baseline. Before major updates, trigger an extra backup. Corruption after updates is the most common way people lose survival game data.

The general rule: match your backup frequency to your tolerance for data loss. If losing 24 hours of progress is acceptable, back up daily. If it is not, back up more often.

Game-aware backups vs full-directory backups

Most backup approaches treat your server as a generic directory of files. Download everything, compress it, store it. This works, but it is wasteful.

A Minecraft server directory might look like this:

/server/
  world/            (500 MB - your actual builds, CRITICAL)
  plugins/          (50 MB - plugin data, IMPORTANT)
  logs/             (200 MB - server logs, LOW PRIORITY)
  libraries/        (150 MB - Java libraries, SKIP)
  cache/            (100 MB - temporary files, SKIP)
  server.jar        (40 MB - server binary, SKIP)

A full backup of this directory is roughly 1 GB. A game-aware backup that grabs only world data, plugins, and configs is about 550 MB. That is nearly half the storage, and you are not losing anything meaningful. The server binary and libraries can be redownloaded. The logs are useful for debugging but not for recovery. The cache is temporary by definition.

The same principle applies to every game. Rust server saves live in server/rust/save/ and oxide/. Minecraft worlds are in world/ with plugins in plugins/. A Discord bot might have its database in data/ alongside a few config files. A backup system that understands these structures saves storage, runs faster, and makes restores cleaner.

Testing your restores

A backup you have never tested restoring is a backup you do not actually have. This is not theoretical. People discover their backups are corrupted, incomplete, or stored in a format they cannot use all the time, and they always discover it at the worst possible moment.

Testing a restore does not need to be complicated:

  1. Download a recent backup to your local machine.
  2. Check the contents. Are the expected files there? Is the world folder the right size? Are config files present?
  3. Do a test restore if possible. Spin up a local Minecraft server (or whatever game you are running) and point it at the restored files. Does it load? Are the builds there? Do players and their data exist?

Do this once a month. It takes ten minutes and tells you whether your backup system is actually working or just pretending to.

What we recommend

Everything above describes what a good backup strategy looks like. Here is how we built it into Pink Narwhal:

  • Automated scheduling on every plan. Set it once, it runs on its own.
  • Cloudflare R2 storage with zero egress fees. Your backups are offsite and restoring them is free.
  • Game-aware profiles for Minecraft, Rust, and more. Knows which files matter and skips the rest. You can also build custom profiles for any game or application.
  • Selective restore to pull individual files from any backup. No all-or-nothing overwrites.
  • Works with the access you have. Connects through Pterodactyl/Pelican client API or direct SFTP. No panel admin access needed.

Plans start at $5.99/month for 3 servers and 100 GB of storage. The Pro plan at $12.99/month adds API access for managing backups programmatically across larger setups.

For a detailed comparison of backup options specifically for Pterodactyl servers, see our comparison of backup solutions. And if you are running a Rust server, our Rust server backup guide covers the specific files, wipe cycle strategies, and automated setup.