Commit initial

This commit is contained in:
Navas 2022-09-18 13:09:00 +02:00
commit b687f30459
6 changed files with 113 additions and 0 deletions

41
README.md Normal file
View file

@ -0,0 +1,41 @@
# Role : docker_collabora
## Services fournis
- main.yml : Installation de collabora sur un serveur docker_host
## Variables
Fournir les variables suivantes. Par exemple :
```yaml
docker_collabora_fqdn: collabora.example.com
docker_collabora_version: 1.2.3
docker_collabora_data_dir: /data1
docker_collabora_service_id: collabora
docker_collabora_wopi_fqdn: nextcloud.example.com
docker_collabora_admin_name: admin
docker_collabora_admin_pwd: mot_de_passe_admin
```
| Option | Valeur par défaut | Description |
|-----------------------------|-------------------|--------------------------------------------------------------------------------------------|
| docker_collabora_fqdn | | Le fqdn pour accéder à collabora |
| docker_collabora_version | | Version de l'image collabora |
| docker_collabora_data_dir | | L'emplacement dans lequel se trouvent les volumes de donnees docker pour le service |
| docker_collabora_service_id | | Le nom de service souhaité : conditionne le nommage des dossiers et le routage par traefik |
| docker_collabora_wopi_fqdn | | Le FQDN du serveur nextcloud d'où seront issues les connexions à collabora |
| docker_collabora_admin_name | | id de l'administrateur pour l'accès à l'interface d'admin collabora |
| docker_collabora_admin_pwd | | mot de passe de l'administrateur |
## Dans nextcloud
Installer l'application nextcloud office (collabora sans CODE intégré), et paramétrer l'adresse du serveur collabora.
## Interface d'administration
https://collabora.libretic.fr/browser/dist/admin/admin.html

13
defaults/main.yml Normal file
View file

@ -0,0 +1,13 @@
docker_collabora_db_name: collabora
docker_collabora_db_user: collabora
docker_collabora_default_pad_text: "Bienvenue sur Etherpad !\n\n\nCe bloc-notes est synchronisé à mesure que vous tapez du texte, de sorte que chaque personne qui voit cette page peut lire le même texte. Cela permet d'éditer un document de manière collaborative et naturelle.\n\n\nPour permettre à chaque participant de s'y retrouver, il est préférable d'indiquer son nom et sa couleur à droite.\n\n\nPour vous impliquer dans Etherpad, consultez https:\/\/collabora.org"
# 60 jours
docker_collabora_delete_after_delay: "5184000"
docker_collabora_delete_loop: "true"
docker_collabora_delete_loop_delay: "3600"
docker_collabora_delete_at_start: "true"
docker_collabora_delete_text: "Le contenu de ce bloc notes a été supprimé car il était plus ancien que la durée d'inactivité paramétrée"

5
handlers/main.yml Normal file
View file

@ -0,0 +1,5 @@
- name: docker-compose-up
shell: |
docker-compose up -d
args:
chdir: /opt/{{ docker_collabora_service_id }}/

8
meta/main.yml Normal file
View file

@ -0,0 +1,8 @@
galaxy_info:
author: Olivier Navas
description: Modèle d'installation Libretic pour collabora
license: GPL-3.0-only
min_ansible_version: 2.9
galaxy_tags: []
dependencies: []

17
tasks/main.yml Normal file
View file

@ -0,0 +1,17 @@
- name: docker directory
file:
path: /opt/{{ docker_collabora_service_id }}/
state: directory
- name: prepare docker-compose.yml
template:
src: "{{ item }}"
dest: /opt/{{ docker_collabora_service_id }}/
with_items:
- docker-compose.yml
notify: docker-compose-up

View file

@ -0,0 +1,29 @@
# {{ ansible_managed }}
version: '3.5'
services:
collabora:
image: collabora/code:{{ docker_collabora_version }}
restart: always
environment:
aliasgroup1: https://{{ docker_collabora_wopi_fqdn }}
username: "{{ docker_collabora_admin_name }}"
password: "{{ docker_collabora_admin_pwd }}"
extra_params: "--o:ssl.enable=false --o:ssl.termination=true"
cap_add:
- MKNOD
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik"
- "traefik.http.routers.{{ docker_collabora_service_id }}.entrypoints=web"
- "traefik.http.routers.{{ docker_collabora_service_id }}.rule=Host(`{{ docker_collabora_fqdn }}`)"
- "traefik.http.services.{{ docker_collabora_service_id }}.loadbalancer.server.port=9980"
networks:
- traefik
networks:
traefik:
external: true