Compare commits
2 commits
master
...
feature/mu
Author | SHA1 | Date | |
---|---|---|---|
40049b2e3e | |||
83cec2905c |
4 changed files with 34 additions and 25 deletions
17
README.md
17
README.md
|
@ -26,13 +26,16 @@ Requirements
|
||||||
Role Variables
|
Role Variables
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
| Variable | Description | Default |
|
| Variable | Description | Default |
|
||||||
| --------------------------- | ------------------------------------------------------------------------------- | ------------------ |
|
| --------------------------- | ------------------------------------------------------------------------------- | ------------------ |
|
||||||
| docker_user | The user who is going to manage/run the Docker Compose services | deploy |
|
| collabora_install_user | The user who is going to manage/run the Docker Compose services | {{ ansible_user }} |
|
||||||
| collabora_virtual_host | The host under which CODE is available from the outside (e.g. collabora.example.org) | localhost |
|
| collabora_install_path | The location where the service should be deployed | /home/{{ collabora_install_user }} |
|
||||||
| collabora_domain_regex_pattern | A regular expression to match hosts that should be allowed to access CODE | localhost |
|
| collabora_multitenant_label | A label (unique accross all instances on this host) identifying the tenant | |
|
||||||
| collabora_admin_user | Used to access to the Admin UI: https://<code-server>/loleaflet/dist/admin/admin.html | |
|
| collabora_virtual_host | The host under which CODE is available from the outside (e.g. collabora.example.org) | localhost |
|
||||||
| collabora_admin_password | | |
|
| 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
|
Dependencies
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
---
|
---
|
||||||
# defaults file for Collabora Online
|
# 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_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 '' }}"
|
||||||
|
|
|
@ -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: /home/{{ docker_user }}/collabora-online
|
path: "{{ collabora_install_path }}/collabora-online"
|
||||||
state: directory
|
state: directory
|
||||||
owner: '{{ docker_user }}'
|
owner: '{{ collabora_install_user }}'
|
||||||
group: '{{ docker_user }}'
|
group: '{{ collabora_install_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: /home/{{ docker_user }}/collabora-online/docker-compose.yml
|
dest: "{{ collabora_install_path }}/collabora-online/docker-compose.yml"
|
||||||
owner: "{{ docker_user }}"
|
owner: "{{ collabora_install_user }}"
|
||||||
group: "{{ docker_user }}"
|
group: "{{ collabora_install_user }}"
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
tags: config
|
tags: config
|
||||||
|
|
||||||
- name: Output docker-compose.yml
|
- 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
|
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: /home/{{ docker_user }}/collabora-online/.env
|
dest: "{{ collabora_install_path }}/collabora-online/.env"
|
||||||
owner: "{{ docker_user }}"
|
owner: "{{ collabora_install_user }}"
|
||||||
group: "{{ docker_user }}"
|
group: "{{ collabora_install_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: "/home/{{ docker_user }}/collabora-online/"
|
project_src: "{{ collabora_install_path }}/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: "/home/{{ docker_user }}/collabora-online/"
|
project_src: "{{ collabora_install_path }}/collabora-online/"
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
- debug:
|
- debug:
|
||||||
|
|
|
@ -3,6 +3,8 @@ 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
|
||||||
|
@ -16,11 +18,11 @@ services:
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.docker.network=traefik_public"
|
- "traefik.docker.network=traefik_public"
|
||||||
- "traefik.http.routers.collabora.rule=Host(`{{ collabora_virtual_host }}`)"
|
- "traefik.http.routers.collabora{{ collabora_multitenant_postfix }}.rule=Host(`{{ collabora_virtual_host }}`)"
|
||||||
- "traefik.port=9980"
|
- "traefik.port={{ collabora_exposed_port }}"
|
||||||
- "traefik.http.routers.collabora.entrypoints=websecure"
|
- "traefik.http.routers.collabora{{ collabora_multitenant_postfix }}.entrypoints=websecure"
|
||||||
- "traefik.http.routers.collabora.tls=true"
|
- "traefik.http.routers.collabora{{ collabora_multitenant_postfix }}.tls=true"
|
||||||
- "traefik.http.routers.collabora.tls.certresolver=defaultresolver"
|
- "traefik.http.routers.collabora{{ collabora_multitenant_postfix }}.tls.certresolver=defaultresolver"
|
||||||
networks:
|
networks:
|
||||||
public:
|
public:
|
||||||
cap_add:
|
cap_add:
|
||||||
|
|
Loading…
Add table
Reference in a new issue