Compare commits

...
Sign in to create a new pull request.

2 commits

4 changed files with 34 additions and 25 deletions

View file

@ -26,13 +26,16 @@ Requirements
Role Variables
--------------
| Variable | Description | Default |
| --------------------------- | ------------------------------------------------------------------------------- | ------------------ |
| docker_user | The user who is going to manage/run the Docker Compose services | deploy |
| collabora_virtual_host | The host under which CODE is available from the outside (e.g. collabora.example.org) | localhost |
| collabora_domain_regex_pattern | A regular expression to match hosts that should be allowed to access CODE | localhost |
| collabora_admin_user | Used to access to the Admin UI: https://<code-server>/loleaflet/dist/admin/admin.html | |
| collabora_admin_password | | |
| Variable | Description | Default |
| --------------------------- | ------------------------------------------------------------------------------- | ------------------ |
| collabora_install_user | The user who is going to manage/run the Docker Compose services | {{ ansible_user }} |
| collabora_install_path | The location where the service should be deployed | /home/{{ collabora_install_user }} |
| collabora_multitenant_label | A label (unique accross all instances on this host) identifying the tenant | |
| collabora_virtual_host | The host under which CODE is available from the outside (e.g. collabora.example.org) | localhost |
| collabora_exposed_port | The port under which the Collabora instance is available | 9980 |
| collabora_domain_regex_pattern | A regular expression to match hosts that should be allowed to access CODE | localhost |
| collabora_admin_user | Used to access to the Admin UI: https://<code-server>/loleaflet/dist/admin/admin.html | |
| collabora_admin_password | | |
Dependencies
------------

View file

@ -1,7 +1,11 @@
---
# defaults file for Collabora Online
docker_user: deploy
collabora_install_user: '{{ ansible_user }}' # This user must be present on the host
collabora_install_path: '/home/{{ collabora_install_user }}'
collabora_multitenant_label:
collabora_exposed_port: 9980
collabora_virtual_host: localhost
collabora_public_url: http://{{ collabora_virtual_host }}
collabora_domain_regex_pattern: localhost
# Internal variables
collabora_multitenant_postfix: "{{ '_' + collabora_multitenant_label if (collabora_multitenant_label) else '' }}"

View file

@ -2,23 +2,23 @@
# tasks file for Collabora Online
- name: Ensure Collabora Online config directory exists
file:
path: /home/{{ docker_user }}/collabora-online
path: "{{ collabora_install_path }}/collabora-online"
state: directory
owner: '{{ docker_user }}'
group: '{{ docker_user }}'
owner: '{{ collabora_install_user }}'
group: '{{ collabora_install_user }}'
tags: config
- name: Provide docker-compose.yml
template:
src: templates/docker-compose.collabora-online.yml.j2
dest: /home/{{ docker_user }}/collabora-online/docker-compose.yml
owner: "{{ docker_user }}"
group: "{{ docker_user }}"
dest: "{{ collabora_install_path }}/collabora-online/docker-compose.yml"
owner: "{{ collabora_install_user }}"
group: "{{ collabora_install_user }}"
mode: '0644'
tags: config
- name: Output docker-compose.yml
shell: cat /home/{{ docker_user }}/collabora-online/docker-compose.yml
shell: cat {{ collabora_install_path }}/collabora-online/docker-compose.yml
register: output
tags: config
@ -28,21 +28,21 @@
- name: Provide Collabora env vars
template:
src: templates/env.collabora-online.j2
dest: /home/{{ docker_user }}/collabora-online/.env
owner: "{{ docker_user }}"
group: "{{ docker_user }}"
dest: "{{ collabora_install_path }}/collabora-online/.env"
owner: "{{ collabora_install_user }}"
group: "{{ collabora_install_user }}"
mode: '0640'
tags: config
- name: "docker-compose: Teardown existing Collabora service"
docker_compose:
project_src: "/home/{{ docker_user }}/collabora-online/"
project_src: "{{ collabora_install_path }}/collabora-online/"
state: absent
tags: ['never', 'teardown']
- name: "docker-compose: Bootstrap Collabora service"
docker_compose:
project_src: "/home/{{ docker_user }}/collabora-online/"
project_src: "{{ collabora_install_path }}/collabora-online/"
register: output
- debug:

View file

@ -3,6 +3,8 @@ version: '3'
services:
collabora:
image: collabora/code
container_name: collabora{{ collabora_multitenant_postfix }}
hostname: collabora{{ collabora_multitenant_postfix }}
restart: unless-stopped
environment:
- extra_params
@ -16,11 +18,11 @@ services:
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik_public"
- "traefik.http.routers.collabora.rule=Host(`{{ collabora_virtual_host }}`)"
- "traefik.port=9980"
- "traefik.http.routers.collabora.entrypoints=websecure"
- "traefik.http.routers.collabora.tls=true"
- "traefik.http.routers.collabora.tls.certresolver=defaultresolver"
- "traefik.http.routers.collabora{{ collabora_multitenant_postfix }}.rule=Host(`{{ collabora_virtual_host }}`)"
- "traefik.port={{ collabora_exposed_port }}"
- "traefik.http.routers.collabora{{ collabora_multitenant_postfix }}.entrypoints=websecure"
- "traefik.http.routers.collabora{{ collabora_multitenant_postfix }}.tls=true"
- "traefik.http.routers.collabora{{ collabora_multitenant_postfix }}.tls.certresolver=defaultresolver"
networks:
public:
cap_add: