commit
f34811579c
5 changed files with 125 additions and 1 deletions
55
docs/services/roundcube.md
Normal file
55
docs/services/roundcube.md
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
# Roundcube
|
||||||
|
|
||||||
|
[Roundcube](https://roundcube.net/) is a browser-based multilingual IMAP client with an application-like user interface. It provides full functionality you expect from an email client, including MIME support, address book, folder manipulation, message searching and spell checking.
|
||||||
|
|
||||||
|
## 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
|
||||||
|
########################################################################
|
||||||
|
# #
|
||||||
|
# roundcube #
|
||||||
|
# #
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
roundcube_enabled: true
|
||||||
|
|
||||||
|
roundcube_hostname: mash.example.com
|
||||||
|
|
||||||
|
roundcube_path_prefix: "/roundcube"
|
||||||
|
|
||||||
|
# The default IMAP server to connect to.
|
||||||
|
roundcube_default_imap_host: "imap.example.com"
|
||||||
|
# If not specified, the default port is 143.
|
||||||
|
roundcube_default_imap_port: "143"
|
||||||
|
|
||||||
|
# The default SMTP server to use.
|
||||||
|
roundcube_smtp_server: "smtp.example.com"
|
||||||
|
# If not specified, the default port is 587.
|
||||||
|
roundcube_smtp_port: "587"
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# #
|
||||||
|
# /roundcube #
|
||||||
|
# #
|
||||||
|
########################################################################
|
||||||
|
```
|
||||||
|
|
||||||
|
In the example configuration above, we configure the service to be hosted at `https://mash.example.com/roundcube`.
|
||||||
|
|
||||||
|
You can remove the `roundcube_path_prefix` variable definition, to make it default to `/`, so that the service is served at `https://mash.example.com/`.
|
||||||
|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
After installation, you should be able to access your new Roundcube instance at the configured URL (see above).
|
||||||
|
|
||||||
|
The username/password you will use to login are the same ones used in your IMAP server.
|
|
@ -54,6 +54,7 @@
|
||||||
| [Radicale](https://radicale.org/) | A Free and Open-Source CalDAV and CardDAV Server (solution for hosting contacts and calendars) | [Link](services/radicale.md) |
|
| [Radicale](https://radicale.org/) | A Free and Open-Source CalDAV and CardDAV Server (solution for hosting contacts and calendars) | [Link](services/radicale.md) |
|
||||||
| [Redmine](https://redmine.org/) | A flexible project management web application. | [Link](services/redmine.md) |
|
| [Redmine](https://redmine.org/) | A flexible project management web application. | [Link](services/redmine.md) |
|
||||||
| [Redis](https://redis.io/) | An in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker. | [Link](services/redis.md) |
|
| [Redis](https://redis.io/) | An in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker. | [Link](services/redis.md) |
|
||||||
|
| [Roundcube](https://roundcube.net/) | A browser-based multilingual IMAP client with an application-like user interface | [Link](services/roundcube.md) |
|
||||||
| [rumqttd](https://github.com/bytebeamio/rumqtt) | A high performance, embeddable [MQTT](https://en.wikipedia.org/wiki/MQTT) broker | [Link](services/rumqttd.md) |
|
| [rumqttd](https://github.com/bytebeamio/rumqtt) | A high performance, embeddable [MQTT](https://en.wikipedia.org/wiki/MQTT) broker | [Link](services/rumqttd.md) |
|
||||||
| [Soft Serve](https://github.com/charmbracelet/soft-serve) | A tasty, self-hostable [Git](https://git-scm.com/) server for the command line | [Link](services/soft-serve.md) |
|
| [Soft Serve](https://github.com/charmbracelet/soft-serve) | A tasty, self-hostable [Git](https://git-scm.com/) server for the command line | [Link](services/soft-serve.md) |
|
||||||
| [Syncthing](https://syncthing.net/) | A continuous file synchronization program which synchronizes files between two or more computers in real time | [Link](services/syncthing.md) |
|
| [Syncthing](https://syncthing.net/) | A continuous file synchronization program which synchronizes files between two or more computers in real time | [Link](services/syncthing.md) |
|
||||||
|
|
|
@ -264,6 +264,8 @@ devture_systemd_service_manager_services_list_auto: |
|
||||||
+
|
+
|
||||||
([{'name': (redis_identifier + '.service'), 'priority': 750, 'groups': ['mash', 'redis']}] if redis_enabled else [])
|
([{'name': (redis_identifier + '.service'), 'priority': 750, 'groups': ['mash', 'redis']}] if redis_enabled else [])
|
||||||
+
|
+
|
||||||
|
([{'name': (roundcube_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'roundcube']}] if roundcube_enabled else [])
|
||||||
|
+
|
||||||
([{'name': (rumqttd_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'rumqttd']}] if rumqttd_enabled else [])
|
([{'name': (rumqttd_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'rumqttd']}] if rumqttd_enabled else [])
|
||||||
+
|
+
|
||||||
([{'name': (soft_serve_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'soft-serve']}] if soft_serve_enabled else [])
|
([{'name': (soft_serve_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'soft-serve']}] if soft_serve_enabled else [])
|
||||||
|
@ -449,6 +451,12 @@ devture_postgres_managed_databases_auto: |
|
||||||
'username': forgejo_config_database_username,
|
'username': forgejo_config_database_username,
|
||||||
'password': forgejo_config_database_password,
|
'password': forgejo_config_database_password,
|
||||||
}] if forgejo_enabled else [])
|
}] if forgejo_enabled else [])
|
||||||
|
+
|
||||||
|
([{
|
||||||
|
'name': roundcube_database_name,
|
||||||
|
'username': roundcube_database_username,
|
||||||
|
'password': roundcube_database_password,
|
||||||
|
}] if roundcube_enabled and roundcube_database_hostname == devture_postgres_identifier else [])
|
||||||
}}
|
}}
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
|
@ -2804,6 +2812,57 @@ redis_gid: "{{ mash_playbook_gid }}"
|
||||||
# #
|
# #
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# #
|
||||||
|
# roundcube #
|
||||||
|
# #
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
roundcube_enabled: false
|
||||||
|
|
||||||
|
roundcube_identifier: "{{ mash_playbook_service_identifier_prefix }}roundcube"
|
||||||
|
|
||||||
|
roundcube_base_path: "{{ mash_playbook_base_path }}/{{ mash_playbook_service_base_directory_name_prefix }}roundcube"
|
||||||
|
|
||||||
|
roundcube_uid: "0"
|
||||||
|
roundcube_gid: "0"
|
||||||
|
|
||||||
|
roundcube_database_type: "{{ 'postgresql' if devture_postgres_enabled else 'sqlite' }}"
|
||||||
|
roundcube_database_hostname: "{{ devture_postgres_identifier if devture_postgres_enabled else '' }}"
|
||||||
|
roundcube_database_port: "{{ '5432' if devture_postgres_enabled else '' }}"
|
||||||
|
roundcube_database_name: "{{ 'roundcube' if devture_postgres_enabled else '' }}"
|
||||||
|
roundcube_database_username: "{{ 'roundcube' if devture_postgres_enabled else '' }}"
|
||||||
|
roundcube_database_password: "{{ '%s' | format(mash_playbook_generic_secret_key) | password_hash('sha512', 'db.roundcube', rounds=655555) | to_uuid }}"
|
||||||
|
|
||||||
|
roundcube_systemd_required_systemd_services_list: |
|
||||||
|
{{
|
||||||
|
(['docker.service'])
|
||||||
|
+
|
||||||
|
([devture_postgres_identifier ~ '.service'] if devture_postgres_enabled and roundcube_database_hostname == devture_postgres_identifier else [])
|
||||||
|
}}
|
||||||
|
|
||||||
|
roundcube_container_labels_traefik_enabled: "{{ mash_playbook_traefik_labels_enabled }}"
|
||||||
|
roundcube_container_labels_traefik_docker_network: "{{ mash_playbook_reverse_proxyable_services_additional_network }}"
|
||||||
|
roundcube_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
|
||||||
|
roundcube_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
|
||||||
|
|
||||||
|
roundcube_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 roundcube_database_hostname == devture_postgres_identifier and roundcube_container_network != devture_postgres_container_network else [])
|
||||||
|
}}
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# #
|
||||||
|
# /roundcube #
|
||||||
|
# #
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# #
|
# #
|
||||||
# rumqttd #
|
# rumqttd #
|
||||||
|
@ -2826,6 +2885,7 @@ rumqttd_gid: "{{ mash_playbook_gid }}"
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# #
|
# #
|
||||||
# soft-serve #
|
# soft-serve #
|
||||||
|
@ -2910,6 +2970,7 @@ telegraf_systemd_required_services_list: |
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# #
|
# #
|
||||||
# vaultwarden #
|
# vaultwarden #
|
||||||
|
@ -3021,6 +3082,8 @@ wg_easy_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResol
|
||||||
# #
|
# #
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# #
|
# #
|
||||||
# forgejo #
|
# forgejo #
|
||||||
|
@ -3067,6 +3130,7 @@ forgejo_config_database_password: "{{ '%s' | format(mash_playbook_generic_secret
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# #
|
# #
|
||||||
# woodpecker-ci-server #
|
# woodpecker-ci-server #
|
||||||
|
@ -3156,4 +3220,3 @@ devture_woodpecker_ci_agent_config_agent_secret: "{{ devture_woodpecker_ci_serve
|
||||||
# /woodpecker-ci-agent #
|
# /woodpecker-ci-agent #
|
||||||
# #
|
# #
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
|
|
|
@ -196,3 +196,6 @@
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-wg-easy.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-wg-easy.git
|
||||||
version: v7-0
|
version: v7-0
|
||||||
name: wg_easy
|
name: wg_easy
|
||||||
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-roundcube.git
|
||||||
|
version: v1.6.3-0
|
||||||
|
name: roundcube
|
||||||
|
|
|
@ -164,6 +164,8 @@
|
||||||
- role: galaxy/com.devture.ansible.role.woodpecker_ci_server
|
- role: galaxy/com.devture.ansible.role.woodpecker_ci_server
|
||||||
- role: galaxy/com.devture.ansible.role.woodpecker_ci_agent
|
- role: galaxy/com.devture.ansible.role.woodpecker_ci_agent
|
||||||
|
|
||||||
|
- role: galaxy/roundcube
|
||||||
|
|
||||||
- role: galaxy/auxiliary
|
- role: galaxy/auxiliary
|
||||||
|
|
||||||
- when: devture_systemd_service_manager_enabled | bool
|
- when: devture_systemd_service_manager_enabled | bool
|
||||||
|
|
Loading…
Reference in a new issue