diff --git a/apps/n8n-1/config.json b/apps/n8n-1/config.json new file mode 100644 index 00000000..8ff88958 --- /dev/null +++ b/apps/n8n-1/config.json @@ -0,0 +1,31 @@ +{ + "$schema": "../schema.json", + "name": "n8n", + "available": true, + "exposable": true, + "port": 8215, + "id": "n8n-1", + "tipi_version": 1, + "version": "1.27.2", + "categories": ["automation"], + "description": "n8n is an extendable workflow automation tool. With a fair-code distribution model, n8n will always have visible source code, be available to self-host, and allow you to add your own custom functions, logic and apps. n8n's node-based approach makes it highly versatile, enabling you to connect anything to everything.", + "short_desc": "Workflow Automation Tool. Alternative to Zapier", + "author": "n8n.io", + "source": "https://github.com/n8n-io/n8n", + "website": "https://n8n.io/", + "form_fields": [ + { + "type": "random", + "label": "Database Password", + "min": 32, + "env_variable": "N8N_DB_PASSWORD" + }, + { + "type": "random", + "label": "Database Non Root Password", + "min": 32, + "env_variable": "N8N_NR_DB_PASSWORD" + } + ], + "supported_architectures": ["arm64", "amd64"] +} diff --git a/apps/n8n-1/data/init-data.sh b/apps/n8n-1/data/init-data.sh new file mode 100644 index 00000000..f34e7691 --- /dev/null +++ b/apps/n8n-1/data/init-data.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -e; + +if [ -n "${POSTGRES_NON_ROOT_USER:-}" ] && [ -n "${POSTGRES_NON_ROOT_PASSWORD:-}" ]; then + psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL + CREATE USER ${POSTGRES_NON_ROOT_USER} WITH PASSWORD '${POSTGRES_NON_ROOT_PASSWORD}'; + GRANT ALL PRIVILEGES ON DATABASE ${POSTGRES_DB} TO ${POSTGRES_NON_ROOT_USER}; + EOSQL +else + echo "SETUP INFO: No Environment variables given!" +fi diff --git a/apps/n8n-1/docker-compose.yml b/apps/n8n-1/docker-compose.yml new file mode 100644 index 00000000..e001ff10 --- /dev/null +++ b/apps/n8n-1/docker-compose.yml @@ -0,0 +1,73 @@ +version: '3.7' + +services: + n8n-1: + container_name: n8n-1 + image: n8nio/n8n:1.27.2 + restart: unless-stopped + ports: + - ${APP_PORT}:5678 + volumes: + - ${APP_DATA_DIR}/data/n8n:/home/node/.n8n + environment: + - N8N_EDITOR_BASE_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN} + - WEBHOOK_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN} + - DB_TYPE=postgresdb + - DB_POSTGRESDB_HOST=n8n-db + - DB_POSTGRESDB_PORT=5432 + - DB_POSTGRESDB_DATABASE=n8n + - DB_POSTGRESDB_USER=n8n + - DB_POSTGRESDB_PASSWORD=${N8N_NR_DB_PASSWORD} + networks: + - tipi_main_network + links: + - n8n-db + depends_on: + n8n-db: + condition: service_healthy + labels: + # Main + traefik.enable: true + traefik.http.middlewares.n8n-web-redirect.redirectscheme.scheme: https + traefik.http.services.n8n.loadbalancer.server.port: 5678 + # Web + traefik.http.routers.n8n-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.n8n-insecure.entrypoints: web + traefik.http.routers.n8n-insecure.service: n8n + traefik.http.routers.n8n-insecure.middlewares: n8n-web-redirect + # Websecure + traefik.http.routers.n8n.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.n8n.entrypoints: websecure + traefik.http.routers.n8n.service: n8n + traefik.http.routers.n8n.tls.certresolver: myresolver + # Local domain + traefik.http.routers.n8n-local-insecure.rule: Host(`n8n.${LOCAL_DOMAIN}`) + traefik.http.routers.n8n-local-insecure.entrypoints: web + traefik.http.routers.n8n-local-insecure.service: n8n + traefik.http.routers.n8n-local-insecure.middlewares: n8n-web-redirect + # Local domain secure + traefik.http.routers.n8n-local.rule: Host(`n8n.${LOCAL_DOMAIN}`) + traefik.http.routers.n8n-local.entrypoints: websecure + traefik.http.routers.n8n-local.service: n8n + traefik.http.routers.n8n-local.tls: true + + n8n-db: + container_name: n8n-db + image: postgres:11 + restart: unless-stopped + networks: + - tipi_main_network + environment: + - POSTGRES_USER=tipi + - POSTGRES_PASSWORD=${N8N_DB_PASSWORD} + - POSTGRES_DB=n8n + - POSTGRES_NON_ROOT_USER=n8n + - POSTGRES_NON_ROOT_PASSWORD=${N8N_NR_DB_PASSWORD} + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + - ${APP_DATA_DIR}/data/init-data.sh:/docker-entrypoint-initdb.d/init-data.sh + healthcheck: + test: ['CMD-SHELL', 'pg_isready -h localhost -U $$POSTGRES_USER -d $$POSTGRES_DB'] + interval: 5s + timeout: 5s + retries: 10 diff --git a/apps/n8n-1/metadata/description.md b/apps/n8n-1/metadata/description.md new file mode 100644 index 00000000..85a7e4ff --- /dev/null +++ b/apps/n8n-1/metadata/description.md @@ -0,0 +1,16 @@ +## Installation Notes ## + +To enable OAUTH integrations you will need to enable the "expose app" option and configure a URL in Tipi. This setting can be changed at a later date if an integration is identified that needs it. + +## Easily automate tasks across different services. + +n8n is an extendable workflow automation tool. With a fair-code distribution model, n8n will always have visible source code, be available to self-host, and allow you to add your own custom functions, logic and apps. n8n's node-based approach makes it highly +versatile, enabling you to connect anything to everything. + +![Screenshot](https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-screenshot.png) + +## Build with LangChain and AI in n8n +With n8n's LangChain nodes you can build AI-powered functionality within your workflows. The LangChain nodes are configurable, meaning you can choose your preferred agent, LLM, memory, and so on. Alongside the LangChain nodes, you can connect any n8n node as normal: this means you can integrate your LangChain logic with other data sources and services. + +## Available integrations +n8n has 200+ different nodes to automate workflows. The list can be found on: https://n8n.io/integrations diff --git a/apps/n8n-1/metadata/logo.jpg b/apps/n8n-1/metadata/logo.jpg new file mode 100644 index 00000000..5e53b783 Binary files /dev/null and b/apps/n8n-1/metadata/logo.jpg differ diff --git a/apps/n8n/config.json b/apps/n8n/config.json index cc7aab5c..9d9af947 100644 --- a/apps/n8n/config.json +++ b/apps/n8n/config.json @@ -1,11 +1,12 @@ { "$schema": "../schema.json", - "name": "n8n", + "name": "n8n (v0)", "available": true, "exposable": true, + "deprecated": true, "port": 8094, "id": "n8n", - "tipi_version": 26, + "tipi_version": 27, "version": "0.237.0", "categories": ["automation"], "description": "n8n is an extendable workflow automation tool. With a fair-code distribution model, n8n will always have visible source code, be available to self-host, and allow you to add your own custom functions, logic and apps. n8n's node-based approach makes it highly versatile, enabling you to connect anything to everything.", diff --git a/apps/n8n/docker-compose.yml b/apps/n8n/docker-compose.yml index db7847de..02c7026a 100644 --- a/apps/n8n/docker-compose.yml +++ b/apps/n8n/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.7" +version: '3.7' services: n8n: diff --git a/apps/n8n/metadata/description.md b/apps/n8n/metadata/description.md index a3fccf73..51eef14c 100644 --- a/apps/n8n/metadata/description.md +++ b/apps/n8n/metadata/description.md @@ -1,10 +1,12 @@ -## Installation Notes ## +This version of n8n is deprecated. Please use the latest version of n8n found in the app store. If you need to migrate your data, please follow the [migration guide](https://docs.n8n.io/1-0-migration-checklist/). + +## Installation Notes To enable OAUTH integrations you will need to enable the "expose app" option and configure a URL in Tipi. This setting can be changed at a later date if an integration is identified that needs it. -## Easily automate tasks across different services. +## Easily automate tasks across different services. -n8n is an extendable workflow automation tool. With a fair-code distribution model, n8n will always have visible source code, be available to self-host, and allow you to add your own custom functions, logic and apps. n8n's node-based approach makes it highly +n8n is an extendable workflow automation tool. With a fair-code distribution model, n8n will always have visible source code, be available to self-host, and allow you to add your own custom functions, logic and apps. n8n's node-based approach makes it highly versatile, enabling you to connect anything to everything. ![Screenshot](https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-screenshot.png)