|
|
||
|---|---|---|
| .htaccess | ||
| 000-default.conf | ||
| build.sh | ||
| config.local.php.example | ||
| docker-compose.yml | ||
| Dockerfile | ||
| push.sh | ||
| pushlatest.sh | ||
| pushreadme.sh | ||
| README.md | ||
| version | ||
Paheko docker image
Official Paheko docker image with plugins, based on php official image with apache.
Libretic maintains this docker image in collaboration with Paheko.
How to build image
If you choose to use image from Docker Hub, you can skip to next section.
If you prefer to build your own image with Dockerfile in Git repository, you can do the following.
- Clone the repository
git clone https://git.libretic.fr/libretic/paheko_docker_image_builder
cd paheko_docker_image_builder
- Edit version file to choose your versions of paheko and of php base image. Here is content of version file for latest paheko image version:
PHP_VERSION=8.5.7-apache-trixie
PAHEKO_VERSION=1.3.21
- Build and tag the image
./build.sh
At the end of the build process you can check that you have a docker image for paheko tagged with chosen version:
docker image ls | grep paheko
Adapt docker-compose.yml to fit your needs
For an example of custom paheko config see our builder git repository or our ansible role to deploy paheko with this docker image.
For an example of custom php.ini, see php docker image. You may have to adjust post_max_size and upload_max_filesize to fit your needs.
- Example with traefik routing by fqdn:
This example assumes that my.paheko.fqdn is resolved to the address of a reverse proxy that serves https and forwards requests to traefik container on port named "web" (see: traefik and traefik configuration)
services:
paheko:
image: paheko/paheko
restart: always
volumes:
- ./config.local.php:/var/www/paheko/config.local.php
- ./php.ini:/usr/local/etc/php/php.ini
- pahekodata:/var/www/paheko/data
- /var/www/paheko/data/plugins
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik"
- "traefik.http.routers.myrouter.entrypoints=web"
- "traefik.http.routers.myrouter.rule=Host(`my.paheko.fqdn`)"
- "traefik.http.services.myrouter.loadbalancer.server.port=80"
networks:
- traefik
networks:
traefik:
external: true
- Example with paheko container listening on port 8080:
This example assumes that my.paheko.fqdn is resolved to the address of a reverse proxy that serves https and forwards requests to port 8080 on the host running paheko container.
services:
paheko:
image: paheko/paheko
restart: always
volumes:
- ./config.local.php:/var/www/paheko/config.local.php
- ./php.ini:/usr/local/etc/php/php.ini
- pahekodata:/var/www/paheko/data
- /var/www/paheko/data/plugins
ports:
- 8080:80
Run the container
- To start the container
docker compose up -d
Then open https://my.paheko.fqdn in your browser.
- To stop the container
docker compose down
Scheduled tasks
Though this image can't be really considered slim, mainly because of apache based php image, for simplicity of use, and of Paheko dependencies such as Chromium, it respects the 1 process per container principle.
Paheko relies on externally scheduled php tasks for email management and this scheduler is not included in this image. You may need to add an external scheduler if you want your Paheko instance to send emails.
Docker_scheduler is a way to achieve this. Here is an ansible role to install it.
Once docker_scheduler is installed on your docker host, you can configure tasks to execute in your Paheko container by adding labels on it:
services:
paheko:
image: paheko/paheko
[...]
your pakeho service configuration here
[...]
labels:
scheduler.enable: "true"
scheduler.emails.schedule: "* * * * *" # send mails in queue
scheduler.emails.command: "php /var/www/paheko/bin/paheko queue run --force"
scheduler.reminders.schedule: "0 6 * * *" # daily tasks (reminders…)
scheduler.reminders.command: "php /var/www/paheko/bin/paheko cron"
You can of course choose another way to execute scheduled tasks.
Change log
-
[2026-06-28]
- Upgrade to Paheko version 1.3.21
- Changed base image to php:8.5.7-apache-trixie
-
[2026-05-14]
- Upgrade to Paheko version 1.3.20
- Changed base image to php:8.5.6-apache-trixie
-
[2026-02-07]
- Upgrade to Paheko version 1.3.19.1
- Changed base image to php:8.5.2-apache-trixie
-
[2025-12-22]
- Upgrade to Paheko version 1.3.18
- Changed base image to php:8.5.1-apache-trixie
- Removed opcache since included in php:8.5
-
[2025-11-06]
- Upgrade to Paheko version 1.3.17.1
- Changed base image to php:8.3.27-apache-trixie
-
[2025-10-19]
- Upgrade to Paheko version 1.3.16
- Changed base image to php:8.3.26-apache-trixie
-
[2025-05-16]
- Upgrade to Paheko version 1.3.15
-
[2025-05-03]
- Upgrade to Paheko version 1.3.14
- Changed base image to php:8.3.20-apache-bookworm
- Added support of webp format in php-gd
- Added calendar php extension required for excel export format
-
[2025-02-09]
- Upgrade to Paheko version 1.3.13
- Changed base image to php:8.3.16-apache-bookworm
-
[2024-10-08]
- Upgrade to Paheko version 1.3.12
- Changed base image to php:8.3.12-apache-bookworm
-
[2024-08-13]
- Upgrade to Paheko version 1.3.11
-
[2024-06-07]
- Upgrade to Paheko version 1.3.10
-
[2024-05-20]
- Upgrade to Paheko version 1.3.9
- Main hub.docker.com repository migrated from libretic/paheko to paheko/paheko
- Changed base image to php:8.3.7-apache-bookworm
-
[2024-04-23]
- Upgrade to Paheko version 1.3.8
-
[2024-04-14]
- Upgrade to Paheko version 1.3.7
- Changed base image to php:8.2.18-apache-bookworm
License
Paheko is free (FOSS) software, licensed under AGPL v3
This builder relies on resources hosted on Paheko's fossil server :
- general installation page in French