Initial commit
This commit is contained in:
commit
c4bed9656d
8 changed files with 188 additions and 0 deletions
38
README.md
Normal file
38
README.md
Normal file
|
@ -0,0 +1,38 @@
|
|||
# Role : docker_paheko
|
||||
|
||||
|
||||
## Services fournis
|
||||
|
||||
Installation de paheko sur un serveur docker_host
|
||||
|
||||
|
||||
## Variables
|
||||
|
||||
Fournir les variables suivantes. Par exemple :
|
||||
|
||||
```yaml
|
||||
docker_paheko_fqdn: paheko.example.com
|
||||
docker_paheko_version: 1.2.4
|
||||
docker_paheko_data_dir: /data1
|
||||
docker_paheko_service_id: paheko
|
||||
docker_paheko_smtp_server: smtp.example.com
|
||||
docker_paheko_secret_key: ici_le_secret_key
|
||||
docker_paheko_max_file_size_mb: 8
|
||||
docker_paheko_quota_gb: 1
|
||||
```
|
||||
|
||||
| Option | Valeur par défaut | Description |
|
||||
|--------------------------------|-------------------|-------------------------------------------------------------------------------------------|
|
||||
| docker_paheko_fqdn | | Le nom de domaine pour lequel le service paheko répond |
|
||||
| docker_paheko_version | | La version de l'image docker paheko |
|
||||
| docker_paheko_data_dir | | L'emplacement dans lequel se trouvent les volumes de donnees docker pour le service |
|
||||
| docker_paheko_service_id | | Le nom de service souhaité : conditionne le nommage des volumes et le routage par traefik |
|
||||
| docker_paheko_smtp_server | | L'adresse du serveur smtp par lequel le service envoie les courriels |
|
||||
| docker_paheko_secret_key | | S'obtient avec `openssl rand -base64 40` |
|
||||
| docker_paheko_max_file_size_mb | | Taille max en Mo des fichiers déposables dans paheko |
|
||||
| docker_paheko_quota_gb | | Taille max en Go de l'instance paheko |
|
||||
|
||||
|
||||
## Premier démarrage dans paheko
|
||||
|
||||
Se connecter à paheko et enregistrer un premier utilisateur administrateur de l'instance paheko.
|
0
defaults/main.yml
Normal file
0
defaults/main.yml
Normal file
5
handlers/main.yml
Normal file
5
handlers/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
- name: docker-compose-up
|
||||
shell: |
|
||||
docker-compose up -d
|
||||
args:
|
||||
chdir: /opt/{{ docker_paheko_service_id }}/
|
8
meta/main.yml
Normal file
8
meta/main.yml
Normal file
|
@ -0,0 +1,8 @@
|
|||
galaxy_info:
|
||||
author: Olivier Navas
|
||||
description: Modèle d'installation Libretic pour paheko
|
||||
license: GPL-3.0-only
|
||||
min_ansible_version: 2.9
|
||||
galaxy_tags: []
|
||||
|
||||
dependencies: []
|
20
tasks/main.yml
Normal file
20
tasks/main.yml
Normal file
|
@ -0,0 +1,20 @@
|
|||
- name: docker directory
|
||||
file:
|
||||
path: /opt/{{ docker_paheko_service_id }}/
|
||||
state: directory
|
||||
|
||||
- name: docker data directory
|
||||
file:
|
||||
path: "{{ docker_paheko_data_dir }}/{{ docker_paheko_service_id }}/"
|
||||
state: directory
|
||||
register: _datadir
|
||||
|
||||
- name: prepare docker-compose.yml and files
|
||||
template:
|
||||
src: "{{ item }}"
|
||||
dest: /opt/{{ docker_paheko_service_id }}/
|
||||
with_items:
|
||||
- docker-compose.yml
|
||||
- config.local.php
|
||||
- php.ini
|
||||
notify: docker-compose-up
|
20
templates/config.local.php
Normal file
20
templates/config.local.php
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
namespace Garradin;
|
||||
|
||||
// Some random key of more than 30 characters
|
||||
// openssl rand -base64 40
|
||||
const SECRET_KEY = '{{ docker_paheko_secret_key }}';
|
||||
|
||||
// SMTP parameters
|
||||
const SMTP_HOST = '{{ docker_paheko_smtp_server }}';
|
||||
const SMTP_PORT = 25;
|
||||
const SMTP_SECURITY = 'NONE';
|
||||
|
||||
// Upgrades should be handled by new docker image version
|
||||
const ENABLE_UPGRADES = false;
|
||||
|
||||
// Storage quota
|
||||
const FILE_STORAGE_QUOTA = {{ docker_paheko_quota_gb }}*1024*1024*1024;
|
||||
|
||||
// Command line to use chromium to generate PDF documents
|
||||
const PDF_COMMAND = 'chromium --no-sandbox --headless --disable-dev-shm-usage --autoplay-policy=no-user-gesture-required --no-first-run --disable-gpu --disable-features=DefaultPassthroughCommandDecoder --use-fake-ui-for-media-stream --use-fake-device-for-media-stream --disable-sync --print-to-pdf=%2$s %1$s';
|
25
templates/docker-compose.yml
Normal file
25
templates/docker-compose.yml
Normal file
|
@ -0,0 +1,25 @@
|
|||
# {{ ansible_managed }}
|
||||
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
paheko:
|
||||
image: libretic/paheko:{{ docker_paheko_version }}
|
||||
restart: always
|
||||
volumes:
|
||||
- ./config.local.php:/var/www/paheko/config.local.php
|
||||
- ./php.ini:/usr/local/etc/php/php.ini
|
||||
- {{ docker_paheko_data_dir }}/{{ docker_paheko_service_id }}/data:/var/www/paheko/data
|
||||
- /var/www/paheko/data/plugins
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik"
|
||||
- "traefik.http.routers.{{ docker_paheko_service_id }}.entrypoints=web"
|
||||
- "traefik.http.routers.{{ docker_paheko_service_id }}.rule=Host(`{{ docker_paheko_fqdn }}`)"
|
||||
- "traefik.http.services.{{ docker_paheko_service_id }}.loadbalancer.server.port=80"
|
||||
networks:
|
||||
- traefik
|
||||
|
||||
networks:
|
||||
traefik:
|
||||
external: true
|
72
templates/php.ini
Normal file
72
templates/php.ini
Normal file
|
@ -0,0 +1,72 @@
|
|||
# from production php.ini
|
||||
[PHP]
|
||||
engine = On
|
||||
short_open_tag = Off
|
||||
precision = 14
|
||||
output_buffering = 4096
|
||||
zlib.output_compression = Off
|
||||
implicit_flush = Off
|
||||
unserialize_callback_func =
|
||||
serialize_precision = -1
|
||||
disable_functions =
|
||||
disable_classes =
|
||||
zend.enable_gc = On
|
||||
zend.exception_ignore_args = On
|
||||
expose_php = On
|
||||
max_execution_time = 30
|
||||
max_input_time = 60
|
||||
memory_limit = 128M
|
||||
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
log_errors_max_len = 1024
|
||||
ignore_repeated_errors = Off
|
||||
ignore_repeated_source = Off
|
||||
report_memleaks = On
|
||||
variables_order = "GPCS"
|
||||
request_order = "GP"
|
||||
register_argc_argv = Off
|
||||
auto_globals_jit = On
|
||||
post_max_size = {{ docker_paheko_max_file_size_mb }}M
|
||||
auto_prepend_file =
|
||||
auto_append_file =
|
||||
default_mimetype = "text/html"
|
||||
default_charset = "UTF-8"
|
||||
doc_root =
|
||||
user_dir =
|
||||
enable_dl = Off
|
||||
file_uploads = On
|
||||
upload_max_filesize = {{ docker_paheko_max_file_size_mb }}M
|
||||
max_file_uploads = 20
|
||||
allow_url_fopen = On
|
||||
allow_url_include = Off
|
||||
default_socket_timeout = 60
|
||||
[Session]
|
||||
session.save_handler = files
|
||||
session.use_strict_mode = 0
|
||||
session.use_cookies = 1
|
||||
session.use_only_cookies = 1
|
||||
session.name = PHPSESSID
|
||||
session.auto_start = 0
|
||||
session.cookie_lifetime = 0
|
||||
session.cookie_path = /
|
||||
session.cookie_domain =
|
||||
session.cookie_httponly =
|
||||
session.cookie_samesite =
|
||||
session.serialize_handler = php
|
||||
session.gc_probability = 1
|
||||
session.gc_divisor = 1000
|
||||
session.gc_maxlifetime = 1440
|
||||
session.referer_check =
|
||||
session.cache_limiter = nocache
|
||||
session.cache_expire = 180
|
||||
session.use_trans_sid = 0
|
||||
session.sid_length = 26
|
||||
session.trans_sid_tags = "a=href,area=href,frame=src,form="
|
||||
session.sid_bits_per_character = 5
|
||||
[Assertion]
|
||||
zend.assertions = -1
|
||||
[Tidy]
|
||||
tidy.clean_output = Off
|
||||
|
Loading…
Reference in a new issue