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?

Why Self-Host Discourse?

Why Self-Host Discourse?

FactorDiscourse Hosted (Standard)Discourse Hosted (Business)Self-Hosted
Price$100/mo$300/mo~$6-15/mo
Storage100GB500GBYour disk
Staff usersUnlimitedUnlimitedUnlimited
PluginsOfficial onlyOfficial + someAny plugin
Custom themesLimitedYesFull access
CDNIncludedIncludedYou configure
BackupsAutomaticAutomaticYou 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

VPSRAMvCPUStoragePriceBest For
Hostinger KVM28GB2100GB NVMe$5.99/moOverall best
Hetzner CX224GB240GB NVMe€3.99/moBudget
Contabo M16GB6200GB NVMe€9.49/moLarge communities
Hetzner CPX318GB4160GB NVMe€14.49/moPerformance
Vultr CC4GB280GB NVMe$24/moGlobal

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:

ServiceFree TierPaid
Mailgun1000 emails/mo$0.80/1000
Brevo (Sendinblue)300 emails/day$9/mo
Amazon SES-$0.10/1000
Postmark100 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

PluginPurpose
discourse-solvedMark topics as solved (Q&A)
discourse-votingFeature voting
discourse-assignAssign topics to staff
discourse-data-explorerRun SQL queries
discourse-chatBuilt-in chat
discourse-calendarEvents and calendars
discourse-templatesReply 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

FeatureHosted ($100/mo)Self-Hosted ($6/mo)
SetupInstant30 minutes
UpdatesAutomaticManual (easy)
PluginsOfficial onlyAny
ThemesLimited customizationFull access
BackupsIncludedYou manage
SupportOfficial teamCommunity
MigrationPossibleFull 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. Also consider Mastodon or Matrix if you want federated community communication instead of a traditional forum.

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

// related guides

Andrius Putna

Andrius Putna

I am Andrius Putna. Geek. Since early 2000 in love tinkering with web technologies. Now AI. Bridging business and technology to drive meaningful impact. Combining expertise in customer experience, technology, and business strategy to deliver valuable insights. Father, open-source contributor, investor, 2xIronman, MBA graduate.

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