Adds support for n8n
This commit is contained in:
parent
942d701500
commit
865746f0e3
6 changed files with 118 additions and 1 deletions
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -3,3 +3,9 @@
|
|||
# ignore roles pulled by ansible-galaxy
|
||||
/roles/galaxy/*
|
||||
!/roles/galaxy/.gitkeep
|
||||
|
||||
# ignores vscode file
|
||||
.vscode
|
||||
|
||||
# ingores macos files
|
||||
.DS_Store
|
||||
|
|
41
docs/services/n8n.md
Normal file
41
docs/services/n8n.md
Normal file
|
@ -0,0 +1,41 @@
|
|||
# n8n
|
||||
|
||||
[n8n](https://n8n.io/) is a workflow automation tool for technical people.
|
||||
|
||||
## 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
|
||||
########################################################################
|
||||
# #
|
||||
# n8n #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
n8n_enabled: true
|
||||
|
||||
n8n_hostname: mash.example.com
|
||||
n8n_path_prefix: /n8n
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# /n8n #
|
||||
# #
|
||||
########################################################################
|
||||
```
|
||||
|
||||
In the example configuration above, we configure the service to be hosted at `https://mash.example.com/n8n`.
|
||||
|
||||
You can remove the `n8n_path_prefix` variable definition, to make it default to `/`, so that the service is served at `https://mash.example.com/`.
|
||||
|
||||
## Usage
|
||||
|
||||
You can create additional users (admin-privileged or not) after logging in.
|
|
@ -31,6 +31,7 @@
|
|||
| [Mosquitto](https://mosquitto.org/) | An open-source MQTT broker | [Link](services/mosquitto.md) |
|
||||
| [Miniflux](https://miniflux.app/) | Minimalist and opinionated feed reader. | [Link](services/miniflux.md) |
|
||||
| [Mobilizon](https://joinmobilizon.org/en/) | An ActivityPub/Fediverse server to create and share events. | [Link](services/mobilizon.md) |
|
||||
| [n8n](https://n8n.io/) | Workflow automation for technical people. | [Link](services/n8n.md) |
|
||||
| [Navidrome](https://www.navidrome.org/) | [Subsonic-API](http://www.subsonic.org/pages/api.jsp) compatible music server | [Link](services/navidrome.md)
|
||||
| [NetBox](https://docs.netbox.dev/en/stable/) | Web application that provides [IP address management (IPAM)](https://en.wikipedia.org/wiki/IP_address_management) and [data center infrastructure management (DCIM)](https://en.wikipedia.org/wiki/Data_center_management#Data_center_infrastructure_management) functionality | [Link](services/netbox.md) |
|
||||
| [Nextcloud](https://nextcloud.com/) | The most popular self-hosted collaboration solution for tens of millions of users at thousands of organizations across the globe. | [Link](services/nextcloud.md) |
|
||||
|
|
|
@ -155,6 +155,8 @@ devture_systemd_service_manager_services_list_auto: |
|
|||
+
|
||||
([{'name': (mrs_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'mrs']}] if mrs_enabled else [])
|
||||
+
|
||||
([{'name': (n8n_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'n8n']}] if n8n_enabled else [])
|
||||
+
|
||||
([{'name': (navidrome_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'navidrome']}] if navidrome_enabled else [])
|
||||
+
|
||||
([{'name': (netbox_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'netbox', 'netbox-server']}] if netbox_enabled else [])
|
||||
|
@ -235,6 +237,8 @@ devture_postgres_systemd_services_to_stop_for_maintenance_list: |
|
|||
{{
|
||||
([(miniflux_identifier + '.service')] if miniflux_enabled else [])
|
||||
+
|
||||
([(n8n_identifier + '.service')] if n8n_enabled else [])
|
||||
+
|
||||
([(redmine_identifier + '.service')] if redmine_enabled else [])
|
||||
}}
|
||||
|
||||
|
@ -305,6 +309,12 @@ devture_postgres_managed_databases_auto: |
|
|||
'password': redmine_database_password,
|
||||
}] if redmine_enabled else [])
|
||||
+
|
||||
([{
|
||||
'name': n8n_database_name,
|
||||
'username': n8n_database_username,
|
||||
'password': n8n_database_password,
|
||||
}] if n8n_enabled else [])
|
||||
+
|
||||
([{
|
||||
'name': netbox_database_name,
|
||||
'username': netbox_database_username,
|
||||
|
@ -1308,6 +1318,14 @@ hubsite_service_miniflux_logo_location: "{{ role_path }}/assets/miniflux.png"
|
|||
hubsite_service_miniflux_description: "An opinionated feed reader"
|
||||
hubsite_service_miniflux_priority: 1000
|
||||
|
||||
# n8n
|
||||
hubsite_service_n8n_enabled: "{{ n8n_enabled }}"
|
||||
hubsite_service_n8n_name: n8n
|
||||
hubsite_service_n8n_url: "https://{{ n8n_hostname }}{{ n8n_path_prefix }}"
|
||||
hubsite_service_n8n_logo_location: "{{ role_path }}/assets/n8n.png"
|
||||
hubsite_service_n8n_description: "Workflow automation for technical people."
|
||||
hubsite_service_n8n_priority: 1000
|
||||
|
||||
# Nextcloud
|
||||
hubsite_service_nextcloud_enabled: "{{ nextcloud_enabled }}"
|
||||
hubsite_service_nextcloud_name: Nextcloud
|
||||
|
@ -1401,6 +1419,8 @@ hubsite_service_list_auto: |
|
|||
+
|
||||
([{'name': hubsite_service_miniflux_name, 'url': hubsite_service_miniflux_url, 'logo_location': hubsite_service_miniflux_logo_location, 'description': hubsite_service_miniflux_description, 'priority': hubsite_service_miniflux_priority}] if hubsite_service_miniflux_enabled else [])
|
||||
+
|
||||
([{'name': hubsite_service_n8n_name, 'url': hubsite_service_n8n_url, 'logo_location': hubsite_service_n8n_logo_location, 'description': hubsite_service_n8n_description, 'priority': hubsite_service_n8n_priority}] if hubsite_service_n8n_enabled else [])
|
||||
+
|
||||
([{'name': hubsite_service_nextcloud_name, 'url': hubsite_service_nextcloud_url, 'logo_location': hubsite_service_nextcloud_logo_location, 'description': hubsite_service_nextcloud_description, 'priority': hubsite_service_nextcloud_priority}] if hubsite_service_nextcloud_enabled else [])
|
||||
+
|
||||
([{'name': hubsite_service_owncast_name, 'url': hubsite_service_owncast_url, 'logo_location': hubsite_service_owncast_logo_location, 'description': hubsite_service_owncast_description, 'priority': hubsite_service_owncast_priority}] if hubsite_service_owncast_enabled else [])
|
||||
|
@ -1853,6 +1873,51 @@ mrs_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_
|
|||
|
||||
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# n8n #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
n8n_enabled: false
|
||||
|
||||
n8n_identifier: "{{ mash_playbook_service_identifier_prefix }}n8n"
|
||||
|
||||
n8n_base_path: "{{ mash_playbook_base_path }}/{{ mash_playbook_service_base_directory_name_prefix }}n8n"
|
||||
|
||||
n8n_uid: "{{ mash_playbook_uid }}"
|
||||
n8n_gid: "{{ mash_playbook_gid }}"
|
||||
|
||||
n8n_systemd_required_services_list: |
|
||||
{{
|
||||
(['docker.service'])
|
||||
+
|
||||
([devture_postgres_identifier ~ '.service'] if devture_postgres_enabled and n8n_database_hostname == devture_postgres_identifier else [])
|
||||
}}
|
||||
|
||||
n8n_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 n8n_database_hostname == devture_postgres_identifier and n8n_container_network != devture_postgres_container_network else [])
|
||||
}}
|
||||
|
||||
n8n_container_labels_traefik_enabled: "{{ mash_playbook_traefik_labels_enabled }}"
|
||||
n8n_container_labels_traefik_docker_network: "{{ mash_playbook_reverse_proxyable_services_additional_network }}"
|
||||
n8n_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
|
||||
n8n_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
|
||||
|
||||
n8n_database_hostname: "{{ devture_postgres_connection_hostname if devture_postgres_enabled else '' }}"
|
||||
n8n_database_password: "{{ '%s' | format(mash_playbook_generic_secret_key) | password_hash('sha512', 'n8n.db', rounds=655555) | to_uuid }}"
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# /n8n #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
|
||||
|
||||
########################################################################
|
||||
# #
|
||||
# navidrome #
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
|
||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-adguard-home.git
|
||||
version: v0.107.26-1
|
||||
name: adguard_home
|
||||
|
@ -103,6 +102,9 @@
|
|||
name: mariadb
|
||||
- src: git+https://gitlab.com/etke.cc/roles/miniflux.git
|
||||
version: v2.0.45-0
|
||||
- src: git+https://github.com/kinduff/ansible-docker-n8n.git
|
||||
version: v1.4.1
|
||||
name: n8n
|
||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-mobilizon.git
|
||||
version: v3.1.0-2
|
||||
name: mobilizon
|
||||
|
|
|
@ -90,6 +90,8 @@
|
|||
|
||||
- role: galaxy/mrs
|
||||
|
||||
- role: galaxy/n8n
|
||||
|
||||
- role: galaxy/healthchecks
|
||||
|
||||
- role: galaxy/infisical
|
||||
|
|
Loading…
Reference in a new issue