DEV Community

selfhosting.sh
selfhosting.sh

Posted on • Originally published at selfhosting.sh

Discourse vs Flarum: Which Forum to Self-Host?

Quick Verdict

Discourse is the better forum platform — it's feature-rich, battle-tested at scale, and has the largest plugin ecosystem. Flarum is significantly lighter and faster to set up, making it a solid choice for smaller communities that don't need Discourse's full feature set.

Overview

Discourse and Flarum are both modern, self-hosted forum platforms designed to replace aging forum software like phpBB and vBulletin. They take very different approaches to the same problem.

Discourse — GPL-2.0 license, 43k GitHub stars. Built with Ruby on Rails + Ember.js. Created by Jeff Atwood (co-founder of Stack Overflow). The most widely-used modern open-source forum. Powers communities for GitHub, Docker, Rust, and hundreds of other major projects.

Flarum — MIT license, 15.5k GitHub stars. Built with PHP (Laravel) + Mithril.js. Lightweight and fast. Positions itself as "simple forum software" with a focus on speed and elegance.

Feature Comparison

Feature Discourse Flarum
Real-time updates Yes Yes
Markdown support Yes Yes
Categories Yes (with subcategories) Yes (tags + categories)
Tags Yes Yes (core feature)
User groups Yes (trust levels) Yes (groups + permissions)
Private messaging Yes Yes (via extension)
Moderation tools Extensive Basic + extensions
Spam prevention Built-in (Akismet, rate limiting) Via extensions
SSO / OAuth Yes (built-in) Yes (via extensions)
API Full REST API JSON:API compliant
Search Built-in full-text Built-in
Email integration Reply-by-email, mailing list mode Basic email notifications
Plugin ecosystem 200+ official and community 100+ extensions
Mobile responsive Yes Yes
PWA support Yes Yes (via extension)
Gamification Trust levels, badges Via extensions
Polls Built-in Via extension
Webhooks Yes Via extension
Multi-language 40+ languages 40+ languages
License GPL-2.0 MIT

Installation Complexity

Discourse uses its own Docker-based installer — not standard Docker Compose. This is intentional: the installer handles Ruby, Redis, PostgreSQL, Sidekiq, and nginx in a single managed container.

# Discourse official install method
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
./discourse-setup
Enter fullscreen mode Exit fullscreen mode

The setup wizard asks for your domain, email config (SMTP required), and Let's Encrypt settings. It builds a custom Docker image with your configuration baked in. Updates are done via ./launcher rebuild app.

Minimum server requirements:

  • 2 GB RAM (1 GB with swap — not recommended)
  • 1 CPU core (2+ recommended)
  • 10 GB disk (SSD recommended)
  • SMTP email (required — Discourse won't work without email)

This is heavyweight. Discourse was not designed for Raspberry Pis.

Flarum can run with standard Docker Compose using community Docker images:

services:
  flarum:
    image: crazymax/flarum:1.8
    container_name: flarum
    ports:
      - "8888:8888"
    volumes:
      - flarum_data:/data
    environment:
      - FLARUM_BASE_URL=http://localhost:8888
      - DB_HOST=db
      - DB_NAME=flarum
      - DB_USER=flarum
      - DB_PASSWORD=flarum_password
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: mariadb:11
    container_name: flarum-db
    volumes:
      - flarum_db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=rootpass
      - MYSQL_DATABASE=flarum
      - MYSQL_USER=flarum
      - MYSQL_PASSWORD=flarum_password
    restart: unless-stopped

volumes:
  flarum_data:
  flarum_db:
Enter fullscreen mode Exit fullscreen mode

Minimum server requirements:

  • 512 MB RAM
  • 1 CPU core
  • 5 GB disk
  • PHP 8.1+, MySQL 5.6+ / MariaDB 10.3+

Flarum runs on hardware where Discourse wouldn't even start.

Performance and Resource Usage

Discourse is resource-hungry. Idle memory usage is typically 1-1.5 GB due to Ruby on Rails, Redis, PostgreSQL, and Sidekiq workers. Under load, it scales well horizontally but each instance needs significant resources.

Flarum is lightweight. Idle memory usage is typically 100-200 MB (PHP-FPM + MariaDB). It handles moderate traffic well on minimal hardware. PHP's request-response model means memory doesn't grow with active connections the way Discourse's persistent processes do.

For a small community (under 1,000 users), Flarum uses 5-10x less server resources than Discourse.

Community and Support

Discourse: 43k stars, massive ecosystem. Commercial hosting available (from $50/month). Professional support options. Extensive theme and plugin marketplace. Used by some of the largest developer communities in the world.

Flarum: 15.5k stars, growing community. No commercial hosting from the core team. Extension ecosystem is smaller but covers most common needs. Active community forum at discuss.flarum.org.

Use Cases

Choose Discourse If...

  • You're building a large community (1,000+ users)
  • You need enterprise-grade moderation tools
  • Email integration matters (mailing list mode, reply-by-email)
  • You want the largest plugin ecosystem
  • You need SSO integration with your existing platform
  • You can dedicate 2+ GB RAM to your forum
  • Trust levels and gamification are important for engagement

Choose Flarum If...

  • You're building a small to medium community (under 1,000 users)
  • Server resources are limited
  • You want a fast, simple, modern-looking forum
  • You prefer MIT license over GPL
  • You want standard Docker Compose deployment
  • You need a forum that runs on budget hardware
  • You value simplicity over feature completeness

Final Verdict

Discourse is the gold standard for self-hosted forums. If you have the server resources (2+ GB RAM) and need a full-featured community platform, nothing else comes close. The trust level system, email integration, and massive plugin ecosystem make it the obvious choice for serious community building.

Flarum is the smart choice for smaller communities. It's fast, attractive, and runs on minimal hardware. If you need a forum for a project, small team, or hobbyist community and don't want to dedicate a VPS just to the forum, Flarum delivers a clean experience at a fraction of the resource cost.

The deciding factor is scale: big community with budget for a proper server → Discourse. Small community or limited resources → Flarum.

Related

Top comments (0)