Initial commit
This commit is contained in:
commit
7140fba05d
6 changed files with 205 additions and 0 deletions
21
.htaccess
Normal file
21
.htaccess
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Disable multiviews (conflicts with /admin/plugin.php) and index (security)
|
||||
Options -MultiViews -Indexes
|
||||
DirectoryIndex disabled
|
||||
DirectoryIndex index.php index.html
|
||||
|
||||
# Prevents access to these urls
|
||||
<IfModule mod_alias.c>
|
||||
RedirectMatch 403 /include/
|
||||
RedirectMatch 403 /templates/
|
||||
RedirectMatch 403 ^/scripts/
|
||||
RedirectMatch 403 /data/
|
||||
RedirectMatch 403 /.*\.log
|
||||
RedirectMatch 403 /(README|VERSION|COPYING|Makefile|cron\.php)
|
||||
RedirectMatch 403 /config\.(.*)\.php
|
||||
RedirectMatch 403 /sous-domaine\.html
|
||||
RedirectMatch 403 _inc\.php
|
||||
</IfModule>
|
||||
|
||||
# Assumes a reverse proxy provides https
|
||||
SetEnv HTTPS "on"
|
||||
SetEnv HTTP_X_FORWARDED_PROTO "https"
|
43
Dockerfile
Normal file
43
Dockerfile
Normal file
|
@ -0,0 +1,43 @@
|
|||
FROM php:8.1.12-apache-bullseye
|
||||
LABEL Maintainer="Libretic"
|
||||
LABEL Description="Unofficial Docker image for Paheko."
|
||||
|
||||
ARG PAHEKO_VERSION
|
||||
ENV PAHEKO_VERSION=$PAHEKO_VERSION
|
||||
|
||||
ENV APACHE_DOCUMENT_ROOT /var/www/paheko/www
|
||||
|
||||
# Required PHP extensions and packages
|
||||
RUN apt-get update && \
|
||||
apt-get install -y libicu-dev zlib1g-dev libpng-dev libzip-dev libfreetype6-dev libjpeg62-turbo-dev chromium && \
|
||||
docker-php-ext-configure gd --with-freetype --with-jpeg && \
|
||||
docker-php-ext-install -j$(nproc) gd intl zip opcache
|
||||
|
||||
# Downloading and installing Paheko
|
||||
RUN cd /var/www && \
|
||||
curl -L -O https://fossil.kd2.org/paheko/uv/paheko-$PAHEKO_VERSION.tar.gz && \
|
||||
tar xzvf paheko-$PAHEKO_VERSION.tar.gz && \
|
||||
mv paheko-$PAHEKO_VERSION /var/www/paheko && \
|
||||
chown -R www-data: /var/www/paheko && \
|
||||
rm -f paheko-$PAHEKO_VERSION.tar.gz
|
||||
|
||||
# Downloading plugins
|
||||
RUN cd /var/www/paheko/data/plugins/ && \
|
||||
curl -L -O https://fossil.kd2.org/paheko-plugins/uv/stock_velos.tar.gz ; \
|
||||
curl -L -O https://fossil.kd2.org/paheko-plugins/uv/reservations.tar.gz ; \
|
||||
curl -L -O https://fossil.kd2.org/paheko-plugins/uv/webstats.tar.gz ; \
|
||||
curl -L -O https://fossil.kd2.org/paheko-plugins/uv/git_documents.tar.gz ; \
|
||||
curl -L -O https://fossil.kd2.org/paheko-plugins/uv/taima.tar.gz ; \
|
||||
curl -L -O https://fossil.kd2.org/paheko-plugins/uv/caisse.tar.gz ; \
|
||||
curl -L -O https://fossil.kd2.org/paheko-plugins/uv/helloasso.tar.gz ; \
|
||||
chown -R www-data: /var/www/paheko/data/plugins
|
||||
|
||||
# Configure apache
|
||||
RUN sed -i 's#/var/www/html#${APACHE_DOCUMENT_ROOT}#g' /etc/apache2/sites-enabled/000-default.conf
|
||||
|
||||
# Prepare .config dir for chromium
|
||||
RUN mkdir /.config && \
|
||||
chown -R www-data: /.config
|
||||
|
||||
# Prepare apache .htaccess
|
||||
COPY .htaccess /var/www/paheko/
|
113
README.md
Normal file
113
README.md
Normal file
|
@ -0,0 +1,113 @@
|
|||
# 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/olivier.navas/paheko_docker_image_builder), you can do the following.
|
||||
|
||||
|
||||
* Clone the repository
|
||||
|
||||
```
|
||||
git clone https://git.libretic.fr/olivier.navas/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.2.4:
|
||||
|
||||
```
|
||||
PAHEKO_VERSION=1.2.4
|
||||
```
|
||||
|
||||
* 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
|
||||
|
||||
* Example with traefik routing by fqdn, custom php.ini and custom paheko config:
|
||||
|
||||
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))
|
||||
|
||||
```
|
||||
version: '3.1'
|
||||
services:
|
||||
paheko:
|
||||
image: libretic/paheko:1.2.4
|
||||
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.
|
||||
|
||||
```
|
||||
version: '3.1'
|
||||
services:
|
||||
paheko:
|
||||
image: libretic/paheko:1.2.4
|
||||
restart: always
|
||||
volumes:
|
||||
- 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
|
||||
```
|
||||
|
||||
|
||||
## 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
|
5
build.sh
Executable file
5
build.sh
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
. version
|
||||
|
||||
docker build . -t libretic/paheko:$PAHEKO_VERSION --build-arg PAHEKO_VERSION=$PAHEKO_VERSION
|
22
docker-compose.yml
Normal file
22
docker-compose.yml
Normal file
|
@ -0,0 +1,22 @@
|
|||
version: '3.1'
|
||||
services:
|
||||
paheko:
|
||||
image: libretic/paheko:1.2.4
|
||||
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
|
1
version
Normal file
1
version
Normal file
|
@ -0,0 +1 @@
|
|||
PAHEKO_VERSION=1.2.4
|
Loading…
Reference in a new issue