Flarum is open source community discussion forum

Flarum Free Forum Software

Open Source, Fast and Reliable Community Discussion Forum

Build beautiful discussion and message board websites with pack full social features.


Flarum is an open source, free and straightforward discussion forum for your site. It’s reimagined and beautiful designed forum software with packed full of features. It’s fast, simple and easy to deploy forum builder powered by PHP and Mithril.

Flarum touch-optimized and responsive and mobile friendly so you can have great experience on your smart phones, tablets and other hand held devices. It’s architecture is remarkably flexible and has powerful extension API so you can customize and extend features as per your business requirements.

Flarum makes online discussion fun with social features like facebook and twitter. It has out of the box smart notification system. It is outstanding online community discussion forum for your clients, team, friends, followers or supporters.

System Requirements

Flarum is based on PHP and MySQL / MariaDB. Current requirements for Flarum include

  • PHP 7.2.9+ with the following extensions: curl, dom, gd, json, mbstring, openssl, pdo_mysql, tokenizer, zip
  • MySQL 5.6+ / MariaDB 10.0.5+
  • Apache 2.4 + / Nginx 1.8


Flarum is equipped with feature set to support wide range of industries e.g. entertainment, production, services, manufacturing, construction, gaming etc. Key Features include

Easy to use

Two-Pane Interface, Infinite Scrolling and Floating Composer features make it easy to use. You can spend more time talking and less time clicking.


Big buttons, smooth animations, and gestures make it mobile friendly. Swipe a discussion to the right to mark it as read. Swipe it to the left to bring up more controls. The desktop and mobile versions of Flarum utilize the very same templates. That implies less work for developers, and a more consistent interface for users, regardless of what size your device.

Fast, Lightweight and Reliable

Flarum is fastest mmunity forum builder with tiny footprint. It is built by developers of esoTalk and FluxBB, both are fastest and lightest online message boards.

First Class Notification System

Flarum has out of the box smart notification system. Notifications are grouped by discussion and post to make them simpler to process. They can be marked as read individually or all at once.

Social Features

Social Mentions, like, tagging and other latest social features make it conversation more fun.

Other Features

  • Great community
  • Modern UI
  • Easily expandable
  • Based on Laravel
  • Easy Installation
  • Upload & Run
  • Built with Less
  • Quick Previews
  • Powerful Permissions
  • Fine-Grained Settings


Install Flarum on Ubuntu 18.04 LTS with Composer

You will need to install Apache, MariaDB and PHP to your system. First, install Apache and MariaDB using the following command:

    sudo apt-get install apache2 mariadb-server -y

Next, install PHP 7.1 to your system. But, PHP 7.1 is not available in Ubuntu 18.04 default repository. So you will need to add the repository for PHP first. You can add it with the following command:

    sudo apt-get install python-software-properties -ysudo add-apt-repository -y ppa:ondrej/php

After installing PHP repository, install PHP7.1 along with all the required libraries using the following command:

    sudo apt-get install php7.1 libapache2-mod-php7.1 php7.1-common php7.1-mbstring php7.1-xmlrpc php7.1-soap php7.1-mysql php7.1-gd php7.1-xml php7.1-cli php7.1-zip wget unzip curl git -y

Next, you will also need to make some changes in php.ini file:

    sudo nano /etc/php/7.1/apache2/php.ini

Make the following changes:

    file_uploads = On
    allow_url_fopen = On
    memory_limit = 256M
    upload_max_file_size = 150M
    max_execution_time = 450

Save and close the file, when you are finished. Then, start Apache and MariaDB service and enable them to start on boot with the following command:

    sudo systemctl start apache2sudo systemctl start mysqlsudo systemctl enable apache2sudo systemctl enable mysql

By default, the MariaDB is not secured. So you will need to secure it first. You can secure it by running the mysql_secure_installation script:


Answer all the questions as shown below:

    Enter current password for root (enter for none): Enter
    Set root password? [Y/n]: Y
    New password: 
    Re-enter new password: 
    Remove anonymous users? [Y/n]: Y
    Disallow root login remotely? [Y/n]: Y
    Remove test database and access to it? [Y/n]: Y
    Reload privilege tables now? [Y/n]: Y

Next, log into MariaDB shell with the following command:

    mysql -u root -p

Enter your root password, then create a Flarum database:

    CREATE DATABASE flarumdb;

Next, create a Flarum user with the following command:

    GRANT ALL PRIVILEGES ON flarumdb.* TO 'flarum'@'localhost' IDENTIFIED BY 'password';FLUSH PRIVILEGES;EXIT

Next, you will need to install Composer to your system. You can install Composer with the following command:

    sudo curl -s https://getcomposer.org/installer | phpsudo mv composer.phar /usr/local/bin/composer

Next, create a directory under Apache web root for Flarum project and install via Composer:

    sudo mkdir /var/www/html/flarumcd /var/www/html/flarumsudo composer create-project flarum/flarum . --stability=betasudo chown -R www-data:www-data /var/www/html/flarum/sudo chmod -R 755 /var/www/html/flarum/

Next, create an apache virtual host directive for Flarum:

    sudo nano /etc/apache2/sites-available/flarum.conf

Add the following lines:

    <VirtualHost *:80>
     ServerAdmin admin@yourdomain.com
     DocumentRoot /var/www/html/flarum
     ServerName yourdomain.com
     <Directory /var/www/html/flarum/>
    Options +FollowSymLinks
    AllowOverride All
    Order allow,deny
    allow from all
     ErrorLog /var/log/apache2/flarum-error_log
     CustomLog /var/log/apache2/flarum-access_log common

Save and close the file, then enable virtual host file and rewrite module with the following command:

    sudo a2ensite flarum sudo a2enmod rewrite

Finally, restart Apache web server to apply all the changes. Open your web browser and nevigate to URL http://yourdomain.com to access Flarum.

Installation using Docker

Pull Flarum Image from hub.docker.com:

    docker pull mondedie/flarum:latest

Configure Docker-compose.yml:

    version: “3”
    image: mondedie/flarum:stable
    container_name: flarum
    – /mnt/docker/flarum/flarum.env
    – /mnt/docker/flarum/assets:/flarum/app/public/assets
    – /mnt/docker/flarum/extensions:/flarum/app/extensions
    – /mnt/docker/flarum/nginx:/etc/nginx/conf.d
    – mariadb
    image: mariadb:10.4
    container_name: mariadb
    – MYSQL_ROOT_PASSWORD=xxxxxxxxxx
    – MYSQL_DATABASE=flarum
    – MYSQL_USER=flarum
    – MYSQL_PASSWORD=xxxxxxxxxx
    – /mnt/docker/mysql/db:/var/lib/mysql

Create an environment file:

    # vi /mnt/docker/flarum/flarum.env
    # Database configuration
    # User admin flarum (environment variable for first installation)
    # /!\ admin password must contain at least 8 characters /!\
    FLARUM_TITLE=Test flarum

Run your docker-compose:

    docker-compose up -d mariadb
    docker-compose up -d flarum

Congrats! You have successfully installed Flarum