Hey everyone,
Quick little infrastructure update today.
The Moon server migration is officially done, and everything went a lot smoother than I honestly expected.
The old DigitalOcean droplet has been turned off, and Moon is now running on a new Hetzner CX23 in Helsinki, Finland.
So far, everything is live and behaving beautifully.
That is always the best kind of server move: the one where there is not much drama to report afterward.
The short version is pretty simple:
Moon has been running for a while, and like most long-running servers, it had accumulated the usual pile of history. Old configs, user homes, database state, cron jobs, Caddy config, game files, little scripts I probably wrote at 2 AM and then forgot about.
Nothing too scary, but enough that I wanted the move to be careful instead of casual.
The important parts were the game files, the database, the Caddy setup, user homes, root scripts, and the various little bits that make the server feel like itself.
The game itself is live, so the database was the thing I wanted to treat with the most respect. File backups are easy. A moving database is where you can accidentally make your future self very sad.
So the process was basically:
Nothing fancy.
Just careful.
Moon is now running on a Hetzner CX23 in Helsinki.
That gives the project a cleaner, newer home without changing anything users should have to think about. The site is still the site. The game is still the game. The important difference is underneath: the server is fresh, the restore path has been tested, and the old droplet is no longer sitting there costing money.
I also got a nice bonus out of the move: the backup process is now much better documented than it was before.
A backup you have never restored is mostly a theory. This time, the restore was not theoretical. It worked.
One funny little side quest came up during the upload.
I normally run some traffic shaping on my home connection to stop the Hive Engine node from eating my upstream bandwidth. During the migration upload, the transfer was crawling more than expected.
It turned out my tc setup was doing exactly what I told it to do, not what I thought I told it to do.
The rule was supposed to throttle only a few service ports, but unmatched traffic was falling into the same limited default class. So SSH uploads were getting throttled too.
Once that was fixed, the upload speed jumped, and the migration moved along much better.
There is not a giant incident report here.
No corrupted database.
No weird Caddy mystery.
No lost game state.
No long outage.
No desperate "why is PHP doing this?" rabbit hole at 3 AM.
Just a server move that went well.
The old DigitalOcean droplet is off, the new Hetzner server is live, and Moon is happily running from Finland now.
There is invisible work involved with such a game like this - such as hosting and system administration. Its not always glorious, and often no one knows, but this is the game behind the game - the one that makes real-time PvP space empire gaming possible.
As always,
Michael Garcia a.k.a. TheCrazyGM