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)
- Discourse minimum: 2GB (absolute floor, will swap)
- Comfortable for small communities: 4GB
- Active community (1000+ daily users): 8GB
- Multiple Discourse containers or heavy plugins: 16GB
- Discourse uses PostgreSQL + Redis + Sidekiq workers — all memory-hungry
- 2GB is the official minimum but 4GB is strongly recommended
CPU (Moderate)
- 2 vCPU handles most communities fine
- Sidekiq background jobs (emails, notifications) need CPU headroom
- Rebuilding the container is CPU-intensive (happens during updates)
- 4+ vCPU for communities with 5000+ daily active users
Storage (Moderate)
- Base install: ~5GB
- Growth depends on uploads (images, attachments)
- 40GB works for small communities
- 80-100GB for communities with heavy image/file uploads
- SSD/NVMe required — PostgreSQL performance depends on it
Network
- Low bandwidth for text-heavy forums
- Increases with image uploads and CDN-miss traffic
- 1Gbps is plenty
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
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
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
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
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
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:
- Hostname: forum.yourdomain.com
- Email: admin email for Let's Encrypt + first admin account
- SMTP settings: Required — Discourse won't work without email
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:
- Backup frequency: daily
- Maximum backups: 7
- Upload to S3 (optional but recommended)
Security Checklist
- HTTPS enabled (Discourse installer handles Let's Encrypt)
- SMTP configured and working (test with invite)
- Strong admin password
- Disable open registration if private community
- Set up rate limiting (enabled by default)
- Configure firewall — only ports 80/443 open
- Enable 2FA for all staff accounts
- Regular backups verified and tested
- Keep Discourse updated (
./launcher rebuild app)
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.
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
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.