Flarum ist eine wunderschöne und moderne Forum-Software. Die Installation per PHP Composer ist jedoch relativ anspruchsvoll. Packt man Flarum in einen Docker-Container, wird auf einmal alles viel einfacher. Dieser Beitrag zeigt, wie man Flarum unter Docker betreibt:
Flarum dockerized
Flarum benötigt MySQL bzw. MariaDB als Datenbank, was 2 Container im Verbund erfordert:
- Flarum samt Apache und PHP
- MariaDB
Dazu legen wir zuerst die folgende Verzeichnisstruktur an:
Docker benötigt diese Ordner um Änderungen in Flarum und der Datenbank persistent zu speichern.
Im gleichen Ordner wie unser “docker”-Verzeichnis erstellen wir eine Datei namens docker-compose.yml mit folgendem Inhalt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# Flarum 1.0.1 # # Runs Flarum with MariaDB # Full docs see https://github.com/crazy-max/docker-flarum # # Connect: # http://127.0.0.1:8000 # Usr: flarum # Pwd: flarum # # Add a Flarum extension: # docker compose exec flarum extension require <package> # # Remove a Flarum extension: # docker compose exec flarum extension remove <package> # # List Flarum exensions: # docker compose exec flarum extension list # # Run with # docker compose up -d # # (c)2021 Harald Schneider # version: "3.5" services: # --- MariaDB 10.5 # mysql: image: mariadb:10.5 container_name: flarum_db command: - "mysqld" - "--character-set-server=utf8mb4" - "--collation-server=utf8mb4_unicode_ci" volumes: - "./docker/mysql:/var/lib/mysql" ports: - '3306:3306' environment: - "TZ=CEST" - "DB_HOST=host.docker.internal" - "MYSQL_ALLOW_EMPTY_PASSWORD=yes" - "MYSQL_DATABASE=flarum" - "MYSQL_USER=flarum" - "MYSQL_PASSWORD=YOUR_PASSWORD_HERE" restart: unless-stopped # --- Flarum 1.0.0 R1 under PHP 7.4.19 # flarum: image: crazymax/flarum:latest container_name: flarum ports: - target: 8000 published: 8000 protocol: tcp depends_on: - mysql volumes: - "./docker/flarum/data:/data" environment: - "FLARUM_BASE_URL=http://127.0.0.1:8000" - "TZ=CEST" - "PUID=1000" - "PGID=1000" - "LISTEN_IPV6=false" - "DB_HOST=mysql" - "DB_PORT=3306" - "DB_NAME=flarum" - "DB_USER=flarum" - "DB_PASSWORD=YOUR_PASSWORD_HERE" - "DB_TIMEOUT=10" - "MEMORY_LIMIT=256M" - "UPLOAD_MAX_SIZE=16M" - "OPCACHE_MEM_SIZE=128" - "REAL_IP_FROM=0.0.0.0/32" - "REAL_IP_HEADER=X-Forwarded-For" - "LOG_IP_VAR=remote_addr" restart: unless-stopped |
Danach starten wir den Container-Verbund mit
1 |
docker compose up -d |
und melden uns über die URL http://127.0.0.1:8000 mit Usernamen “flarum” und Passwort “flarum” am Forum an. Beenden können wir das Ganze jederzeit mit
1 |
docker compose down |
Flarum Extensions im Docker Container managen
Der Container kommt mit einem Script über das wir Flarum Extensions installieren, entfernen und auflisten können. Das Script wird dazu außerhalb von Docker wie folgt aufgerufen:
1 |
docker compose exec flarum extension require <package> |
Eine Flarum Extension deinstallieren:
1 |
docker compose exec flarum extension remove <package> |
Alle installierten Flarum Extensions auflisten:
1 |
docker compose exec flarum extension list |
Viel Spaß mit Docker und Flarum :-)