docker-flarum/README.md

211 lines
5.2 KiB
Markdown
Raw Normal View History

2016-12-11 01:35:16 -05:00
# mondedie/docker-flarum
2016-07-17 05:35:13 -04:00
![logo](https://i.imgur.com/Bjrtbsc.png "logo")
### What is this ?
2016-07-18 02:35:38 -04:00
Flarum is the next-generation forum software that makes online discussion fun. It's simple, fast, and free. http://flarum.org/
2016-07-17 05:35:13 -04:00
### Features
2016-07-18 02:35:38 -04:00
- Lightweight & secure image
- Based on Alpine Linux with **nginx** and **PHP 7**
2018-01-14 05:34:42 -05:00
- Latest Flarum Beta (v0.1.0-beta.7.1)
2016-07-17 05:35:13 -04:00
- MySQL/Mariadb driver
2016-07-18 02:35:38 -04:00
- OPCache extension configured
2016-07-17 05:35:13 -04:00
### Build-time variables
2018-06-22 02:58:40 -04:00
- **VERSION** = Version of flarum (default: *v0.1.0-beta.7*)
2016-07-17 05:35:13 -04:00
### Ports
2016-09-25 05:27:13 -04:00
- **8888**
### Volume
- **/flarum/app/assets** : Flarum assets directory
- **/flarum/app/extensions** : Flarum extension directory
2016-09-25 05:27:13 -04:00
2016-07-17 05:35:13 -04:00
### Environment variables
2016-07-18 02:35:38 -04:00
| Variable | Description | Type | Default value |
| -------- | ----------- | ---- | ------------- |
2016-12-11 01:35:16 -05:00
| **UID** | Flarum user id | *optional* | 991
| **GID** | Flarum group id | *optional* | 991
2016-08-08 02:09:01 -04:00
| **DEBUG** | Flarum debug mode | *optional* | false
2016-07-18 02:35:38 -04:00
| **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
2016-10-28 13:29:42 -04:00
| **DB_PREF** | Flarum tables prefix | *optional* | none
| **UPLOAD_MAX_SIZE** | The maximum size of an uploaded file | *optional* | 50M
| **PHP_MEMORY_LIMIT** | PHP memory limit | *optional* | 128M |
| **OPCACHE_MEMORY_LIMIT** | OPcache memory size in megabytes | *optional* | 128
2018-06-22 02:58:40 -04:00
| **LOG_TO_STDOUT** | Enable web server logs to stdout | *optional* | false
2016-07-17 05:35:13 -04:00
2016-07-18 02:35:38 -04:00
## Installation
#### 1 - Pull flarum image
2016-07-18 01:34:39 -04:00
2018-01-30 15:35:42 -05:00
```bash
2016-10-23 17:18:57 -04:00
# Pull from hub.docker.com :
2018-01-14 05:34:42 -05:00
docker pull mondedie/docker-flarum:0.1.0-beta.7.1-stable
2016-10-23 17:18:57 -04:00
# or build it manually :
2016-12-11 01:35:16 -05:00
docker build -t mondedie/docker-flarum https://github.com/mondediefr/flarum.git#master
2016-07-18 02:35:38 -04:00
```
2018-01-30 15:35:42 -05:00
#### 2 - Docker-compose.yml example
This is an Out-of-box setup example, adapt to your needs :
```yml
version: "3"
2016-07-17 05:35:13 -04:00
2018-01-30 15:35:42 -05:00
services:
flarum:
image: mondedie/docker-flarum:0.1.0-beta.7.1-stable
container_name: flarum
labels:
- traefik.enable=true
- traefik.backend.port=8888
- traefik.frontend.rule=Host:flarum.local
environment:
- FORUM_URL=http://flarum.local
- DB_PASS=xxxxxx
volumes:
- /mnt/docker/flarum/assets:/flarum/app/assets
- /mnt/docker/flarum/extensions:/flarum/app/extensions
depends_on:
- mariadb
2016-07-17 05:35:13 -04:00
2018-01-30 15:35:42 -05:00
mariadb:
image: mariadb:10.1
container_name: mariadb
environment:
- MYSQL_ROOT_PASSWORD=xxxxxx
- MYSQL_DATABASE=flarum
- MYSQL_USER=flarum
- MYSQL_PASSWORD=xxxxxx
volumes:
- /mnt/docker/mysql/db:/var/lib/mysql
traefik:
image: traefik
container_name: traefik
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /mnt/docker/traefik.toml:/traefik.toml:ro
2016-07-17 05:35:13 -04:00
```
2018-01-30 15:35:42 -05:00
```toml
# /mnt/docker/traefik.toml
defaultEntryPoints = ["http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "local"
watch = true
exposedbydefault = false
2016-07-17 05:35:13 -04:00
```
2018-01-30 15:35:42 -05:00
```bash
# /etc/hosts
2016-07-18 02:35:38 -04:00
2018-01-30 15:35:42 -05:00
127.0.0.1 flarum.local
```
2016-07-18 02:35:38 -04:00
2018-01-30 15:35:42 -05:00
#### 3 - Run it
2016-07-18 02:35:38 -04:00
You can now run Flarum :
2016-07-17 05:35:13 -04:00
```
docker-compose up -d
```
2018-01-30 15:35:42 -05:00
And open http://flarum.local and fill out the installation form :
* Your admin password must contain at least **8 characters**.
* You can't use MariaDB **10.2** or **10.3** for the moment. More information on this issue [here](https://github.com/flarum/core/issues/1211).
* If you get an error 500 with _Something went wrong_ message, switch the `DEBUG` environment variable to `true` to see the actual error message in your browser.
![flarum-installation](http://i.imgur.com/e3Hscp4.png)
Click on **Install Flarum** and after few seconds the forum homepage should appear.
![flarum-home](http://i.imgur.com/6kH9iTV.png)
2017-07-22 03:45:12 -04:00
### Upgrade from v0.1.0-beta.6
2016-10-24 17:23:29 -04:00
:warning: Disable 3rd party extensions prior to upgrading.
```
2018-01-14 05:34:42 -05:00
docker pull mondedie/docker-flarum:0.1.0-beta.7.1-stable && docker-compose up -d
2016-10-24 17:23:29 -04:00
```
Navigate to `yourforum.com/admin`, enter your database password and update.
![flarum-update](https://images.mondedie.fr/udl8j4Ue/PueJSigV.png)
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
```
2016-10-29 13:36:42 -04:00
### Custom error pages
To use custom error pages, add your .html files in `/mnt/docker/flarum/assets/errors` folder :
2016-10-29 13:36:42 -04:00
2018-01-30 15:35:42 -05:00
```bash
mkdir -p /mnt/docker/flarum/assets/errors
2016-10-29 13:36:42 -04:00
touch 403.html 404.html 500.html 503.html
chown -R 991:991 /mnt/docker/flarum
```
### Custom composer repositories
To use the composer repository system, add your repo name and json representation in `/mnt/docker/flarum/extensions/composer.repositories.txt` :
```
my_private_repo|{"type":"path","url":"extensions/*/"}
my_public_repo|{"type":"vcs","url":"https://github.com/my/repo"}
```
https://getcomposer.org/doc/03-cli.md#modifying-repositories
2016-10-24 17:23:29 -04:00