tiredofit / docker-flarum

Dockerized web based forum software
MIT License
4 stars 3 forks source link
alpine docker flarum forums

github.com/tiredofit/docker-flarum

GitHub release Build Status Docker Stars Docker Pulls Become a sponsor Paypal Donate

About

This will build a Docker Image for Flarum. A web based discussion forum. It will:

Maintainer

Table of Contents

Prerequisites and Assumptions

Installation

Build from Source

Clone this repository and build the image with docker build <arguments> (imagename) .

Prebuilt Images

Builds of the image are available on Docker Hub and is the recommended method of installation.

docker pull tiredofit/flarum:(imagetag)

The following image tags are available along with their tagged release based on what's written in the Changelog:

PHP Version OS Tag
8.1.x Alpine :latest

Multi Architecture

Images are built primarily for amd64 architecture, and may also include builds for arm/v7, arm64 and others. These variants are all unsupported. Consider sponsoring my work so that I can work with various hardware. To see if this image supports multiple architecures, type docker manifest (image):(tag)

Configuration

Quick Start

Persistent Storage

The following directories are used for configuration and can be mapped for persistent storage.

Directory Description
/data Persistent Storage
/www/logs Nginx and php-fpm logfiles

Environment Variables

Base Images used

This image relies on an Alpine Linux base image that relies on an init system for added capabilities. Outgoing SMTP capabilities are handlded via msmtp. Individual container performance monitoring is performed by zabbix-agent. Additional tools include: bash,curl,less,logrotate,nano,vim.

Be sure to view the following repositories to understand all the customizable options:

Image Description
OS Base Customized Image based on Alpine Linux
Nginx Nginx webserver
PHP-FPM PHP Interpreter
Parameter Description Default
ADMIN_EMAIL Email address for the Administrator - Needed to run
ADMIN_USER Username for the Administrator admin
ADMIN_PASS Password for the Administrator - Needed to run
ADMIN_PATH What folder to access admin panel admin
API_PATH What folder to access API api
DB_HOST MariaDB external container hostname (e.g. flarum-db)
DB_NAME MariaDB database name i.e. (e.g. flarum)
DB_USER MariaDB username for database (e.g. flarum)
DB_PASS MariaDB password for database (e.g. userpassword)
DB_PREFIX MariaDB Prefix for DB_NAME flarum_
EXTENSIONS_AUTO_UPDATE Automatically update extensions on container startup TRUE / FALSE TRUE
SITE_TITLE The title of the Website Docker Flarum
SITE_URL The Full site URL of the installation e.g. flarum.example.com - Required for Install

Maintenance

Shell Access

For debugging and maintenance purposes you may want access the containers shell.

docker exec -it (whatever your container name is) bash

Installing Plugins and Extensions

Example:

[/data/flarum] 1 $ cd data
[/data/flarum/data] $ ls
assets  composer.json  extensions  storage
[/data/flarum/data] $ cd extensions/
[/data/flarum/data/extensions] $ ls
list
[/data/flarum/data/extensions] $ cat list
flagrow/upload
michaelbelgium/flarum-discussion-views
[/data/flarum/data/extensions] $

Alternatively, if you wish to install an extension while the container is running without restarting, you can use the tool located in /usr/sbin/extension-tool

Syntax is as follows:

Usage:
  extension-tool {install|remove|update} {packagename}
  extension-tool {install|remove|update} {packagename} --debug
  extension-tool -h|--help

For example, if you wished to install fof/drafts then here is a command to do it from your host:

docker exec -it (yourcontainername) extension-tool install fof/drafts

The rest of the options are self explanatory.

Support

These images were built to serve a specific need in a production environment and gradually have had more functionality added based on requests from the community.

Usage

Feature Requests

Updates

License

MIT. See LICENSE for more details.

Maintenance

Shell Access

For debugging and maintenance purposes you may want access the containers shell.

docker exec -it (whatever your container name is e.g. flarum) bash

References