📚 General & Other

Migrating Your Community Infrastructure From Shared Hosting to DigitalOcean

Disclosure: This article contains affiliate links. If you sign up through them, we may earn a commission at no extra cost to you — thanks for supporting the site.

Some links here are affiliate links — if you buy through them we may earn a commission at no extra cost to you. It never changes what we recommend. Full disclosure.

Disclosure: This article contains affiliate links. If you sign up through them, we may earn a commission at no extra cost to you — thanks for supporting the site.

A lot of communities start their bots and tools on whatever free or shared hosting was easiest to find at the time — and outgrow it quietly, until an outage during a big event finally forces the migration conversation. Doing that migration deliberately, instead of during a crisis, makes it a much calmer process.

Why This Matters

Shared and free-tier hosting usually comes with unpredictable neighbors — other people's workloads on the same underlying resources, unclear restart schedules, and limited or no visibility into what's actually happening when something breaks. Migrating to your own Droplet or App Platform instance trades a small amount of setup effort for a large amount of predictability.

The migration itself is usually less risky than people expect, because you can run both environments in parallel until you're confident the new one works.

  • Shared hosting: unpredictable performance, limited logs, little control over restarts or maintenance windows
  • Dedicated Droplet or App Platform: predictable resources, full log access, control over your own maintenance schedule

A Simple Framework

  1. Stand up the new environment first, without touching the old one yet
  2. Deploy your bot or service to the new environment and test it thoroughly using a test server or staging bot token
  3. Migrate persistent data (leaderboard points, configuration, stored media) carefully, with a backup taken immediately before the move
  4. Run both environments briefly if possible, or schedule the cutover for a genuinely low-traffic window
  5. Decommission the old hosting only after confirming the new setup has been stable for a reasonable period, not immediately after cutover

Example

Before: A community's bot has run on a free hosting tier for over a year. It goes down during the server's biggest event of the year, with no logs available to explain why, and the moderators scramble to migrate under pressure while members ask what's wrong in real time.

After: A different community migrates proactively, standing up a Droplet, testing thoroughly with a staging bot token, and cutting over during a quiet Tuesday afternoon. The migration is uneventful specifically because nobody was under pressure while doing it.

> Tip: Always test with a separate staging bot token and, ideally, a private test server before pointing your real bot token at the new environment. It's the difference between catching a configuration mistake privately and catching it in front of your whole community.

Common Mistakes

  • Waiting for a hosting failure to force the migration instead of doing it proactively
  • Skipping a backup of persistent data immediately before the cutover
  • Testing directly against the live bot token and production server instead of a staging setup
  • Decommissioning the old environment immediately, with no buffer period to confirm stability

DigitalOcean's Droplets documentation and App Platform documentation both cover the setup steps for standing up the new environment before you touch anything currently in production.

> (ad) When I finally moved my communities off shared hosting for good, I moved everything to DigitalOcean — the calmest infrastructure decision I've made as a moderator.


The best migrations are the boring ones — planned, tested, and executed on a quiet afternoon, not during an outage in front of your whole community.