Best VPS for Discourse 2026: Build Your Own Community Forum
REVIEW 9 min read fordnox

Best VPS for Discourse 2026: Build Your Own Community Forum

Find the best VPS for hosting Discourse. Compare specs, pricing, and performance to run your own community forum with full control.


Best VPS for Discourse in 2026

Discourse is the most popular open-source forum platform. Modern design, real-time updates, trust levels, built-in moderation — it's what community forums should be. Self-hosting means you own your community data and skip the $100/month hosting fee.

Why Self-Host Discourse?

Factor Discourse Hosted (Standard) Discourse Hosted (Business) Self-Hosted
Price $100/mo $300/mo ~$6-15/mo
Storage 100GB 500GB Your disk
Staff users Unlimited Unlimited Unlimited
Plugins Official only Official + some Any plugin
Custom themes Limited Yes Full access
CDN Included Included You configure
Backups Automatic Automatic You manage

At $100/month for the cheapest hosted plan, self-hosting Discourse pays for itself almost immediately. A $6/month VPS does the job for most communities.

VPS Requirements

Discourse is a Ruby on Rails app backed by PostgreSQL and Redis. It's heavier than static site generators but manageable.

RAM (Critical)

CPU (Moderate)

Storage (Moderate)

Network

Best VPS for Discourse

1. Hostinger KVM2 (Best Overall) ⭐

$5.99/mo | 2 vCPU, 8GB RAM, 100GB NVMe

8GB RAM gives Discourse room to breathe with PostgreSQL, Redis, and Sidekiq all running. 100GB NVMe handles years of community content. The best price-to-performance ratio for Discourse hosting.

Best for: Most communities, worry-free resources

→ Get Hostinger VPS

2. Hetzner CX22 (Best Budget)

€3.99/mo | 2 vCPU, 4GB RAM, 40GB NVMe

Meets Discourse's recommended specs at the lowest price. 4GB RAM runs a small-to-medium community without swapping. 40GB NVMe is enough if your community isn't upload-heavy.

Best for: New communities, tight budgets

→ Get Hetzner VPS

3. Contabo VPS M (Best Value)

€9.49/mo | 6 vCPU, 16GB RAM, 200GB NVMe

16GB RAM lets you run Discourse with heavy plugins, ElasticSearch for better search, and still have headroom. 200GB NVMe stores years of uploads. Six vCPUs make container rebuilds fast.

Best for: Large communities, plugin-heavy setups, 5000+ users

→ Get Contabo VPS

4. Hetzner CPX31 (Best Performance)

€14.49/mo | 4 vCPU, 8GB RAM, 160GB NVMe

Dedicated AMD EPYC vCPUs give consistent performance during traffic spikes and container rebuilds. 160GB NVMe handles large upload libraries.

Best for: Active communities needing reliable response times

→ Get Hetzner VPS

5. Vultr Cloud Compute (Best Global Coverage)

$24/mo | 2 vCPU, 4GB RAM, 80GB NVMe

32 data centers worldwide. Place your forum close to your community for lower latency. Good option if your users are concentrated in a specific region outside US/EU.

Best for: Communities in Asia, South America, or Australia

→ Get Vultr VPS

Quick Comparison

VPS RAM vCPU Storage Price Best For
Hostinger KVM2 8GB 2 100GB NVMe $5.99/mo Overall best
Hetzner CX22 4GB 2 40GB NVMe €3.99/mo Budget
Contabo M 16GB 6 200GB NVMe €9.49/mo Large communities
Hetzner CPX31 8GB 4 160GB NVMe €14.49/mo Performance
Vultr CC 4GB 2 80GB NVMe $24/mo Global

How to Install Discourse

Discourse uses its own Docker-based installer. It's opinionated but reliable.

Prerequisites

# Update system
sudo apt update && sudo apt upgrade -y

# Install Docker (if not installed)
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

Official Install

# Clone Discourse Docker manager
sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

# Run setup wizard
./discourse-setup

The setup wizard asks for:

SMTP Options

Discourse requires working email. Budget-friendly options:

Service Free Tier Paid
Mailgun 1000 emails/mo $0.80/1000
Brevo (Sendinblue) 300 emails/day $9/mo
Amazon SES - $0.10/1000
Postmark 100 emails/mo $1.25/1000

Sample SMTP Config (Mailgun)

# In containers/app.yml
env:
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: postmaster@mg.yourdomain.com
  DISCOURSE_SMTP_PASSWORD: your-mailgun-key
  DISCOURSE_SMTP_ENABLE_START_TLS: true

