Skip to content
Forum · head-to-head

Discourse vs Flarum

Updated Sep 2026prices checked · Jul 2026
We earn commissions when you shop through the links below. Full disclosure →
The verdict

Pick Discourse if you want chat, polls, solved answers, reactions, the AI plugin, email digests and reply-by-email in the box, plus importers for most older forum software, and you can run its one officially supported install: a single container managed by the discourse_docker launcher, with a hostname and at least 1 GB of RAM plus swap. Pick Flarum if you want a small MIT-licensed forum that installs with Composer on the PHP and MySQL or MariaDB hosting you already have, and you are happy to add features as extensions; stay on the stable 1.x line, since PostgreSQL support and first-party real-time updates are 2.0 features still in release candidates.

Side by side

Discourse
Flarum
Category
Discourse: ForumFlarum: Forum
Stack
Discourse: Ruby on Rails · Ember.js · PostgreSQL · RedisFlarum: PHP · Mithril.js · MySQL/MariaDB
License
Discourse: GPL-2.0-or-laterFlarum: MIT
Min RAM
Discourse: 1 GB with swap (upstream; 2 GB+ recommended)Flarum: 512 MB (our estimate)
Install
Discourse: Installer script → discourse_docker launcher (only supported method)Flarum: Composer on your own Apache/Nginx + PHP host
Official Docker
Discourse: Yes, one launcher-built container (no Compose file)Flarum: No; community images only
Database
Discourse: PostgreSQL + Redis, inside the containerFlarum: MySQL or MariaDB (PostgreSQL and SQLite from 2.0)
Built-in chat
Discourse: Yes, core chat pluginFlarum: No; real-time updates via the Pusher extension
Extensions
Discourse: Many official plugins in core; others via app.yml + rebuildFlarum: Composer extensions; optional admin-panel Extension Manager
Email
Discourse: SMTP optional; without it, login goes through Discourse IDFlarum: Needed for verification and password resets
Importers
Discourse: In-repo scripts (phpBB, vBulletin, Vanilla, Flarum…)Flarum: Community scripts only
Difficulty
Discourse: 2 / 5Flarum: 3 / 5

Discourse and Flarum are the two modern answers to "I want a forum, not a chat room": threaded discussions with categories or tags, mentions, notifications, moderation and search, in a browser UI that does not look like phpBB. They were both designed as a break from classic bulletin boards, and they both use infinite-scroll topic pages. Past that they are very different products. Discourse is a large Rails application that arrives as one opinionated Docker container with most features already inside it. Flarum is a small PHP application that you install on an ordinary web stack and assemble from extensions. Decide which of those two shapes you want to run before comparing features.

How each one installs

Discourse supports exactly one way to install. Its install guide says "the only officially supported installs of Discourse are Docker based" and that the team "cannot support any other methods of installation". That Docker install is not a Compose file. You run the install-discourse script, which installs Docker if it is missing, clones discourse_docker into /var/discourse and starts a setup wizard. The wizard writes containers/app.yml and the launcher script builds a single container from YAML templates: PostgreSQL, Redis, the Rails web app and its background workers all in one. Every configuration change, plugin install or command-line upgrade is an edit to app.yml followed by ./launcher rebuild app, which destroys the old container and bootstraps a new one, so the forum is offline for a few minutes. Upgrades can also be run from /admin/upgrade in the browser, which upstream recommends. The wizard provisions Let's Encrypt itself and needs ports 80 and 443 free, and the sample config says plainly that Discourse "will not work with a bare IP number". You need a hostname, either your own or a free discourse.diy subdomain that upstream offers.

Flarum is a PHP application you install with Composer: composer create-project flarum/flarum:^1.8.0 . in an empty directory, a web root pointed at public/, URL rewriting through the bundled .htaccess or .nginx.conf, and a web installer to finish. You bring the stack: Apache with mod_rewrite or Nginx, PHP with a list of extensions, and MySQL or MariaDB. Upstream also ships ready-made archives for hosts without SSH. It publishes no Docker image; the images on Docker Hub are community-maintained. If you already run a LAMP or LEMP server, Flarum is one more site on it. On a bare VPS, you are building that server first.

We rate Discourse 2 out of 5 to deploy, because one script does everything, and Flarum 3 out of 5, because the web server, PHP, database, file permissions and a cron entry are all yours to set up.

Which Flarum you are installing

Flarum's stable line is 1.x, and that is what the command above pins. Flarum 2.0 is in release candidates on GitHub, and its install page carries the warning that it "is currently in beta" and "not ready for production use". The difference matters for this comparison. Flarum 1.x runs only on MySQL 5.6+ / 8.0.23+ or MariaDB 10.0.5+. The 2.0 docs add PostgreSQL 10+ and SQLite, raise the PHP floor to 8.2, and the 2.0 skeleton adds first-party realtime, messages and audit extensions. None of that is in the 1.x install. Treat 2.0 features as coming, not as what you get today, and check the release page before you start.

Features in the box

Discourse ships a lot in its core repository. Chat is built in: the chat plugin sits in the main repo and is switched on with a site setting. So do polls, solved answers, reactions, assignments, topic voting, events, gamification, a Data Explorer for SQL reports, OpenID Connect and OAuth2 login, and the Discourse AI plugin. It also has official and community themes, email digests, mailing-list mode and reply-by-email, webhooks, and a JSON API (the Ember front end is itself a client of it). Third-party plugins are git repositories you add to the hooks section of app.yml and rebuild.

Flarum keeps its core small on purpose. Its docs say "most of the features that ship with Flarum are actually extensions". The default install bundles tags, mentions, likes, flags, approval, sticky, lock, suspend, subscriptions, Markdown, BBCode, emoji and a GDPR extension, and any of them can be switched off. Everything else comes from a community ecosystem of Composer packages, listed on the Extensions tag of Flarum's own forum and on the unofficial Extiverse database. The Extension Manager extension lets you install from the admin panel, and upstream warns that it lets an admin "install any composer package". In 1.x there is no chat and no live updates without an extension. The first-party Pusher extension shows new posts in real time through the hosted Pusher service.

Email, and what happens without it

Flarum's docs say "any community needs to send emails" for verification, password resets and notifications, and that a wrong configuration "will cause errors when users try to register". Plan on an SMTP provider, or a working sendmail.

Discourse used to be the same: its sample config still lists SMTP as required, and email drives account confirmation, digests and notifications. The current installer makes it optional. Skip SMTP in the wizard and it turns on login via Discourse ID instead: users sign in through id.discourse.com, by email there or with Google, Facebook, Apple or GitHub, and web push still delivers notifications. That is a real shortcut, but it routes every login through a service Discourse runs, not your server. Digests, mailing-list mode and reply-by-email still need SMTP, and Discourse strongly recommends a dedicated email service over running your own mail server.

Footprint

Discourse publishes its requirements: 1 GB of RAM minimum, with swap, 2 GB or more recommended, a single core minimum with two recommended, and 10 GB of disk. The installer offers to create a 2 GB swap file on small servers and sizes the web workers and PostgreSQL buffers to the machine. That floor covers PostgreSQL, Redis and Rails together in one container.

Flarum publishes no RAM figure. It is PHP served by your web server, with MySQL or MariaDB beside it, so it can share a small VPS or a shared host with other sites. Our 512 MB floor is an estimate, not an upstream number.

Licence and moving in

Discourse is GPL-2.0-or-later: the README says "GNU General Public License Version 2.0 (or later)". Contributors sign a CLA. Flarum is MIT, for both the skeleton and the framework.

If you are moving an existing forum, Discourse carries import scripts in its own repository for phpBB, vBulletin, Vanilla and more, Flarum included. Flarum's docs say there are "no official importers yet" and point to community scripts for FluxBB, MyBB, phpBB and SMF2, which upstream "can't guarantee".

Which to choose

Choose Discourse if you want a forum that does everything on day one: chat, polls, solved answers, reactions, email digests and reply-by-email, plus importers for most older forum software. Accept its terms in return: one Docker container managed by the launcher, a hostname, at least 1 GB of RAM with swap, and an SMTP provider unless you are happy for logins to go through Discourse ID.

Choose Flarum if you want a small, fast MIT-licensed forum that runs on the PHP and MySQL hosting you already have, and you are happy to build features from extensions. Stay on the 1.x line for production, and remember that PostgreSQL support and first-party real-time updates belong to 2.0.

Neither wins outright. Discourse is the bigger product with a narrower way to run it. Flarum is the smaller product that fits into the server you already have.

Choosing between Flarum and Discourse

Put the other way round, start with Flarum if you already have a PHP host or want the lightest forum you can run. Move to Discourse when you need built-in chat, polls, the AI plugin and email integration without assembling extensions.

Not the only two options

If your community mostly talks in real time, a team chat server such as Mattermost or Rocket.Chat may fit better than a forum. If what you need is documentation that people edit rather than discuss, see the wiki and docs tools.

Common questions

Discourse vs Flarum — which self-hosted forum should I pick?

Pick Discourse if you want a full-featured forum on day one, with chat, polls, solved answers, email digests and reply-by-email built in, and you are fine running its launcher-managed Docker container. Pick Flarum if you want a small MIT-licensed PHP forum that fits on hosting you already run, and you are happy to add features as extensions.

Can I install Discourse with Docker Compose?

Not in a supported way. Upstream says the only officially supported installs are Docker-based through discourse_docker: an installer script and a launcher that builds one container, with PostgreSQL, Redis and the app inside, from containers/app.yml. Configuration changes and plugins are applied with ./launcher rebuild app.

Does Discourse need an SMTP server?

Not to start any more. If you skip SMTP in the installer, it turns on login via Discourse ID, a sign-in service at id.discourse.com run by Discourse, with email or social logins. Email digests, mailing-list mode and reply-by-email still need SMTP, and upstream recommends a dedicated email provider.

Is Flarum 2.0 ready for production?

Not per upstream. Flarum 2.0 is published as release candidates, and its install docs warn it is in beta and not ready for production use. The stable 1.x line runs on MySQL or MariaDB only; PostgreSQL and SQLite support and the first-party realtime extension come with 2.0.

How much RAM do Discourse and Flarum need?

Discourse documents 1 GB of RAM minimum with swap and recommends 2 GB or more; its installer offers to create swap on small servers. Flarum publishes no RAM figure; our 512 MB floor is an estimate for PHP plus MySQL or MariaDB. Neither has been measured on this site.

Where to host itaffiliate disclosure
Kamateratrial either on
The entry tier is a free trial — fine for a first look. Size it up (or run the 2 vCPU / 4 GB box the cost figures above assume) once you're keeping it.1 vCPU · 1 GB RAM · 20 GB SSD · $4.00/mo
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Other comparisons with these apps

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.