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 platform 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.

It’s touch-optimized and responsive and mobile friendly so you can have great experience on your smart phones, tablets and other hand held devices. Flarum 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

Features

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.

Touch-Optimized

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 loading community 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

Installation Instructions

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 -y
sudo 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 apache2
sudo systemctl start mysql
sudo systemctl enable apache2
sudo 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:

mysql_secure_installation

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 | php
sudo 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/flarum
cd /var/www/html/flarum
sudo composer create-project flarum/flarum . --stability=beta
sudo 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 This email address is being protected from spambots. You need JavaScript enabled to view it.
 DocumentRoot /var/www/html/flarum
 ServerName yourdomain.com
 <Directory /var/www/html/flarum/>
Options +FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
 </Directory>
 ErrorLog /var/log/apache2/flarum-error_log
 CustomLog /var/log/apache2/flarum-access_log common
</VirtualHost>

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”

services:
flarum:
image: mondedie/flarum:stable
container_name: flarum
env_file:
– /mnt/docker/flarum/flarum.env
volumes:
– /mnt/docker/flarum/assets:/flarum/app/public/assets
– /mnt/docker/flarum/extensions:/flarum/app/extensions
– /mnt/docker/flarum/nginx:/etc/nginx/conf.d
depends_on:
– mariadb

mariadb:
image: mariadb:10.4
container_name: mariadb
environment:
– MYSQL_ROOT_PASSWORD=xxxxxxxxxx
– MYSQL_DATABASE=flarum
– MYSQL_USER=flarum
– MYSQL_PASSWORD=xxxxxxxxxx
volumes:
– /mnt/docker/mysql/db:/var/lib/mysql

Create an environment file:

# vi /mnt/docker/flarum/flarum.env

DEBUG=false
FORUM_URL=http://domain.tld

# Database configuration
DB_HOST=mariadb
DB_NAME=flarum
DB_USER=flarum
DB_PASS=xxxxxxxxxx
DB_PREF=flarum_
DB_PORT=3306

# User admin flarum (environment variable for first installation)
# /!\ admin password must contain at least 8 characters /!\
FLARUM_ADMIN_USER=admin
FLARUM_ADMIN_PASS=xxxxxxxxxx
FLARUM_ADMIN_MAIL=This email address is being protected from spambots. You need JavaScript enabled to view it.
FLARUM_TITLE=Test flarum

Run your docker-compose:

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

Congrats! You have successfully installed Flarum