From 92d380817bfb2fbf83f4f74b85c477144bcd0c63 Mon Sep 17 00:00:00 2001 From: Aine Date: Mon, 23 Sep 2024 19:19:42 +0300 Subject: [PATCH] add freescout --- docs/services/freescout.md | 44 +++++++++++++++++++++++ docs/supported-services.md | 1 + templates/group_vars_mash_servers | 60 +++++++++++++++++++++++++++++++ templates/setup.yml | 4 +++ 4 files changed, 109 insertions(+) create mode 100644 docs/services/freescout.md diff --git a/docs/services/freescout.md b/docs/services/freescout.md new file mode 100644 index 0000000..ac3d1e3 --- /dev/null +++ b/docs/services/freescout.md @@ -0,0 +1,44 @@ +# Freescout + +[Freescout](https://freescout.net/) is a free open-source helpdesk and shared inbox solution. + + +## Dependencies + +This service requires the following other services: + +- a [Postgres](postgres.md) database +- a [Traefik](traefik.md) reverse-proxy server + + +## Configuration + +To enable this service, add the following configuration to your `vars.yml` file and re-run the [installation](../installing.md) process: + +```yaml +######################################################################## +# # +# freescout # +# # +######################################################################## + +freescout_enabled: true + +freescout_hostname: freescout.example.com + +freescout_admin_email: your-email-here +freescout_admin_password: a-strong-password-here + +######################################################################## +# # +# /freescout # +# # +######################################################################## +``` + +In the example configuration above, we configure the service to be hosted at `https://freescout.example.com`. + + +## Usage + +After installation, you can log in with your administrator login (`freescout_admin_email`) and password (`freescout_admin_password`). diff --git a/docs/supported-services.md b/docs/supported-services.md index 6208472..1d152f4 100644 --- a/docs/supported-services.md +++ b/docs/supported-services.md @@ -26,6 +26,7 @@ | [exim-relay](https://github.com/devture/exim-relay) | A lightweight [Exim](https://www.exim.org/) SMTP mail relay server | [Link](services/exim-relay.md) | | [Focalboard](https://www.focalboard.com/) | An open source, self-hosted alternative to [Trello](https://trello.com/), [Notion](https://www.notion.so/), and [Asana](https://asana.com/). | [Link](services/focalboard.md) | | [FreshRSS](https://freshrss.org/) | RSS and Atom feed aggregator. | [Link](services/freshrss.md) | +| [Freescout](https://freescout.net/) | A free help desk software | [Link](services/freescout.md) | | [Firezone](https://www.firezone.dev/) | A self-hosted VPN server (based on [WireGuard](https://www.wireguard.com/)) with a Web UI | [Link](services/firezone.md) | | [Funkwhale](https://funkwhale.audio/) | Listen and share music with a selfhosted streaming server.| [Link](services/funkwhale.md) | | [Gitea](https://gitea.io/) | A painless self-hosted [Git](https://git-scm.com/) service. | [Link](services/gitea.md) | diff --git a/templates/group_vars_mash_servers b/templates/group_vars_mash_servers index 7168729..0e453ad 100644 --- a/templates/group_vars_mash_servers +++ b/templates/group_vars_mash_servers @@ -409,6 +409,11 @@ mash_playbook_devture_systemd_service_manager_services_list_auto_itemized: {{ ({'name': (linkding_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'linkding']} if linkding_enabled else omit) }} # /role-specific:linkding + # role-specific:freescout + - |- + {{ ({'name': (freescout_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'freescout']} if freescout_enabled else omit) }} + # /role-specific:freescout + # role-specific:miniflux - |- {{ ({'name': (miniflux_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'miniflux']} if miniflux_enabled else omit) }} @@ -835,6 +840,17 @@ mash_playbook_devture_postgres_managed_databases_auto_itemized: }} # /role-specific:linkding + # role-specific:freescout + - |- + {{ + ({ + 'name': freescout_database_name, + 'username': freescout_database_username, + 'password': freescout_database_password, + } if freescout_enabled else omit) + }} + # /role-specific:freescout + # role-specific:miniflux - |- {{ @@ -3640,6 +3656,50 @@ linkding_database_engine: "{{ 'postgres' if devture_postgres_enabled and linkdin +# role-specific:freescout +######################################################################## +# # +# freescout # +# # +######################################################################## + +freescout_enabled: false + +freescout_identifier: "{{ mash_playbook_service_identifier_prefix }}freescout" + +freescout_base_path: "{{ mash_playbook_base_path }}/{{ mash_playbook_service_base_directory_name_prefix }}freescout" + +freescout_systemd_required_services_list: | + {{ + ([devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else []) + + + ([devture_postgres_identifier ~ '.service'] if devture_postgres_enabled and freescout_database_hostname == devture_postgres_identifier else []) + }} + +freescout_container_additional_networks: | + {{ + ([mash_playbook_reverse_proxyable_services_additional_network] if mash_playbook_reverse_proxyable_services_additional_network else []) + + + ([devture_postgres_container_network] if devture_postgres_enabled and freescout_database_hostname == devture_postgres_identifier and freescout_container_network != devture_postgres_container_network else []) + }} + +freescout_container_labels_traefik_enabled: "{{ mash_playbook_traefik_labels_enabled }}" +freescout_container_labels_traefik_docker_network: "{{ mash_playbook_reverse_proxyable_services_additional_network }}" +freescout_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}" +freescout_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}" + +freescout_database_hostname: "{{ devture_postgres_connection_hostname if devture_postgres_enabled else '' }}" +freescout_database_password: "{{ '%s' | format(mash_playbook_generic_secret_key) | password_hash('sha512', 'freescout.db', rounds=655555) | to_uuid }}" + +######################################################################## +# # +# /freescout # +# # +######################################################################## +# /role-specific:freescout + + + # role-specific:miniflux ######################################################################## # # diff --git a/templates/setup.yml b/templates/setup.yml index bb283f2..fff822f 100644 --- a/templates/setup.yml +++ b/templates/setup.yml @@ -207,6 +207,10 @@ - role: galaxy/mariadb # /role-specific:mariadb + # role-specific:freescout + - role: galaxy/freescout + # /role-specific:freescout + # role-specific:miniflux - role: galaxy/miniflux # /role-specific:miniflux