added docs, added seperate service for database, pr commentspull/514/head
| @@ -52,6 +52,8 @@ Using this playbook, you can get the following services configured on your serve | |||||
| - (optional) the [matrix-appservice-webhooks](https://github.com/turt2live/matrix-appservice-webhooks) bridge for slack compatible webhooks ([ConcourseCI](https://concourse-ci.org/), [Slack](https://slack.com/) etc. pp.) | - (optional) the [matrix-appservice-webhooks](https://github.com/turt2live/matrix-appservice-webhooks) bridge for slack compatible webhooks ([ConcourseCI](https://concourse-ci.org/), [Slack](https://slack.com/) etc. pp.) | ||||
| - (optional) the [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) for bridging your Matrix server to SMS | |||||
| - (optional) [Email2Matrix](https://github.com/devture/email2matrix) for relaying email messages to Matrix rooms | - (optional) [Email2Matrix](https://github.com/devture/email2matrix) for relaying email messages to Matrix rooms | ||||
| - (optional) [Dimension](https://github.com/turt2live/matrix-dimension), an open source integrations manager for matrix clients | - (optional) [Dimension](https://github.com/turt2live/matrix-dimension), an open source integrations manager for matrix clients | ||||
| @@ -144,6 +146,8 @@ This playbook sets up your server using the following Docker images: | |||||
| - [turt2live/matrix-appservice-webhooks](https://hub.docker.com/r/turt2live/matrix-appservice-webhooks) - the [Appservice Webhooks](https://github.com/turt2live/matrix-appservice-webhooks) bridge (optional) | - [turt2live/matrix-appservice-webhooks](https://hub.docker.com/r/turt2live/matrix-appservice-webhooks) - the [Appservice Webhooks](https://github.com/turt2live/matrix-appservice-webhooks) bridge (optional) | ||||
| - [folivonet/matrix-sms-bridge](https://hub.docker.com/repository/docker/folivonet/matrix-sms-bridge) - the [matrix-sms-brdige](https://github.com/benkuly/matrix-sms-bridge) (optional) | |||||
| - [sorunome/mx-puppet-skype](https://hub.docker.com/r/sorunome/mx-puppet-skype) - the [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridge to [Skype](https:/www.skype.com) (optional) | - [sorunome/mx-puppet-skype](https://hub.docker.com/r/sorunome/mx-puppet-skype) - the [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype) bridge to [Skype](https:/www.skype.com) (optional) | ||||
| - [sorunome/mx-puppet-slack](https://hub.docker.com/r/sorunome/mx-puppet-slack) - the [mx-puppet-slack](https://github.com/Sorunome/mx-puppet-slack) bridge to [Slack](https:/slack.com) (optional) | - [sorunome/mx-puppet-slack](https://hub.docker.com/r/sorunome/mx-puppet-slack) - the [mx-puppet-slack](https://github.com/Sorunome/mx-puppet-slack) bridge to [Slack](https:/slack.com) (optional) | ||||
| @@ -0,0 +1,24 @@ | |||||
| # Setting up matrix-sms-bridge (optional) | |||||
| The playbook can install and configure | |||||
| [matrix-sms-brdige](https://github.com/benkuly/matrix-sms-bridge) for you. | |||||
| See the project page to learn what it does and why it might be useful to you. | |||||
| To enable the bridge just use the following | |||||
| playbook configuration: | |||||
| ```yaml | |||||
| matrix_sms_bridge_enabled: true | |||||
| matrix_sms_bridge_gammu_modem: "/path/to/modem" | |||||
| # generate a secret passwort e.g. with pwgen -s 64 1 | |||||
| matrix_sms_bridge_database_password: "" | |||||
| # (optional) a room id to a default room | |||||
| matrix_sms_bridge_default_room: "" | |||||
| ``` | |||||
| ## Usage | |||||
| Read the [user guide](https://github.com/benkuly/matrix-sms-bridge/blob/master/README.md#user-guide) to see how this bridge works. | |||||
| @@ -102,3 +102,5 @@ When you're done with all the configuration you'd like to do, continue with [Ins | |||||
| - [Setting up MX Puppet Slack bridging](configuring-playbook-bridge-mx-puppet-slack.md) (optional) | - [Setting up MX Puppet Slack bridging](configuring-playbook-bridge-mx-puppet-slack.md) (optional) | ||||
| - [Setting up Email2Matrix](configuring-playbook-email2matrix.md) (optional) | - [Setting up Email2Matrix](configuring-playbook-email2matrix.md) (optional) | ||||
| - [Setting up Matrix SMS bridging](configuring-playbook-matrix-sms-bridge.md) (optional) | |||||
| @@ -324,8 +324,6 @@ matrix_sms_bridge_appservice_token: "{{ matrix_synapse_macaroon_secret_key | pas | |||||
| matrix_sms_bridge_homeserver_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'sms.hs.token') | to_uuid }}" | matrix_sms_bridge_homeserver_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'sms.hs.token') | to_uuid }}" | ||||
| matrix_sms_bridge_database_password: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'sms.db.password') | to_uuid }}" | |||||
| ###################################################################### | ###################################################################### | ||||
| # | # | ||||
| # /matrix-sms-bridge | # /matrix-sms-bridge | ||||
| @@ -31,11 +31,13 @@ matrix_sms_bridge_container_http_host_bind_port: '' | |||||
| # A list of extra arguments to pass to the container | # A list of extra arguments to pass to the container | ||||
| matrix_sms_bridge_container_extra_arguments: [] | matrix_sms_bridge_container_extra_arguments: [] | ||||
| # List of systemd services that matrix-appservice-discord.service depends on. | |||||
| matrix_sms_bridge_systemd_required_services_list: ['docker.service'] | |||||
| # List of systemd services that service depends on. | |||||
| matrix_sms_bridge_systemd_required_services_list: ['docker.service','matrix-sms-bridge-database.service'] | |||||
| matrix_sms_bridge_database_systemd_required_services_list: ['docker.service'] | |||||
| # List of systemd services that matrix-appservice-discord.service wants | |||||
| # List of systemd services that service wants | |||||
| matrix_sms_bridge_systemd_wanted_services_list: [] | matrix_sms_bridge_systemd_wanted_services_list: [] | ||||
| matrix_sms_bridge_database_systemd_wanted_services_list: [] | |||||
| matrix_sms_bridge_appservice_url: 'http://matrix-sms-bridge:8080' | matrix_sms_bridge_appservice_url: 'http://matrix-sms-bridge:8080' | ||||
| matrix_sms_bridge_database_url: 'bolt://matrix-sms-bridge-database:7687' | matrix_sms_bridge_database_url: 'bolt://matrix-sms-bridge-database:7687' | ||||
| @@ -66,7 +66,14 @@ | |||||
| mode: 0644 | mode: 0644 | ||||
| register: matrix_sms_bridge_systemd_service_result | register: matrix_sms_bridge_systemd_service_result | ||||
| - name: Ensure systemd reloaded after matrix-sms-bridge.service installation | |||||
| - name: Ensure matrix-sms-bridge-database.service installed | |||||
| template: | |||||
| src: "{{ role_path }}/templates/systemd/matrix-sms-bridge-database.service.j2" | |||||
| dest: "{{ matrix_systemd_path }}/matrix-sms-bridge-database.service" | |||||
| mode: 0644 | |||||
| register: matrix_sms_bridge_database_systemd_service_result | |||||
| - name: Ensure systemd reloaded after matrix-sms-bridge.service or matrix-sms-bridge-database.service installation | |||||
| service: | service: | ||||
| daemon_reload: yes | daemon_reload: yes | ||||
| when: "matrix_sms_bridge_systemd_service_result.changed" | |||||
| when: matrix_sms_bridge_systemd_service_result.changed or matrix_sms_bridge_database_systemd_service_result.changed | |||||
| @@ -5,6 +5,11 @@ | |||||
| path: "{{ matrix_systemd_path }}/matrix-sms-bridge.service" | path: "{{ matrix_systemd_path }}/matrix-sms-bridge.service" | ||||
| register: matrix_sms_bridge_service_stat | register: matrix_sms_bridge_service_stat | ||||
| - name: Check existence of matrix-sms-bridge-database service | |||||
| stat: | |||||
| path: "{{ matrix_systemd_path }}/matrix-sms-bridge-database.service" | |||||
| register: matrix_sms_bridge_database_service_stat | |||||
| - name: Ensure matrix-sms-bridge is stopped | - name: Ensure matrix-sms-bridge is stopped | ||||
| service: | service: | ||||
| name: matrix-sms-bridge | name: matrix-sms-bridge | ||||
| @@ -12,13 +17,26 @@ | |||||
| daemon_reload: yes | daemon_reload: yes | ||||
| when: "matrix_sms_bridge_service_stat.stat.exists" | when: "matrix_sms_bridge_service_stat.stat.exists" | ||||
| - name: Ensure matrix-sms-bridge-database is stopped | |||||
| service: | |||||
| name: matrix-sms-bridge-database | |||||
| state: stopped | |||||
| daemon_reload: yes | |||||
| when: "matrix_sms_bridge_database_service_stat.stat.exists" | |||||
| - name: Ensure matrix-sms-bridge.service doesn't exist | - name: Ensure matrix-sms-bridge.service doesn't exist | ||||
| file: | file: | ||||
| path: "{{ matrix_systemd_path }}/matrix-sms-bridge.service" | path: "{{ matrix_systemd_path }}/matrix-sms-bridge.service" | ||||
| state: absent | state: absent | ||||
| when: "matrix_sms_bridge_service_stat.stat.exists" | when: "matrix_sms_bridge_service_stat.stat.exists" | ||||
| - name: Ensure systemd reloaded after matrix-sms-bridge.service removal | |||||
| - name: Ensure matrix-sms-bridge-database.service doesn't exist | |||||
| file: | |||||
| path: "{{ matrix_systemd_path }}/matrix-sms-bridge-database.service" | |||||
| state: absent | |||||
| when: "matrix_sms_bridge_database_service_stat.stat.exists" | |||||
| - name: Ensure systemd reloaded after matrix-sms-bridge.service or matrix-sms-bridge-database.service removal | |||||
| service: | service: | ||||
| daemon_reload: yes | daemon_reload: yes | ||||
| when: "matrix_sms_bridge_service_stat.stat.exists" | |||||
| when: matrix_sms_bridge_service_stat.stat.exists or matrix_sms_bridge_database_service_stat.stat.exists | |||||
| @@ -0,0 +1,36 @@ | |||||
| #jinja2: lstrip_blocks: "True" | |||||
| [Unit] | |||||
| Description=matrix-sms-bridge-database server | |||||
| {% for service in matrix_sms_bridge_database_systemd_required_services_list %} | |||||
| Requires={{ service }} | |||||
| After={{ service }} | |||||
| {% endfor %} | |||||
| {% for service in matrix_sms_bridge_database_systemd_wanted_services_list %} | |||||
| Wants={{ service }} | |||||
| {% endfor %} | |||||
| [Service] | |||||
| Type=simple | |||||
| ExecStartPre=-/usr/bin/docker kill matrix-sms-bridge-database | |||||
| ExecStartPre=-/usr/bin/docker rm matrix-sms-bridge-database | |||||
| # Intentional delay, so that the homeserver (we likely depend on) can manage to start. | |||||
| ExecStartPre=/bin/sleep 5 | |||||
| ExecStart=/usr/bin/docker run --rm --name matrix-sms-bridge-database \ | |||||
| --log-driver=none \ | |||||
| --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ | |||||
| --cap-drop=ALL \ | |||||
| --network={{ matrix_docker_network }} \ | |||||
| -v {{ matrix_sms_bridge_database_path }}:/data:z \ | |||||
| -e NEO4J_AUTH={{ matrix_sms_bridge_database_username }}/{{ matrix_sms_bridge_database_password }} \ | |||||
| {{ matrix_sms_bridge_database_docker_image }} | |||||
| ExecStop=-/usr/bin/docker kill matrix-sms-bridge-database | |||||
| ExecStop=-/usr/bin/docker rm matrix-sms-bridge-database | |||||
| Restart=always | |||||
| RestartSec=30 | |||||
| SyslogIdentifier=matrix-sms-bridge | |||||
| [Install] | |||||
| WantedBy=multi-user.target | |||||
| @@ -13,20 +13,6 @@ Wants={{ service }} | |||||
| Type=simple | Type=simple | ||||
| ExecStartPre=-/usr/bin/docker kill matrix-sms-bridge | ExecStartPre=-/usr/bin/docker kill matrix-sms-bridge | ||||
| ExecStartPre=-/usr/bin/docker rm matrix-sms-bridge | ExecStartPre=-/usr/bin/docker rm matrix-sms-bridge | ||||
| ExecStartPre=-/usr/bin/docker kill matrix-sms-bridge-database | |||||
| ExecStartPre=-/usr/bin/docker rm matrix-sms-bridge-database | |||||
| ExecStartPre=/usr/bin/docker run --rm --name matrix-sms-bridge-database \ | |||||
| --log-driver=none \ | |||||
| --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ | |||||
| --cap-drop=ALL \ | |||||
| --network={{ matrix_docker_network }} \ | |||||
| {% if matrix_sms_bridge_container_http_host_bind_port %} | |||||
| -p {{ matrix_sms_bridge_container_http_host_bind_port }}:7687 \ | |||||
| {% endif %} | |||||
| -v {{ matrix_sms_bridge_database_path }}:/data:z \ | |||||
| -e NEO4J_AUTH={{ matrix_sms_bridge_database_username }}/{{ matrix_sms_bridge_database_password }} | |||||
| {{ matrix_sms_bridge_database_docker_image }} | |||||
| # Intentional delay, so that the homeserver (we likely depend on) can manage to start. | # Intentional delay, so that the homeserver (we likely depend on) can manage to start. | ||||
| ExecStartPre=/bin/sleep 5 | ExecStartPre=/bin/sleep 5 | ||||
| @@ -41,7 +27,7 @@ ExecStart=/usr/bin/docker run --rm --name matrix-sms-bridge \ | |||||
| {% endif %} | {% endif %} | ||||
| -v {{ matrix_sms_bridge_config_path }}:/config:z \ | -v {{ matrix_sms_bridge_config_path }}:/config:z \ | ||||
| -v {{ matrix_sms_bridge_data_path }}:/data:z \ | -v {{ matrix_sms_bridge_data_path }}:/data:z \ | ||||
| --device {{ matrix_sms_bridge_gammu_modem }}:/dev/ttyModem | |||||
| --device {{ matrix_sms_bridge_gammu_modem }}:/dev/ttyModem \ | |||||
| {% for arg in matrix_sms_bridge_container_extra_arguments %} | {% for arg in matrix_sms_bridge_container_extra_arguments %} | ||||
| {{ arg }} \ | {{ arg }} \ | ||||
| {% endfor %} | {% endfor %} | ||||
| @@ -49,8 +35,6 @@ ExecStart=/usr/bin/docker run --rm --name matrix-sms-bridge \ | |||||
| ExecStop=-/usr/bin/docker kill matrix-sms-bridge | ExecStop=-/usr/bin/docker kill matrix-sms-bridge | ||||
| ExecStop=-/usr/bin/docker rm matrix-sms-bridge | ExecStop=-/usr/bin/docker rm matrix-sms-bridge | ||||
| ExecStop=-/usr/bin/docker kill matrix-sms-database | |||||
| ExecStop=-/usr/bin/docker rm matrix-sms-database | |||||
| Restart=always | Restart=always | ||||
| RestartSec=30 | RestartSec=30 | ||||
| SyslogIdentifier=matrix-sms-bridge | SyslogIdentifier=matrix-sms-bridge | ||||