mirror of
https://github.com/mother-of-all-self-hosting/mash-playbook
synced 2024-11-10 14:24:25 +00:00
Merge branch 'main' of https://github.com/mother-of-all-self-hosting/mash-playbook into owncast
This commit is contained in:
commit
5ce828d0c3
3 changed files with 147 additions and 5 deletions
|
@ -9,6 +9,7 @@ This service requires the following other services:
|
|||
|
||||
- a [Postgres](postgres.md) database
|
||||
- a [Traefik](traefik.md) reverse-proxy server
|
||||
- a [Redis](redis.md) data-store (optional), installation details [below](#redis)
|
||||
|
||||
|
||||
## Configuration
|
||||
|
@ -27,6 +28,8 @@ nextcloud_enabled: true
|
|||
nextcloud_hostname: mash.example.com
|
||||
nextcloud_path_prefix: /nextcloud
|
||||
|
||||
# Redis configuration, as described below
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# /nextcloud #
|
||||
|
@ -38,6 +41,143 @@ In the example configuration above, we configure the service to be hosted at `ht
|
|||
|
||||
You can remove the `nextcloud_path_prefix` variable definition, to make it default to `/`, so that the service is served at `https://mash.example.com/`.
|
||||
|
||||
### Redis
|
||||
|
||||
As described on the [Redis](redis.md) documentation page, if you're hosting additional services which require Redis on the same server, you'd better go for installing a separate Redis instance for each service. See [Creating a Redis instance dedicated to Nextcloud](#creating-a-redis-instance-dedicated-to-nextcloud).
|
||||
|
||||
If you're only running Nextcloud on this server and don't need to use Redis for anything else, you can [use a single Redis instance](#using-the-shared-redis-instance-for-nextcloud).
|
||||
|
||||
#### Using the shared Redis instance for Nextcloud
|
||||
|
||||
To install a single (non-dedicated) Redis instance (`mash-redis`) and hook Nextcloud to it, add the following **additional** configuration:
|
||||
|
||||
```yaml
|
||||
########################################################################
|
||||
# #
|
||||
# redis #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
redis_enabled: true
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# /redis #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# nextcloud #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
# Base configuration as shown above
|
||||
|
||||
# Point Nextcloud to the shared Redis instance
|
||||
nextcloud_redis_hostname: "{{ redis_identifier }}"
|
||||
|
||||
# Make sure the Nextcloud service (mash-nextcloud.service) starts after the shared Redis service (mash-redis.service)
|
||||
nextcloud_systemd_required_services_list_custom:
|
||||
- "{{ redis_identifier }}.service"
|
||||
|
||||
# Make sure the Nextcloud container is connected to the container network of the shared Redis service (mash-redis)
|
||||
nextcloud_container_additional_networks_custom:
|
||||
- "{{ redis_identifier }}"
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# /nextcloud #
|
||||
# #
|
||||
########################################################################
|
||||
```
|
||||
This will create a `mash-redis` Redis instance on this host.
|
||||
|
||||
This is only recommended if you won't be installing other services which require Redis. Alternatively, go for [Creating a Redis instance dedicated to Nextcloud](#creating-a-redis-instance-dedicated-to-nextcloud).
|
||||
|
||||
#### Creating a Redis instance dedicated to Nextcloud
|
||||
|
||||
The following instructions are based on the [Running multiple instances of the same service on the same host](../running-multiple-instances.md) documentation.
|
||||
|
||||
Adjust your `inventory/hosts` file as described in [Re-do your inventory to add supplementary hosts](../running-multiple-instances.md#re-do-your-inventory-to-add-supplementary-hosts), adding a new supplementary host (e.g. if `nextcloud.example.com` is your main one, create `nectcloud.example.com-deps`).
|
||||
|
||||
Then, create a new `vars.yml` file for the
|
||||
|
||||
`inventory/host_vars/nextcloud.example.com-deps/vars.yml`:
|
||||
|
||||
```yaml
|
||||
---
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# Playbook #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
# Put a strong secret below, generated with `pwgen -s 64 1` or in another way
|
||||
# Various other secrets will be derived from this secret automatically.
|
||||
mash_playbook_generic_secret_key: ''
|
||||
|
||||
# Override service names and directory path prefixes
|
||||
mash_playbook_service_identifier_prefix: 'mash-nextcloud-'
|
||||
mash_playbook_service_base_directory_name_prefix: 'nextcloud-'
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# /Playbook #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# redis #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
redis_enabled: true
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# /redis #
|
||||
# #
|
||||
########################################################################
|
||||
```
|
||||
|
||||
This will create a `mash-nextcloud-redis` instance on this host with its data in `/mash/nextcloud-redis`.
|
||||
|
||||
Then, adjust your main inventory host's variables file (`inventory/host_vars/nextcloud.example.com/vars.yml`) like this:
|
||||
|
||||
```yaml
|
||||
########################################################################
|
||||
# #
|
||||
# nextcloud #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
# Base configuration as shown above
|
||||
|
||||
# Point Nextcloud to its dedicated Redis instance
|
||||
nextcloud_redis_hostname: mash-nextcloud-redis
|
||||
|
||||
# Make sure the Nextcloud service (mash-nextcloud.service) starts after its dedicated Redis service (mash-nextcloud-redis.service)
|
||||
nextcloud_systemd_required_services_list_custom:
|
||||
- "mash-nextcloud-redis.service"
|
||||
|
||||
# Make sure the Nextcloud container is connected to the container network of its dedicated Redis service (mash-nextcloud-redis)
|
||||
nextcloud_container_additional_networks_custom:
|
||||
- "mash-nextcloud-redis"
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# /nextcloud #
|
||||
# #
|
||||
########################################################################
|
||||
```
|
||||
## Installation
|
||||
|
||||
If you've decided to install a dedicated Redis instance for Nextcloud, make sure to first do [installation](../installing.md) for the supplementary inventory host (e.g. `nextcloud.example.com-deps`), before running installation for the main one (e.g. `nextcloud.example.com`).
|
||||
|
||||
## Usage
|
||||
|
||||
|
|
|
@ -848,9 +848,11 @@ nextcloud_systemd_required_services_list_auto: |
|
|||
|
||||
nextcloud_container_additional_networks_auto: |
|
||||
{{
|
||||
([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 nextcloud_database_hostname == devture_postgres_identifier and nextcloud_container_network != devture_postgres_container_network else [])
|
||||
(
|
||||
([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 nextcloud_database_hostname == devture_postgres_identifier and nextcloud_container_network != devture_postgres_container_network else [])
|
||||
) | unique
|
||||
}}
|
||||
|
||||
nextcloud_container_labels_traefik_enabled: "{{ mash_playbook_traefik_labels_enabled }}"
|
||||
|
@ -1645,7 +1647,7 @@ firezone_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certReso
|
|||
|
||||
########################################################################
|
||||
# #
|
||||
# gotsocial #
|
||||
# gotosocial #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
- src: git+https://github.com/devture/com.devture.ansible.role.playbook_runtime_messages.git
|
||||
version: 9b4b088c62b528b73a9a7c93d3109b091dd42ec6
|
||||
- src: git+https://github.com/devture/com.devture.ansible.role.woodpecker_ci_server.git
|
||||
version: v0.15.7-2
|
||||
version: v0.15.7-3
|
||||
- src: git+https://github.com/devture/com.devture.ansible.role.woodpecker_ci_agent.git
|
||||
version: v0.15.7-1
|
||||
- src: git+https://gitlab.com/etke.cc/roles/miniflux.git
|
||||
|
|
Loading…
Reference in a new issue