{"id":15028622,"url":"https://github.com/rikodev/flarum-docker","last_synced_at":"2025-05-14T01:31:17.760Z","repository":{"id":45552116,"uuid":"513808772","full_name":"RikoDEV/flarum-docker","owner":"RikoDEV","description":"🐳 Flarum Docker image","archived":false,"fork":false,"pushed_at":"2024-01-19T19:23:46.000Z","size":73,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-13T13:01:56.797Z","etag":null,"topics":["docker","docker-flarum","docker-image","flarum","forum","php","php81","php82"],"latest_commit_sha":null,"homepage":"https://github.com/RikoDEV/flarum-docker/pkgs/container/flarum-docker","language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RikoDEV.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-14T07:51:06.000Z","updated_at":"2024-02-24T05:06:43.000Z","dependencies_parsed_at":"2024-01-19T20:34:36.633Z","dependency_job_id":"c8ff3f4a-83f6-447c-be06-2c99eeb2d2b8","html_url":"https://github.com/RikoDEV/flarum-docker","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RikoDEV%2Fflarum-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RikoDEV%2Fflarum-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RikoDEV%2Fflarum-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RikoDEV%2Fflarum-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RikoDEV","download_url":"https://codeload.github.com/RikoDEV/flarum-docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225269024,"owners_count":17447451,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-flarum","docker-image","flarum","forum","php","php81","php82"],"created_at":"2024-09-24T20:08:45.997Z","updated_at":"2024-11-18T23:43:52.742Z","avatar_url":"https://github.com/RikoDEV.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"![flarum docker image](https://user-images.githubusercontent.com/18230443/209180268-3f4aa1dc-0a6a-4500-a1ff-d1b0164e70ab.jpg)\n##### Huge thanks to [mondedie/flarum](https://github.com/mondediefr/docker-flarum) for creating base docker image.\n\n[![latest](https://github.com/RikoDEV/flarum-docker/actions/workflows/latest.yml/badge.svg)](https://github.com/RikoDEV/flarum-docker/actions/workflows/latest.yml)\n[![php 8.2](https://img.shields.io/badge/PHP-8.2-blue)](https://github.com/RikoDEV/flarum-docker)\n\n### Tag available\n\n - **latest** [(Dockerfile)](https://github.com/RikoDEV/flarum-docker/blob/master/Dockerfile)\n\n### Features\n\n- Multi-platform image: `linux/386`, `linux/amd64`, `linux/arm/v6`, `linux/arm/v7`, `linux/arm64`\n- Lightweight \u0026 secure image\n- Based on Alpine Linux 3.18\n- **nginx** and **PHP 8.2**\n- Latest [Flarum Framework](https://github.com/flarum/framework) (v1.8.5)\n- MySQL/Mariadb driver\n- OPCache extension configured\n\n### Build-time variables\n\n- **VERSION** = Version of [flarum/flarum](https://github.com/flarum/flarum) skeleton (default: *v1.8.5*)\n\n### Ports\n\n- Default: **8888** (configurable)\n\n### Volume\n\n- **/flarum/app/extensions** : Flarum extension directory\n- **/flarum/app/public/assets** : Flarum assets directory\n- **/flarum/app/storage/logs** : Flarum logs directory\n- **/etc/nginx/flarum** : Nginx location directory\n\n### Environment variables\n\n| Variable | Description | Type | Default value |\n| -------- | ----------- | ---- | ------------- |\n| **UID** | Flarum user id | *optional* | 991\n| **GID** | Flarum group id | *optional* | 991\n| **DEBUG** | Flarum debug mode | *optional* | false\n| **FORUM_URL** | Forum URL | **required** | none\n| **DB_HOST** | MariaDB instance ip/hostname | *optional* | mariadb\n| **DB_USER** | MariaDB database username | *optional* | flarum\n| **DB_NAME** | MariaDB database name | *optional* | flarum\n| **DB_PASS** | MariaDB database password | **required** | none\n| **DB_PREF** | Flarum tables prefix | *optional* | none\n| **DB_PORT** | MariaDB database port | *optional* | 3306\n| **FLARUM_PORT** | Port to run Flarum on inside the container | *optional* | 8888\n| **UPLOAD_MAX_SIZE** | The maximum size of an uploaded file | *optional* | 50M\n| **PHP_MEMORY_LIMIT** | PHP memory limit | *optional* | 128M |\n| **OPCACHE_MEMORY_LIMIT** | OPcache memory size in megabytes | *optional* | 128\n| **LOG_TO_STDOUT** | Enable nginx and php error logs to stdout | *optional* | false\n| **GITHUB_TOKEN_AUTH** | Github token to download private extensions | *optional* | false\n| **PHP_EXTENSIONS** | Install additional php extensions | *optional* | none\n\n### Required environment variable for first installation\n\n| Variable | Description | Type | Default value |\n| -------- | ----------- | ---- | ------------- |\n| **FLARUM_ADMIN_USER** | Name of your user admin | **required** | none\n| **FLARUM_ADMIN_PASS** | User admin password | **required** | none\n| **FLARUM_ADMIN_MAIL** | User admin adress mail | **required** | none\n| **FLARUM_TITLE** | Set a name of your flarum | *optional* | Docker-Flarum\n\n## Installation\n\n#### 1 - Pull flarum image\n\n```bash\n# Pull from hub.docker.com :\ndocker pull ghcr.io/rikodev/flarum-docker:latest\n\n# or build it manually :\ndocker build -t rikodev/flarum-docker:latest https://github.com/rikodev/flarum-docker.git\n```\n\n#### 2 - Docker-compose.yml\n\n```yml\nversion: \"3\"\n\nservices:\n  flarum:\n    image: ghcr.io/rikodev/flarum-docker:latest\n    container_name: flarum\n    env_file:\n      - /mnt/docker/flarum/flarum.env\n    volumes:\n      - /mnt/docker/flarum/assets:/flarum/app/public/assets\n      - /mnt/docker/flarum/extensions:/flarum/app/extensions\n      - /mnt/docker/flarum/storage/logs:/flarum/app/storage/logs\n      - /mnt/docker/flarum/nginx:/etc/nginx/flarum\n    ports:\n      - 80:8888\n    depends_on:\n      - mariadb\n\n  mariadb:\n    image: mariadb:10.6\n    container_name: mariadb\n    environment:\n      - MYSQL_ROOT_PASSWORD=xxxxxxxxxx\n      - MYSQL_DATABASE=flarum\n      - MYSQL_USER=flarum\n      - MYSQL_PASSWORD=xxxxxxxxxx\n    volumes:\n      - /mnt/docker/mysql/db:/var/lib/mysql\n```\n\n#### 3 - Run it\n\nYou need a reverse proxy to access flarum, this is not described here. You can use the solution of your choice (Traefik, Nginx, Apache, Haproxy, Caddy, H2O...etc).\n\nCreate a environment file (see docker-compose: /mnt/docker/flarum/flarum.env [here](https://github.com/RikoDEV/flarum-docker#2---docker-composeyml))\n\n```\n# vi /mnt/docker/flarum/flarum.env\n\nDEBUG=false\nFORUM_URL=http://domain.tld\n\n# Database configuration\nDB_HOST=mariadb\nDB_NAME=flarum\nDB_USER=flarum\nDB_PASS=xxxxxxxxxx\nDB_PREF=flarum_\nDB_PORT=3306\n\n# User admin flarum (environment variable for first installation)\n# /!\\ admin password must contain at least 8 characters /!\\\nFLARUM_ADMIN_USER=admin\nFLARUM_ADMIN_PASS=xxxxxxxxxx\nFLARUM_ADMIN_MAIL=admin@domain.tld\nFLARUM_TITLE=Test flarum\n```\n\nRun your docker-compose\n\n```sh\ndocker-compose up -d mariadb\n# Wait a moment for the creation of the database\ndocker-compose up -d flarum\n```\n\n* :warning: Your admin password must contain at least **8 characters** (FLARUM_ADMIN_PASS).\n* 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.\n\n![flarum-home](http://i.imgur.com/6kH9iTV.png)\n\n### Install additional php extensions\n\n```yml\nversion: \"3\"\n\nservices:\n  flarum:\n    image: ghcr.io/rikodev/flarum-docker:latest\n    container_name: flarum\n    environment:\n      - PHP_EXTENSIONS=gmp session brotli\n    volumes:\n      - /mnt/docker/flarum/assets:/flarum/app/public/assets\n      - /mnt/docker/flarum/extensions:/flarum/app/extensions\n      - /mnt/docker/flarum/storage/logs:/flarum/app/storage/logs\n      - /mnt/docker/flarum/nginx:/etc/nginx/flarum\n```\n\nThis example install php82-gmp php82-session and php82-brotli with apk  \nYou can find a php extension here https://pkgs.alpinelinux.org/packages?name=php8-*\u0026branch=v3.13\u0026arch=x86_64\n\n### Install custom extensions\n\n**Flarum extensions list:** https://extiverse.com/\n\n#### Install an extension\n\n```sh\ndocker exec -ti flarum extension require some/extension\n```\n\n#### Remove an extension\n\n```sh\ndocker exec -ti flarum extension remove some/extension\n```\n\n#### List all extensions\n\n```sh\ndocker exec -ti flarum extension list\n```\n\n### Custom vhost flarum nginx\n\nFile to change the vhost flarum `/etc/nginx/flarum/custom-vhost-flarum.conf`  \nTo use file custom-vhost-flarum.conf add volume `/etc/nginx/flarum`\nCreate file in `/mnt/docker/flarum/nginx/custom-vhost-flarum.conf`\n\n```nginx\n# Example of custom vhost flarum for nginx\n# fix nginx issue for fof/sitemap (https://github.com/FriendsOfFlarum/sitemap)\n\nlocation = /sitemap.xml {\n  try_files $uri $uri/ /index.php?$query_string;\n}\n```\n\n### Custom composer repositories\n\nTo use the composer repository system, add your repo name and json representation in `/mnt/docker/flarum/extensions/composer.repositories.txt`:\n\n```\nmy_private_repo|{\"type\":\"path\",\"url\":\"extensions/*/\"}\nmy_public_repo|{\"type\":\"vcs\",\"url\":\"https://github.com/my/repo\"}\n```\n\nExample for a private repository in github\n\nAdd this in `/mnt/docker/flarum/extensions/composer.repositories.txt`\n```\nusername|{\"type\":\"vcs\",\"url\":\"https://github.com/username/my-private-repo\"}\n```\n\nCreate a token in github with full control of privates repository  \nhttps://github.com/settings/tokens\n\nAdd your github token in var environment\n```\nGITHUB_TOKEN_AUTH=XXXXXXXXXXXXXXX\n```\n\nAdd your repo in the list file `/mnt/docker/flarum/extensions/list`\n```\nusername/my-private-repo:0.1.0\n```\n\nhttps://getcomposer.org/doc/03-cli.md#modifying-repositories\n\n### Guide for upgrade your flarum container\n\nSee the instructions [here](https://github.com/mondediefr/docker-flarum/blob/master/UPGRADE.md)\n\n## License\n\nDocker image [rikodev/flarum-docker](https://github.com/RikoDEV/flarum-docker/pkgs/container/flarum-docker) is released under [MIT License](https://github.com/RikoDEV/flarum-docker/blob/master/LICENSE).\n\nThe embedded [Flarum software](https://github.com/flarum/) is released under [MIT License](https://github.com/flarum/flarum/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frikodev%2Fflarum-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frikodev%2Fflarum-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frikodev%2Fflarum-docker/lists"}