| @@ -0,0 +1,49 @@ | |||||
| --- | |||||
| # Conduit is a simple, fast and reliable chat server powered by Matrix | |||||
| # See: https://conduit.rs | |||||
| matrix_conduit_enabled: true | |||||
| matrix_conduit_docker_image: "{{ matrix_conduit_docker_image_name_prefix}}matrixconduit/matrix-conduit:{{ matrix_conduit_docker_image_tag }}" | |||||
| matrix_conduit_docker_image_name_prefix: "docker.io/" | |||||
| matrix_conduit_docker_image_tag: "v0.4.0" | |||||
| matrix_conduit_docker_image_force_pull: "{{ matrix_conduit_docker_image.endswith(':latest') }}" | |||||
| matrix_conduit_base_path: "{{ matrix_base_data_path }}/conduit" | |||||
| matrix_conduit_config_dir_path: "{{ matrix_conduit_base_path }}/config" | |||||
| matrix_conduit_storage_path: "{{ matrix_conduit_base_path }}/storage" | |||||
| matrix_conduit_port_number: 6167 | |||||
| # List of systemd services that matrix-conduit.service depends on | |||||
| matrix_conduit_systemd_required_services_list: ["docker.service"] | |||||
| # List of systemd services that matrix-conduit.service wants | |||||
| matrix_conduit_systemd_wanted_services_list: [] | |||||
| # Extra arguments for the Docker container | |||||
| matrix_conduit_container_extra_arguments: [] | |||||
| # Specifies which template files to use when configuring Conduit. | |||||
| # If you'd like to have your own different configuration, feel free to copy and paste | |||||
| # the original files into your inventory (e.g. in `inventory/host_vars/<host>/`) | |||||
| # and then change the specific host's `vars.yaml` file like this: | |||||
| # matrix_conduit_template_conduit_config: "{{ playbook_dir }}/inventory/host_vars/<host>/conduit.yaml.j2" | |||||
| matrix_conduit_template_conduit_config: "{{ role_path }}/templates/conduit/conduit.toml.j2" | |||||
| # Max size for uploads, in bytes | |||||
| matrix_conduit_max_request_size: "20_000_000" | |||||
| # Enables registration. If set to false, no users can register on this server. | |||||
| matrix_conduit_allow_registration: true | |||||
| matrix_conduit_allow_federation: true | |||||
| # Enable the display name lightning bolt on registration. | |||||
| matrix_conduit_enable_lightning_bolt: true | |||||
| matrix_conduit_trusted_servers: | |||||
| - "matrix.org" | |||||
| # How many requests Conduit sends to other servers at the same time | |||||
| matrix_conduit_max_concurrent_requests: 100 | |||||
| @@ -0,0 +1,7 @@ | |||||
| --- | |||||
| - import_tasks: "{{ role_path }}/tasks/conduit/setup_install.yml" | |||||
| when: matrix_conduit_enabled|bool | |||||
| - import_tasks: "{{ role_path }}/tasks/conduit/setup_uninstall.yml" | |||||
| when: "not matrix_conduit_enabled|bool" | |||||
| @@ -0,0 +1,31 @@ | |||||
| --- | |||||
| - name: Ensure Conduit Docker image is pulled | |||||
| docker_image: | |||||
| name: "{{ matrix_conduit_docker_image }}" | |||||
| source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" | |||||
| force_source: "{{ matrix_conduit_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" | |||||
| force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_conduit_docker_image_force_pull }}" | |||||
| register: result | |||||
| retries: "{{ matrix_container_retries_count }}" | |||||
| delay: "{{ matrix_container_retries_delay }}" | |||||
| until: result is not failed | |||||
| - name: Ensure Conduit configuration installed | |||||
| template: | |||||
| src: "{{ role_path }}/templates/conduit/conduit.toml.j2" | |||||
| dest: "{{ matrix_conduit_config_dir_path }}/conduit.toml" | |||||
| mode: 0644 | |||||
| owner: "{{ matrix_user_username }}" | |||||
| group: "{{ matrix_user_groupname }}" | |||||
| - name: Ensure matrix-conduit.service installed | |||||
| template: | |||||
| src: "{{ role_path }}/templates/conduit/systemd/matrix-conduit.service.j2" | |||||
| dest: "{{ matrix_systemd_path }}/matrix-conduit.service" | |||||
| mode: 0644 | |||||
| register: matrix_conduit_systemd_service_result | |||||
| - name: Ensure systemd reloaded after matrix-conduit.service installation | |||||
| service: | |||||
| daemon_reload: true | |||||
| when: "matrix_conduit_systemd_service_result.changed|bool" | |||||
| @@ -0,0 +1,30 @@ | |||||
| --- | |||||
| - name: Check existence of matrix-conduit service | |||||
| stat: | |||||
| path: "{{ matrix_systemd_path }}/matrix-conduit.service" | |||||
| register: matrix_conduit_service_stat | |||||
| - name: Ensure matrix-conduit is stopped | |||||
| service: | |||||
| name: matrix-conduit | |||||
| state: stopped | |||||
| daemon_reload: true | |||||
| register: stopping_result | |||||
| when: "matrix_conduit_service_stat.stat.exists" | |||||
| - name: Ensure matrix-conduit.service doesn't exist | |||||
| file: | |||||
| path: "{{ matrix_systemd_path }}/matrix-conduit.service" | |||||
| state: absent | |||||
| when: "matrix_conduit_service_stat.stat.exists" | |||||
| - name: Ensure systemd reloaded after matrix-conduit.service removal | |||||
| service: | |||||
| daemon_reload: true | |||||
| when: "matrix_conduit_service_stat.stat.exists" | |||||
| - name: Ensure Conduit Docker image doesn't exist | |||||
| docker_image: | |||||
| name: "{{ matrix_conduit_docker_image }}" | |||||
| state: absent | |||||
| @@ -0,0 +1,5 @@ | |||||
| --- | |||||
| - set_fact: | |||||
| matrix_systemd_services_list: "{{ matrix_systemd_services_list + ['matrix-conduit.service'] }}" | |||||
| when: matrix_conduit_enabled|bool | |||||
| @@ -0,0 +1,17 @@ | |||||
| --- | |||||
| - import_tasks: "{{ role_path }}/tasks/init.yml" | |||||
| tags: | |||||
| - always | |||||
| - import_tasks: "{{ role_path }}/tasks/setup_conduit.yml" | |||||
| when: run_setup|bool | |||||
| tags: | |||||
| - setup-all | |||||
| - setup-conduit | |||||
| - name: Mark matrix-conduit role as executed | |||||
| set_fact: | |||||
| matrix_conduit_role_executed: true | |||||
| tags: | |||||
| - always | |||||
| @@ -0,0 +1,14 @@ | |||||
| --- | |||||
| - name: Ensure Conduit paths exist | |||||
| file: | |||||
| path: "{{ item.path }}" | |||||
| state: directory | |||||
| mode: 0750 | |||||
| owner: "{{ matrix_user_username }}" | |||||
| group: "{{ matrix_user_groupname }}" | |||||
| with_items: | |||||
| - {path: "{{ matrix_conduit_config_dir_path }}", when: true} | |||||
| - {path: "{{ matrix_conduit_data_dir_path }}", when: true} | |||||
| when: "matrix_conduit_enabled|bool and item.when" | |||||
| - import_tasks: "{{ role_path }}/tasks/conduit/setup.yml" | |||||