Back to All Engineering Articles
Managed Discourse

Discourse Migration Guide: How to Move from Official Hosting to Your Own VPS (Zero Data Loss)

Fahriar Ahammed Jul 22, 2026 7 min read
Discourse Migration Guide: How to Move from Official Hosting to Your Own VPS (Zero Data Loss)

Direct Answer: Migrating a Discourse forum from official Discourse.org hosting to a self-hosted cloud VPS (such as Hetzner, AWS, or DigitalOcean) involves downloading a verified database backup from Discourse admin, provisioning a Docker container on Ubuntu, verifying data integrity on a staging URL, and performing a quick DNS cutover. When executed properly, the migration achieves zero data loss with a planned, read-only maintenance window under 30 minutes.

Many growing online communities find themselves paying $100 to $300+ each month for standard managed plans. Moving to client-owned cloud infrastructure reduces recurring hosting expenses by up to 70โ€“80% while granting full root access and plugin freedom.

Step 1: Generate & Download the Discourse Backup

Discourse includes built-in backup tools that bundle the PostgreSQL database, site settings, and local uploads into a single compressed tarball (.tar.gz):

  1. Log into your Discourse admin panel at /admin/backups.
  2. Enable "include uploads in backups" in site settings if your images are hosted locally.
  3. Trigger manual backup generation. For forums larger than 20GB, request an S3 export link from your host support.
  4. Download and calculate the SHA-256 checksum of the backup archive on your local terminal.

Step 2: Provision the Destination Cloud VPS

Discourse requires an official Docker container architecture (discourse_docker). Select a high-performance modern server:

  • Small communities (<50k monthly page views): 2 vCPU, 4GB RAM (e.g., Hetzner CPX21 or DigitalOcean Droplet).
  • Active communities (50kโ€“250k page views): 4 vCPU, 8GB RAM with dedicated NVMe storage.
  • High traffic (250k+ page views): 4โ€“8 vCPU, 16GB RAM with separated Redis cache and external PostgreSQL.

Step 3: Staging Restoration & Parity Audit

Never point live DNS to a newly restored forum without staging verification. Restore the backup onto a temporary subdomain (e.g. staging.community.yourdomain.com) and verify:

  • User avatars, custom emojis, and historical image attachments render without 404s.
  • Third-party OAuth logins (Google, GitHub, Discord, SSO) function correctly.
  • Custom theme CSS, badges, and plugins pass security and compatibility checks.

Step 4: The Planned Cutover & Rollback Protection

To ensure no community member posts are lost between your export and DNS propagation:

  1. 48 hours prior to cutover, lower your domain's DNS TTL to 300 seconds (5 minutes).
  2. Place the source forum into Read-Only Mode under /admin/site_settings/category/all_results?filter=read_only.
  3. Generate a final incremental database snapshot and restore it onto the destination server.
  4. Update your A/AAAA records to point to the new VPS IP address.
  5. Disable read-only mode once the SSL certificate validates via Let's Encrypt.

Want Zero-Risk Discourse Migration Done For You?

Our team provides complete, end-to-end managed Discourse hosting and migration services. We audit your plugins, clone staging environments, configure SMTP, and manage 24/7 operations.

Claim Your Free Forum Audit →

Have questions about your software architecture?

Book a free 20-minute strategy call with our principal software architects. We will evaluate your prototype or workflow and provide a clear technical roadmap.

VERVDEVSVERVDEVSVERVDEVS
โœจ Ask Vervy