docker-flarum/README.md

4.5 KiB

mondedie/flarum

logo

What is this ?

Flarum is the next-generation forum software that makes online discussion fun. It's simple, fast, and free. http://flarum.org/

Features

  • Lightweight & secure image
  • Based on Alpine Linux with nginx and PHP 7
  • Latest Flarum Beta (v0.1.0-beta.6)
  • MySQL/Mariadb driver
  • OPCache extension configured

Build-time variables

  • VERSION = Version of flarum (default: v0.1.0-beta.6)

### Ports

  • 8888

Volume

  • /flarum/app/assets : Flarum assets directory

Environment variables

Variable Description Type Default value
GID Flarum user id optional 991
UID Flarum group id optional 991
DEBUG Flarum debug mode optional false
FORUM_URL Forum URL required none
DB_HOST MariaDB instance ip/hostname optional mariadb
DB_USER MariaDB database username optional flarum
DB_NAME MariaDB database name optional flarum
DB_PASS MariaDB database password required none
DB_PREF Flarum tables prefix optional none

Installation

1 - Pull flarum image

# Pull from hub.docker.com :
docker pull mondedie/flarum

# or build it manually :
docker build -t mondedie/flarum https://github.com/mondediefr/flarum.git#master

2 - Docker-compose.yml

Adapt to your needs :

flarum:
  image: mondedie/flarum
  container_name: flarum
  links:
    - mariadb:mariadb
  environment:
    - FORUM_URL=https://forum.domain.tld
    - DB_PASS=xxxxxxxx
  volumes:
    - /mnt/docker/flarum:/flarum/app/assets

mariadb:
  image: mariadb:10.1
  container_name: mariadb
  volumes:
    - /mnt/docker/mysql/db:/var/lib/mysql
  environment:
    - MYSQL_ROOT_PASSWORD=xxxxxxxx
    - MYSQL_DATABASE=flarum
    - MYSQL_USER=flarum
    - MYSQL_PASSWORD=xxxxxxxx

4 - Reverse proxy setup

See : https://github.com/mondediefr/flarum/wiki/Reverse-proxy-example

5 - Done, congratulation ! 🎉

You can now run Flarum :

docker-compose up -d

Upgrade from beta 5

⚠️ Disable 3rd party extensions prior to upgrading.

docker pull mondedie/flarum && docker-compose up -d

Navigate to yourforum.com/admin, enter your database password and update.

flarum-update

Remove and restart your container :

docker-compose stop flarum
docker-compose rm flarum
docker-compose up -d

Install custom extensions

Flarum extensions list : https://packagist.org/search/?q=flarum-ext

Install an extension

docker exec -ti flarum extension require some/extension

Remove an extension

docker exec -ti flarum extension remove some/extension

List all extensions

docker exec -ti flarum extension list

Custom error pages

To use custom error pages, add your .html files in /mnt/docker/flarum/errors folder :

mkdir -p /mnt/docker/flarum/errors
touch 403.html 404.html 500.html 503.html
chown -R 991:991 /mnt/docker/flarum

Custom composer.json (experienced users)

Customize your own composer.json file in /mnt/docker/flarum/composer.custom.json, for example add some privates repositories like this :

# /mnt/docker/flarum/composer.custom.json
{
  "name": "flarum/flarum",
  "description": "Delightfully simple forum software.",
  [...]

  "repositories": [
    {
      "type": "package",
      "package": {
        "name": "xxxxx/flarum-ext-my-private-extension",
        "version": "dev-master",
        "type": "flarum-extension",
        "authors": [
          {
            "name": "Me",
            "email": "me@domain.tld"
          }
        ],
        "dist": {
          "url": "/flarum/app/assets/extensions/flarum-ext-my-private-extension",
          "type": "path",
          "reference": "master"
        },
        "require": {
          "flarum/core": "^0.1.0-beta.6"
        },
        "autoload": {
          "psr-4": {
            "xxx\\xxx\\": "src/"
          }
        },
        "extra": {
          "flarum-extension": {
            "title": "xxxxxx",
            "icon": {
              "name": "picture-o",
              "backgroundColor": "#2196f3",
              "color": "#fff"
            }
          }
        }
      }
    }
  ],
}

Screenshot

Installation

flarum-installation

Home page

flarum-home