Compare commits

..

No commits in common. "feature/multitenancy" and "master" have entirely different histories.

4 changed files with 25 additions and 34 deletions

View file

@ -28,11 +28,8 @@ Role Variables
| Variable | Description | Default | | Variable | Description | Default |
| --------------------------- | ------------------------------------------------------------------------------- | ------------------ | | --------------------------- | ------------------------------------------------------------------------------- | ------------------ |
| collabora_install_user | The user who is going to manage/run the Docker Compose services | {{ ansible_user }} | | docker_user | The user who is going to manage/run the Docker Compose services | deploy |
| 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_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_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_user | Used to access to the Admin UI: https://<code-server>/loleaflet/dist/admin/admin.html | |
| collabora_admin_password | | | | collabora_admin_password | | |

View file

@ -1,11 +1,7 @@
--- ---
# defaults file for Collabora Online # defaults file for Collabora Online
collabora_install_user: '{{ ansible_user }}' # This user must be present on the host docker_user: deploy
collabora_install_path: '/home/{{ collabora_install_user }}'
collabora_multitenant_label:
collabora_exposed_port: 9980 collabora_exposed_port: 9980
collabora_virtual_host: localhost collabora_virtual_host: localhost
collabora_public_url: http://{{ collabora_virtual_host }} collabora_public_url: http://{{ collabora_virtual_host }}
collabora_domain_regex_pattern: localhost 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 # tasks file for Collabora Online
- name: Ensure Collabora Online config directory exists - name: Ensure Collabora Online config directory exists
file: file:
path: "{{ collabora_install_path }}/collabora-online" path: /home/{{ docker_user }}/collabora-online
state: directory state: directory
owner: '{{ collabora_install_user }}' owner: '{{ docker_user }}'
group: '{{ collabora_install_user }}' group: '{{ docker_user }}'
tags: config tags: config
- name: Provide docker-compose.yml - name: Provide docker-compose.yml
template: template:
src: templates/docker-compose.collabora-online.yml.j2 src: templates/docker-compose.collabora-online.yml.j2
dest: "{{ collabora_install_path }}/collabora-online/docker-compose.yml" dest: /home/{{ docker_user }}/collabora-online/docker-compose.yml
owner: "{{ collabora_install_user }}" owner: "{{ docker_user }}"
group: "{{ collabora_install_user }}" group: "{{ docker_user }}"
mode: '0644' mode: '0644'
tags: config tags: config
- name: Output docker-compose.yml - name: Output docker-compose.yml
shell: cat {{ collabora_install_path }}/collabora-online/docker-compose.yml shell: cat /home/{{ docker_user }}/collabora-online/docker-compose.yml
register: output register: output
tags: config tags: config
@ -28,21 +28,21 @@
- name: Provide Collabora env vars - name: Provide Collabora env vars
template: template:
src: templates/env.collabora-online.j2 src: templates/env.collabora-online.j2
dest: "{{ collabora_install_path }}/collabora-online/.env" dest: /home/{{ docker_user }}/collabora-online/.env
owner: "{{ collabora_install_user }}" owner: "{{ docker_user }}"
group: "{{ collabora_install_user }}" group: "{{ docker_user }}"
mode: '0640' mode: '0640'
tags: config tags: config
- name: "docker-compose: Teardown existing Collabora service" - name: "docker-compose: Teardown existing Collabora service"
docker_compose: docker_compose:
project_src: "{{ collabora_install_path }}/collabora-online/" project_src: "/home/{{ docker_user }}/collabora-online/"
state: absent state: absent
tags: ['never', 'teardown'] tags: ['never', 'teardown']
- name: "docker-compose: Bootstrap Collabora service" - name: "docker-compose: Bootstrap Collabora service"
docker_compose: docker_compose:
project_src: "{{ collabora_install_path }}/collabora-online/" project_src: "/home/{{ docker_user }}/collabora-online/"
register: output register: output
- debug: - debug:

View file

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