Build and Launch

./launcher rebuild app
# Takes 5-10 minutes on first build
# Discourse will be available at your configured hostname

Configuration Tips

containers/app.yml

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"  # If using external nginx

params:
  db_default_text_search_config: "pg_catalog.english"
  db_shared_buffers: "256MB"  # 25% of RAM, max 1GB

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  DISCOURSE_HOSTNAME: forum.yourdomain.com
  DISCOURSE_DEVELOPER_EMAILS: 'admin@yourdomain.com'
  UNICORN_WORKERS: 3  # 2 for 2GB RAM, 3-4 for 4GB+

Performance Tuning

# For 4GB RAM VPS
env:
  UNICORN_WORKERS: 3
  DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE: 200
  DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: 50

params:
  db_shared_buffers: "1GB"
  db_work_mem: "40MB"

Adding Plugins

# In containers/app.yml, under hooks:
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-voting.git
          - git clone https://github.com/discourse/discourse-assign.git

After adding plugins: ./launcher rebuild app

Essential Plugins

Plugin Purpose
discourse-solved Mark topics as solved (Q&A)
discourse-voting Feature voting
discourse-assign Assign topics to staff
discourse-data-explorer Run SQL queries
discourse-chat Built-in chat
discourse-calendar Events and calendars
discourse-templates Reply templates

Backup Strategy

#!/bin/bash
# backup-discourse.sh — run daily via cron
BACKUP_DIR="/backups/discourse"
DATE=$(date +%Y-%m-%d)

# Trigger backup via Discourse CLI
cd /var/discourse
./launcher run app discourse backup

# Copy latest backup
LATEST=$(./launcher run app ls -t /var/www/discourse/public/backups/default/ | head -1)
docker cp app:/var/www/discourse/public/backups/default/$LATEST "$BACKUP_DIR/$LATEST"

# Keep last 14 days
find $BACKUP_DIR -name "*.tar.gz" -mtime +14 -delete

Also enable automatic backups in Admin → Settings → Backups:

Security Checklist

Updating Discourse

cd /var/discourse
git pull
./launcher rebuild app

Updates take 5-10 minutes. The forum will be briefly unavailable during rebuild. Schedule updates during low-traffic hours.

Discourse Hosted vs Self-Hosted

Feature Hosted ($100/mo) Self-Hosted ($6/mo)
Setup Instant 30 minutes
Updates Automatic Manual (easy)
Plugins Official only Any
Themes Limited customization Full access
Backups Included You manage
Support Official team Community
Migration Possible Full control
Cost (yearly) $1,200 ~$72

Self-hosting saves ~$1,100/year and gives you full plugin and theme control. The tradeoff is spending 10 minutes/month on updates.

FAQ

How much RAM does Discourse need?

2GB is the absolute minimum (and it will swap). 4GB runs a small community comfortably. 8GB handles thousands of daily users with plugins.

Can I run Discourse on 1GB RAM?

No. Discourse officially requires 2GB minimum with swap. Below that, the container won't build and the forum will be unusable.

How many users can a VPS handle?

On a 4GB VPS: ~500-1000 daily active users. On 8GB: 2000-5000. Exact numbers depend on traffic patterns, plugins, and how upload-heavy your community is.

Is email really required?

Yes. Discourse uses email for signup confirmation, notifications, password resets, and mailing list mode. It won't function properly without working SMTP.

Can I migrate from other forum software?

Yes. Discourse has official importers for phpBB, vBulletin, Vanilla, NodeBB, Flarum, and many others. Check the Discourse community for import guides.

Discourse vs Flarum?

Discourse is more mature, feature-rich, and has a larger ecosystem. Flarum is lighter and simpler. For serious communities, Discourse wins. For small hobby forums, Flarum might be easier to start with.

Our Pick

Hostinger KVM2 at $5.99/month gives you 8GB RAM and 100GB NVMe — more than enough to run Discourse with plugins, thousands of users, and years of content. That's $72/year vs $1,200/year for Discourse's own hosting.

→ Get started with Hostinger

~/best-vps-for-discourse/get-started

Ready to get started?

Get the best VPS hosting deal today. Hostinger offers 4GB RAM VPS starting at just $4.99/mo.

Get Hostinger VPS — $4.99/mo

// up to 75% off + free domain included

// related topics

best vps for discourse discourse hosting self-hosted discourse discourse vps discourse server discourse forum hosting

fordnox

Expert VPS reviews and hosting guides. We test every provider we recommend.

// last updated: February 19, 2026. Disclosure: This article may contain affiliate links.