# Paheko docker image builder Unofficial [Paheko](https://paheko.cloud/) docker image with plugins based on php official image with apache. ## How to build image If you choose to use image from [*Docker Hub*](https://hub.docker.com/r/libretic/paheko), you can skip to next section. If you prefer to build your own image with Dockerfile in [*Git repository*](https://git.libretic.fr/libretic/paheko_docker_image_builder), 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 version of paheko Content of version file for paheko version 1.3.7: ``` PAHEKO_VERSION=1.3.7 ``` * 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](https://git.libretic.fr/libretic/paheko_docker_image_builder) or our [ansible role to deploy paheko with this docker image](https://git.libretic.fr/libretic/ansible-role-docker_paheko). For an example of custom php.ini, see [php docker image](https://hub.docker.com/_/php). 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](https://github.com/traefik/traefik) and [traefik configuration](https://git.libretic.fr/libretic/ansible-role-docker_host)) ``` services: paheko: image: libretic/paheko:1.3.7 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.demogarradin.entrypoints=web" - "traefik.http.routers.demogarradin.rule=Host(`my.paheko.fqdn`)" - "traefik.http.services.demogarradin.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: libretic/paheko:1.3.7 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 ``` ## Change log * [2024-04-14] * Upgrade to Paheko version 1.3.7 * Changed base image to php:8.2.18-apache-bookworm ## Acknowledgements [Paheko](https://paheko.cloud/) is free (FOSS) software. Thanks to Paheko team! This builder relies on resources hosted on Paheko's fossil server : * [general installation page](https://fossil.kd2.org/paheko/wiki?name=Installation) in French