Flarum Free Forum Software
Open Source, Fast and Reliable Community Discussion Forum
Build beautiful discussion and message board websites with pack full social features.
Overview
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
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 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
Installation
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:
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 | 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
</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=admin@domain.tld
FLARUM_TITLE=Test flarum
Run your docker-compose:
docker-compose up -d mariadb
docker-compose up -d flarum
Congrats! You have successfully installed Flarum