@n8n-as-code/skills 1.7.1-next.7 → 1.8.0-next.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/n8n-docs-complete.json +977 -827
- package/dist/assets/n8n-knowledge-index.json +623 -479
- package/dist/assets/n8n-nodes-index.json +5 -5
- package/dist/assets/n8n-nodes-technical.json +5 -5
- package/dist/assets/workflows-index.json +1 -1
- package/dist/services/ai-context-generator.d.ts.map +1 -1
- package/dist/services/ai-context-generator.js +17 -19
- package/dist/services/ai-context-generator.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-04-
|
|
2
|
+
"generatedAt": "2026-04-07T22:07:16.079Z",
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"sourceUrl": "https://docs.n8n.io/llms.txt",
|
|
5
|
-
"totalPages":
|
|
5
|
+
"totalPages": 1262,
|
|
6
6
|
"statistics": {
|
|
7
7
|
"byCategory": {
|
|
8
8
|
"other": 517,
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"code": 20,
|
|
13
13
|
"data": 38,
|
|
14
14
|
"flow-logic": 8,
|
|
15
|
-
"hosting":
|
|
15
|
+
"hosting": 80,
|
|
16
16
|
"integrations": 306,
|
|
17
17
|
"cluster-nodes": 101,
|
|
18
18
|
"trigger-nodes": 107,
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"withNodeNames": 471,
|
|
23
23
|
"withUseCases": 39,
|
|
24
|
-
"withCodeExamples":
|
|
24
|
+
"withCodeExamples": 180
|
|
25
25
|
},
|
|
26
26
|
"categories": {
|
|
27
27
|
"other": {
|
|
@@ -710,7 +710,7 @@
|
|
|
710
710
|
},
|
|
711
711
|
"hosting": {
|
|
712
712
|
"description": "Self-hosting, deployment, and infrastructure",
|
|
713
|
-
"totalPages":
|
|
713
|
+
"totalPages": 80,
|
|
714
714
|
"pages": [
|
|
715
715
|
"page-0150",
|
|
716
716
|
"page-0151",
|
|
@@ -767,6 +767,7 @@
|
|
|
767
767
|
"page-0202",
|
|
768
768
|
"page-0203",
|
|
769
769
|
"page-0204",
|
|
770
|
+
"page-0205",
|
|
770
771
|
"page-0206",
|
|
771
772
|
"page-0207",
|
|
772
773
|
"page-0208",
|
|
@@ -17077,193 +17078,6 @@
|
|
|
17077
17078
|
},
|
|
17078
17079
|
{
|
|
17079
17080
|
"id": "page-0203",
|
|
17080
|
-
"title": "Docker Compose",
|
|
17081
|
-
"url": "https://docs.n8n.io/hosting/installation/server-setups/docker-compose/index.md",
|
|
17082
|
-
"urlPath": "hosting/installation/server-setups/docker-compose/index.md",
|
|
17083
|
-
"category": "hosting",
|
|
17084
|
-
"subcategory": null,
|
|
17085
|
-
"nodeName": null,
|
|
17086
|
-
"nodeType": null,
|
|
17087
|
-
"content": {
|
|
17088
|
-
"markdown": "# Docker-Compose\n\nThese instructions cover how to run n8n on a Linux server using Docker Compose.\n\nIf you have already installed Docker and Docker-Compose, then you can start with [step 3](#3-dns-setup).\n\nYou can find Docker Compose configurations for various architectures in the [n8n-hosting repository](https://github.com/n8n-io/n8n-hosting).\n\nSelf-hosting knowledge prerequisites\n\nSelf-hosting n8n requires technical knowledge, including:\n\n- Setting up and configuring servers and containers\n- Managing application resources and scaling\n- Securing servers and applications\n- Configuring n8n\n\nn8n recommends self-hosting for expert users. Mistakes can lead to data loss, security issues, and downtime. If you aren't experienced at managing servers, n8n recommends [n8n Cloud](https://n8n.io/cloud/).\n\nStable and Beta versions\n\nn8n releases a new minor version most weeks. The `stable` version is for production use. `beta` is the most recent release. The `beta` version may be unstable. To report issues, use the [forum](https://community.n8n.io/c/questions/12).\n\nCurrent `stable`: 2.15.0 Current `beta`: 2.16.0\n\n## 1. Install Docker and Docker Compose\n\nThe way that you install Docker and Docker Compose depends on your Linux distribution. You can find specific instructions for each component in the links below:\n\n- [Docker Engine](https://docs.docker.com/engine/install/)\n- [Docker Compose](https://docs.docker.com/compose/install/linux/)\n\nAfter following the installation instructions, verify that Docker and Docker Compose are available by typing:\n\n```\ndocker --version\ndocker compose version\n```\n\n## 2. Optional: Non-root user access\n\nYou can optionally grant access to run Docker without the `sudo` command.\n\nTo grant access to the user that you're currently logged in with (assuming they have `sudo` access), run:\n\n```\nsudo usermod -aG docker ${USER}\n# Register the `docker` group membership with current session without changing your primary group\nexec sg docker newgrp\n```\n\nTo grant access to a different user, type the following, substituting `<USER_TO_RUN_DOCKER>` with the appropriate username:\n\n```\nsudo usermod -aG docker <USER_TO_RUN_DOCKER>\n```\n\nYou will need to run `exec sg docker newgrp` from any of that user's existing sessions for it to access the new group permissions.\n\nYou can verify that your current session recognizes the `docker` group by typing:\n\n```\ngroups\n```\n\n## 3. DNS setup\n\nTo host n8n online or on a network, create a dedicated subdomain pointed at your server.\n\nAdd an A record to route the subdomain accordingly:\n\n| Record type | Name | Destination |\n| ----------- | --------------------------------- | -------------------------- |\n| A | `n8n` (or your desired subdomain) | `<your_server_IP_address>` |\n\n## 4. Create an `.env` file\n\nCreate a project directory to store your n8n environment configuration and Docker Compose files and navigate inside:\n\n```\nmkdir n8n-compose\ncd n8n-compose\n```\n\nInside the `n8n-compose` directory, create an `.env` file to customize your n8n instance's details. Change it to match your own information:\n\n```\n# DOMAIN_NAME and SUBDOMAIN together determine where n8n will be reachable from\n# The top level domain to serve from\nDOMAIN_NAME=example.com\n\n# The subdomain to serve from\nSUBDOMAIN=n8n\n\n# The above example serve n8n at: https://n8n.example.com\n\n# Optional timezone to set which gets used by Cron and other scheduling nodes\n# New York is the default value if not set\nGENERIC_TIMEZONE=Europe/Berlin\n\n# The email address to use for the TLS/SSL certificate creation\nSSL_EMAIL=user@example.com\n```\n\n## 5. Create local files directory\n\nInside your project directory, create a directory called `local-files` for sharing files between the n8n instance and the host system (for example, using the [Read/Write Files from Disk node](../../../../integrations/builtin/core-nodes/n8n-nodes-base.readwritefile/)):\n\n```\nmkdir local-files\n```\n\nThe Docker Compose file below can automatically create this directory, but doing it manually ensures that it's created with the right ownership and permissions.\n\n## 6. Create Docker Compose file\n\nCreate a `compose.yaml` file. Paste the following in the file:\n\n```\nservices:\n traefik:\n image: \"traefik\"\n restart: always\n command:\n - \"--api.insecure=true\"\n - \"--providers.docker=true\"\n - \"--providers.docker.exposedbydefault=false\"\n - \"--entrypoints.web.address=:80\"\n - \"--entrypoints.web.http.redirections.entryPoint.to=websecure\"\n - \"--entrypoints.web.http.redirections.entrypoint.scheme=https\"\n - \"--entrypoints.websecure.address=:443\"\n - \"--certificatesresolvers.mytlschallenge.acme.tlschallenge=true\"\n - \"--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}\"\n - \"--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json\"\n ports:\n - \"80:80\"\n - \"443:443\"\n volumes:\n - traefik_data:/letsencrypt\n - /var/run/docker.sock:/var/run/docker.sock:ro\n\n n8n:\n image: docker.n8n.io/n8nio/n8n\n restart: always\n ports:\n - \"127.0.0.1:5678:5678\"\n labels:\n - traefik.enable=true\n - traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)\n - traefik.http.routers.n8n.tls=true\n - traefik.http.routers.n8n.entrypoints=web,websecure\n - traefik.http.routers.n8n.tls.certresolver=mytlschallenge\n - traefik.http.middlewares.n8n.headers.SSLRedirect=true\n - traefik.http.middlewares.n8n.headers.STSSeconds=315360000\n - traefik.http.middlewares.n8n.headers.browserXSSFilter=true\n - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true\n - traefik.http.middlewares.n8n.headers.forceSTSHeader=true\n - traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}\n - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true\n - traefik.http.middlewares.n8n.headers.STSPreload=true\n - traefik.http.routers.n8n.middlewares=n8n@docker\n environment:\n - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true\n - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}\n - N8N_PORT=5678\n - N8N_PROTOCOL=https \n - NODE_ENV=production\n - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/\n - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}\n - TZ=${GENERIC_TIMEZONE}\n volumes:\n - n8n_data:/home/node/.n8n\n - ./local-files:/files\n\nvolumes:\n n8n_data:\n traefik_data:\n```\n\nThe Docker Compose file above configures two containers: one for n8n, and one to run [traefik](https://github.com/traefik/traefik), an application proxy to manage TLS/SSL certificates and handle routing.\n\nIt also creates and mounts two [Docker Volumes](https://docs.docker.com/engine/storage/volumes/) and mounts the `local-files` directory you created earlier:\n\n| Name | Type | Container mount | Description |\n| --------------- | ----------------------------------------------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| `n8n_data` | [Volume](https://docs.docker.com/engine/storage/volumes/) | `/home/node/.n8n` | Where n8n saves its SQLite database file and encryption key. |\n| `traefik_data` | [Volume](https://docs.docker.com/engine/storage/volumes/) | `/letsencrypt` | Where traefik saves TLS/SSL certificate data. |\n| `./local-files` | [Bind](https://docs.docker.com/engine/storage/bind-mounts/) | `/files` | A local directory shared between the n8n instance and host. In n8n, use the `/files` path to read from and write to this directory. |\n\n## 7. Start Docker Compose\n\nStart n8n by typing:\n\n```\nsudo docker compose up -d\n```\n\nTo stop the containers, type:\n\n```\nsudo docker compose stop\n```\n\n## 8. Done\n\nYou can now reach n8n using the subdomain + domain combination you defined in your `.env` file configuration. The above example would result in `https://n8n.example.com`.\n\nn8n is only accessible using secure HTTPS, not over plain HTTP.\n\nIf you have trouble reaching your instance, check your server's firewall settings and your DNS configuration.\n\n## Next steps\n\n- Learn more about [configuring](../../../configuration/environment-variables/) and [scaling](../../../scaling/overview/) n8n.\n- Or explore using n8n: try the [Quickstarts](../../../../try-it-out/).\n",
|
|
17089
|
-
"excerpt": "# Docker-Compose These instructions cover how to run n8n on a Linux server using Docker Compose. If you have already installed Docker and Docker-Compose, then you can start with [step 3](#3-dns-setup). You can find Docker Compose configurations for various architectures in the [n8n-hosting repository](https://github.com/n8n-io/n8n-hosting). Self-hosting knowledge prerequisites Self-hosting n8n requires technical knowledge, including: - Setting up and configuring servers and containers - Ma...",
|
|
17090
|
-
"sections": [
|
|
17091
|
-
{
|
|
17092
|
-
"title": "Docker-Compose",
|
|
17093
|
-
"level": 1,
|
|
17094
|
-
"content": "These instructions cover how to run n8n on a Linux server using Docker Compose.\n\nIf you have already installed Docker and Docker-Compose, then you can start with [step 3](#3-dns-setup).\n\nYou can find Docker Compose configurations for various architectures in the [n8n-hosting repository](https://github.com/n8n-io/n8n-hosting).\n\nSelf-hosting knowledge prerequisites\n\nSelf-hosting n8n requires technical knowledge, including:\n\n- Setting up and configuring servers and containers\n- Managing application resources and scaling\n- Securing servers and applications\n- Configuring n8n\n\nn8n recommends self-hosting for expert users. Mistakes can lead to data loss, security issues, and downtime. If you aren't experienced at managing servers, n8n recommends [n8n Cloud](https://n8n.io/cloud/).\n\nStable and Beta versions\n\nn8n releases a new minor version most weeks. The `stable` version is for production use. `beta` is the most recent release. The `beta` version may be unstable. To report issues, use the [f"
|
|
17095
|
-
},
|
|
17096
|
-
{
|
|
17097
|
-
"title": "Register the `docker` group membership with current session without changing your primary group",
|
|
17098
|
-
"level": 1,
|
|
17099
|
-
"content": "exec sg docker newgrp\n```\n\nTo grant access to a different user, type the following, substituting `<USER_TO_RUN_DOCKER>` with the appropriate username:\n\n```\nsudo usermod -aG docker <USER_TO_RUN_DOCKER>\n```\n\nYou will need to run `exec sg docker newgrp` from any of that user's existing sessions for it to access the new group permissions.\n\nYou can verify that your current session recognizes the `docker` group by typing:\n\n```\ngroups\n```"
|
|
17100
|
-
},
|
|
17101
|
-
{
|
|
17102
|
-
"title": "DOMAIN_NAME and SUBDOMAIN together determine where n8n will be reachable from",
|
|
17103
|
-
"level": 1,
|
|
17104
|
-
"content": ""
|
|
17105
|
-
},
|
|
17106
|
-
{
|
|
17107
|
-
"title": "The top level domain to serve from",
|
|
17108
|
-
"level": 1,
|
|
17109
|
-
"content": "DOMAIN_NAME=example.com"
|
|
17110
|
-
},
|
|
17111
|
-
{
|
|
17112
|
-
"title": "The subdomain to serve from",
|
|
17113
|
-
"level": 1,
|
|
17114
|
-
"content": "SUBDOMAIN=n8n"
|
|
17115
|
-
},
|
|
17116
|
-
{
|
|
17117
|
-
"title": "The above example serve n8n at: https://n8n.example.com",
|
|
17118
|
-
"level": 1,
|
|
17119
|
-
"content": ""
|
|
17120
|
-
},
|
|
17121
|
-
{
|
|
17122
|
-
"title": "Optional timezone to set which gets used by Cron and other scheduling nodes",
|
|
17123
|
-
"level": 1,
|
|
17124
|
-
"content": ""
|
|
17125
|
-
},
|
|
17126
|
-
{
|
|
17127
|
-
"title": "New York is the default value if not set",
|
|
17128
|
-
"level": 1,
|
|
17129
|
-
"content": "GENERIC_TIMEZONE=Europe/Berlin"
|
|
17130
|
-
},
|
|
17131
|
-
{
|
|
17132
|
-
"title": "The email address to use for the TLS/SSL certificate creation",
|
|
17133
|
-
"level": 1,
|
|
17134
|
-
"content": "SSL_EMAIL=user@example.com\n```"
|
|
17135
|
-
}
|
|
17136
|
-
]
|
|
17137
|
-
},
|
|
17138
|
-
"metadata": {
|
|
17139
|
-
"keywords": [
|
|
17140
|
-
"docker",
|
|
17141
|
-
"compose",
|
|
17142
|
-
"install",
|
|
17143
|
-
"optional:",
|
|
17144
|
-
"root",
|
|
17145
|
-
"user",
|
|
17146
|
-
"access",
|
|
17147
|
-
"register",
|
|
17148
|
-
"`docker`",
|
|
17149
|
-
"group",
|
|
17150
|
-
"membership",
|
|
17151
|
-
"with",
|
|
17152
|
-
"current",
|
|
17153
|
-
"session",
|
|
17154
|
-
"without",
|
|
17155
|
-
"changing",
|
|
17156
|
-
"your",
|
|
17157
|
-
"primary",
|
|
17158
|
-
"setup",
|
|
17159
|
-
"create",
|
|
17160
|
-
"env`",
|
|
17161
|
-
"file",
|
|
17162
|
-
"domain",
|
|
17163
|
-
"name",
|
|
17164
|
-
"subdomain",
|
|
17165
|
-
"together",
|
|
17166
|
-
"determine",
|
|
17167
|
-
"where",
|
|
17168
|
-
"will",
|
|
17169
|
-
"reachable",
|
|
17170
|
-
"from",
|
|
17171
|
-
"level",
|
|
17172
|
-
"serve",
|
|
17173
|
-
"above",
|
|
17174
|
-
"example",
|
|
17175
|
-
"https://n8n",
|
|
17176
|
-
"optional",
|
|
17177
|
-
"timezone",
|
|
17178
|
-
"which",
|
|
17179
|
-
"gets",
|
|
17180
|
-
"used",
|
|
17181
|
-
"cron",
|
|
17182
|
-
"other",
|
|
17183
|
-
"scheduling",
|
|
17184
|
-
"nodes",
|
|
17185
|
-
"york",
|
|
17186
|
-
"default",
|
|
17187
|
-
"value",
|
|
17188
|
-
"email",
|
|
17189
|
-
"address",
|
|
17190
|
-
"tls/ssl",
|
|
17191
|
-
"certificate",
|
|
17192
|
-
"creation",
|
|
17193
|
-
"local",
|
|
17194
|
-
"files",
|
|
17195
|
-
"directory",
|
|
17196
|
-
"start",
|
|
17197
|
-
"done",
|
|
17198
|
-
"next",
|
|
17199
|
-
"steps"
|
|
17200
|
-
],
|
|
17201
|
-
"useCases": [],
|
|
17202
|
-
"operations": [],
|
|
17203
|
-
"codeExamples": 9,
|
|
17204
|
-
"complexity": "intermediate",
|
|
17205
|
-
"readingTime": "5 min",
|
|
17206
|
-
"contentLength": 8701,
|
|
17207
|
-
"relatedPages": []
|
|
17208
|
-
},
|
|
17209
|
-
"searchIndex": {
|
|
17210
|
-
"fullText": "docker compose # docker-compose\n\nthese instructions cover how to run n8n on a linux server using docker compose.\n\nif you have already installed docker and docker-compose, then you can start with [step 3](#3-dns-setup).\n\nyou can find docker compose configurations for various architectures in the [n8n-hosting repository](https://github.com/n8n-io/n8n-hosting).\n\nself-hosting knowledge prerequisites\n\nself-hosting n8n requires technical knowledge, including:\n\n- setting up and configuring servers and containers\n- managing application resources and scaling\n- securing servers and applications\n- configuring n8n\n\nn8n recommends self-hosting for expert users. mistakes can lead to data loss, security issues, and downtime. if you aren't experienced at managing servers, n8n recommends [n8n cloud](https://n8n.io/cloud/).\n\nstable and beta versions\n\nn8n releases a new minor version most weeks. the `stable` version is for production use. `beta` is the most recent release. the `beta` version may be unstable. to report issues, use the [forum](https://community.n8n.io/c/questions/12).\n\ncurrent `stable`: 2.15.0 current `beta`: 2.16.0\n\n## 1. install docker and docker compose\n\nthe way that you install docker and docker compose depends on your linux distribution. you can find specific instructions for each component in the links below:\n\n- [docker engine](https://docs.docker.com/engine/install/)\n- [docker compose](https://docs.docker.com/compose/install/linux/)\n\nafter following the installation instructions, verify that docker and docker compose are available by typing:\n\n```\ndocker --version\ndocker compose version\n```\n\n## 2. optional: non-root user access\n\nyou can optionally grant access to run docker without the `sudo` command.\n\nto grant access to the user that you're currently logged in with (assuming they have `sudo` access), run:\n\n```\nsudo usermod -ag docker ${user}\n# register the `docker` group membership with current session without changing your primary group\nexec sg docker newgrp\n```\n\nto grant access to a different user, type the following, substituting `<user_to_run_docker>` with the appropriate username:\n\n```\nsudo usermod -ag docker <user_to_run_docker>\n```\n\nyou will need to run `exec sg docker newgrp` from any of that user's existing sessions for it to access the new group permissions.\n\nyou can verify that your current session recognizes the `docker` group by typing:\n\n```\ngroups\n```\n\n## 3. dns setup\n\nto host n8n online or on a network, create a dedicated subdomain pointed at your server.\n\nadd an a record to route the subdomain accordingly:\n\n| record type | name | destination |\n| ----------- | --------------------------------- | -------------------------- |\n| a | `n8n` (or your desired subdomain) | `<your_server_ip_address>` |\n\n## 4. create an `.env` file\n\ncreate a project directory to store your n8n environment configuration and docker compose files and navigate inside:\n\n```\nmkdir n8n-compose\ncd n8n-compose\n```\n\ninside the `n8n-compose` directory, create an `.env` file to customize your n8n instance's details. change it to match your own information:\n\n```\n# domain_name and subdomain together determine where n8n will be reachable from\n# the top level domain to serve from\ndomain_name=example.com\n\n# the subdomain to serve from\nsubdomain=n8n\n\n# the above example serve n8n at: https://n8n.example.com\n\n# optional timezone to set which gets used by cron and other scheduling nodes\n# new york is the default value if not set\ngeneric_timezone=europe/berlin\n\n# the email address to use for the tls/ssl certificate creation\nssl_email=user@example.com\n```\n\n## 5. create local files directory\n\ninside your project directory, create a directory called `local-files` for sharing files between the n8n instance and the host system (for example, using the [read/write files from disk node](../../../../integrations/builtin/core-nodes/n8n-nodes-base.readwritefile/)):\n\n```\nmkdir local-files\n```\n\nthe docker compose file below can automatically create this directory, but doing it manually ensures that it's created with the right ownership and permissions.\n\n## 6. create docker compose file\n\ncreate a `compose.yaml` file. paste the following in the file:\n\n```\nservices:\n traefik:\n image: \"traefik\"\n restart: always\n command:\n - \"--api.insecure=true\"\n - \"--providers.docker=true\"\n - \"--providers.docker.exposedbydefault=false\"\n - \"--entrypoints.web.address=:80\"\n - \"--entrypoints.web.http.redirections.entrypoint.to=websecure\"\n - \"--entrypoints.web.http.redirections.entrypoint.scheme=https\"\n - \"--entrypoints.websecure.address=:443\"\n - \"--certificatesresolvers.mytlschallenge.acme.tlschallenge=true\"\n - \"--certificatesresolvers.mytlschallenge.acme.email=${ssl_email}\"\n - \"--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json\"\n ports:\n - \"80:80\"\n - \"443:443\"\n volumes:\n - traefik_data:/letsencrypt\n - /var/run/docker.sock:/var/run/docker.sock:ro\n\n n8n:\n image: docker.n8n.io/n8nio/n8n\n restart: always\n ports:\n - \"127.0.0.1:5678:5678\"\n labels:\n - traefik.enable=true\n - traefik.http.routers.n8n.rule=host(`${subdomain}.${domain_name}`)\n - traefik.http.routers.n8n.tls=true\n - traefik.http.routers.n8n.entrypoints=web,websecure\n - traefik.http.routers.n8n.tls.certresolver=mytlschallenge\n - traefik.http.middlewares.n8n.headers.sslredirect=true\n - traefik.http.middlewares.n8n.headers.stsseconds=315360000\n - traefik.http.middlewares.n8n.headers.browserxssfilter=true\n - traefik.http.middlewares.n8n.headers.contenttypenosniff=true\n - traefik.http.middlewares.n8n.headers.forcestsheader=true\n - traefik.http.middlewares.n8n.headers.sslhost=${domain_name}\n - traefik.http.middlewares.n8n.headers.stsincludesubdomains=true\n - traefik.http.middlewares.n8n.headers.stspreload=true\n - traefik.http.routers.n8n.middlewares=n8n@docker\n environment:\n - n8n_enforce_settings_file_permissions=true\n - n8n_host=${subdomain}.${domain_name}\n - n8n_port=5678\n - n8n_protocol=https \n - node_env=production\n - webhook_url=https://${subdomain}.${domain_name}/\n - generic_timezone=${generic_timezone}\n - tz=${generic_timezone}\n volumes:\n - n8n_data:/home/node/.n8n\n - ./local-files:/files\n\nvolumes:\n n8n_data:\n traefik_data:\n```\n\nthe docker compose file above configures two containers: one for n8n, and one to run [traefik](https://github.com/traefik/traefik), an application proxy to manage tls/ssl certificates and handle routing.\n\nit also creates and mounts two [docker volumes](https://docs.docker.com/engine/storage/volumes/) and mounts the `local-files` directory you created earlier:\n\n| name | type | container mount | description |\n| --------------- | ----------------------------------------------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| `n8n_data` | [volume](https://docs.docker.com/engine/storage/volumes/) | `/home/node/.n8n` | where n8n saves its sqlite database file and encryption key. |\n| `traefik_data` | [volume](https://docs.docker.com/engine/storage/volumes/) | `/letsencrypt` | where traefik saves tls/ssl certificate data. |\n| `./local-files` | [bind](https://docs.docker.com/engine/storage/bind-mounts/) | `/files` | a local directory shared between the n8n instance and host. in n8n, use the `/files` path to read from and write to this directory. |\n\n## 7. start docker compose\n\nstart n8n by typing:\n\n```\nsudo docker compose up -d\n```\n\nto stop the containers, type:\n\n```\nsudo docker compose stop\n```\n\n## 8. done\n\nyou can now reach n8n using the subdomain + domain combination you defined in your `.env` file configuration. the above example would result in `https://n8n.example.com`.\n\nn8n is only accessible using secure https, not over plain http.\n\nif you have trouble reaching your instance, check your server's firewall settings and your dns configuration.\n\n## next steps\n\n- learn more about [configuring](../../../configuration/environment-variables/) and [scaling](../../../scaling/overview/) n8n.\n- or explore using n8n: try the [quickstarts](../../../../try-it-out/).\n docker-compose register the `docker` group membership with current session without changing your primary group domain_name and subdomain together determine where n8n will be reachable from the top level domain to serve from the subdomain to serve from the above example serve n8n at: https://n8n.example.com optional timezone to set which gets used by cron and other scheduling nodes new york is the default value if not set the email address to use for the tls/ssl certificate creation",
|
|
17211
|
-
"importantTerms": [
|
|
17212
|
-
"docker",
|
|
17213
|
-
"compose",
|
|
17214
|
-
"traefik",
|
|
17215
|
-
"https",
|
|
17216
|
-
"http",
|
|
17217
|
-
"your",
|
|
17218
|
-
"subdomain",
|
|
17219
|
-
"files",
|
|
17220
|
-
"true",
|
|
17221
|
-
"from",
|
|
17222
|
-
"create",
|
|
17223
|
-
"file",
|
|
17224
|
-
"directory",
|
|
17225
|
-
"example",
|
|
17226
|
-
"middlewares",
|
|
17227
|
-
"headers",
|
|
17228
|
-
"local",
|
|
17229
|
-
"volumes",
|
|
17230
|
-
"with",
|
|
17231
|
-
"that",
|
|
17232
|
-
"engine",
|
|
17233
|
-
"docs",
|
|
17234
|
-
"user",
|
|
17235
|
-
"access",
|
|
17236
|
-
"sudo",
|
|
17237
|
-
"group",
|
|
17238
|
-
"serve",
|
|
17239
|
-
"using",
|
|
17240
|
-
"hosting",
|
|
17241
|
-
"version",
|
|
17242
|
-
"current",
|
|
17243
|
-
"entrypoints",
|
|
17244
|
-
"storage",
|
|
17245
|
-
"routers",
|
|
17246
|
-
"beta",
|
|
17247
|
-
"install",
|
|
17248
|
-
"type",
|
|
17249
|
-
"host",
|
|
17250
|
-
"configuration",
|
|
17251
|
-
"instance",
|
|
17252
|
-
"where",
|
|
17253
|
-
"above",
|
|
17254
|
-
"nodes",
|
|
17255
|
-
"address",
|
|
17256
|
-
"mytlschallenge",
|
|
17257
|
-
"acme",
|
|
17258
|
-
"instructions",
|
|
17259
|
-
"linux",
|
|
17260
|
-
"server",
|
|
17261
|
-
"have"
|
|
17262
|
-
]
|
|
17263
|
-
}
|
|
17264
|
-
},
|
|
17265
|
-
{
|
|
17266
|
-
"id": "page-0204",
|
|
17267
17081
|
"title": "Google Cloud Run",
|
|
17268
17082
|
"url": "https://docs.n8n.io/hosting/installation/server-setups/google-cloud-run/index.md",
|
|
17269
17083
|
"urlPath": "hosting/installation/server-setups/google-cloud-run/index.md",
|
|
@@ -17272,13 +17086,13 @@
|
|
|
17272
17086
|
"nodeName": null,
|
|
17273
17087
|
"nodeType": null,
|
|
17274
17088
|
"content": {
|
|
17275
|
-
"markdown": "# Hosting n8n on Google Kubernetes Engine\n\nGoogle Cloud offers several options suitable for hosting n8n, including Cloud Run (optimized for running containers), Compute Engine (VMs), and Kubernetes Engine (containers running with Kubernetes).\n\nThis guide uses the Google Kubernetes Engine (GKE) as the hosting option. If you want to use Cloud Run, refer to [these instructions](../google-cloud-run/).\n\nMost of the steps in this guide use the Google Cloud UI, but you can also use the [gcloud command line tool](https://cloud.google.com/sdk/gcloud/) instead to undertake all the steps.\n\n## Prerequisites\n\n- The [gcloud command line tool](https://cloud.google.com/sdk/gcloud/)\n- The [gke-gcloud-auth-plugin](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) (install the gcloud CLI first)\n\nSelf-hosting knowledge prerequisites\n\nSelf-hosting n8n requires technical knowledge, including:\n\n- Setting up and configuring servers and containers\n- Managing application resources and scaling\n- Securing servers and applications\n- Configuring n8n\n\nn8n recommends self-hosting for expert users. Mistakes can lead to data loss, security issues, and downtime. If you aren't experienced at managing servers, n8n recommends [n8n Cloud](https://n8n.io/cloud/).\n\nStable and Beta versions\n\nn8n releases a new minor version most weeks. The `stable` version is for production use. `beta` is the most recent release. The `beta` version may be unstable. To report issues, use the [forum](https://community.n8n.io/c/questions/12).\n\nCurrent `stable`: 2.15.0 Current `beta`: 2.16.0\n\n## Create project\n\nGCP encourages you to create projects to logically organize resources and configuration. Create a new project for your n8n deployment from your Google Cloud Console: select the project dropdown menu and then the **NEW PROJECT** button. Then select the newly created project. As you follow the other steps in this guide, make sure you have the correct project selected.\n\n## Enable the Kubernetes Engine API\n\nGKE isn't enabled by default. Search for \"Kubernetes\" in the top search bar and select \"Kubernetes Engine\" from the results.\n\nSelect **ENABLE** to enable the Kubernetes Engine API for this project.\n\n## Create a cluster\n\nFrom the [GKE service page](https://console.cloud.google.com/kubernetes/list/overview), select **Clusters** > **CREATE**. Make sure you select the \"Standard\" cluster option, n8n doesn't work with an \"Autopilot\" cluster. You can leave the cluster configuration on defaults unless there's anything specifically you need to change, such as location.\n\n## Set Kubectl context\n\nThe rest of the steps in this guide require you to set the GCP instance as the Kubectl context. You can find the connection details for a cluster instance by opening its details page and selecting **CONNECT**. The displayed code snippet shows a connection string for the gcloud CLI tool. Paste and run the code snippet in the gcloud CLI to change your local Kubernetes settings to use the new gcloud cluster.\n\n## Clone configuration repository\n\nKubernetes and n8n require a series of configuration files. You can clone these from [this repository](https://github.com/n8n-io/n8n-hosting) locally. The following steps explain the file configuration and how to add your information.\n\nClone the repository with the following command:\n\n```\ngit clone https://github.com/n8n-io/n8n-hosting.git\n```\n\nAnd change directory:\n\n```\ncd n8n-hosting/kubernetes\n```\n\n## Configure Postgres\n\nFor larger scale n8n deployments, Postgres provides a more robust database backend than SQLite.\n\n### Create a volume for persistent storage\n\nTo maintain data between pod restarts, the Postgres deployment needs a persistent volume. Running Postgres on GCP requires a specific Kubernetes Storage Class. You can read [this guide](https://cloud.google.com/architecture/deploying-highly-available-postgresql-with-gke) for specifics, but the `storage.yaml` manifest creates it for you. You may want to change the regions to create the storage in under the `allowedTopologies` > `matchedLabelExpressions` > `values` key. By default, they're set to `us-central`.\n\n```\n…\nallowedTopologies:\n - matchLabelExpressions:\n - key: failure-domain.beta.kubernetes.io/zone\n values:\n - us-central1-b\n - us-central1-c\n```\n\n### Postgres environment variables\n\nPostgres needs some environment variables set to pass to the application running in the containers.\n\nThe example `postgres-secret.yaml` file contains placeholders you need to replace with your own values. Postgres will use these details when creating the database..\n\nThe `postgres-deployment.yaml` manifest then uses the values from this manifest file to send to the application pods.\n\n## Configure n8n\n\n### Create a volume for file storage\n\nWhile not essential for running n8n, using persistent volumes is required for:\n\n- Using nodes that interact with files, such as the binary data node.\n- If you want to persist [manual n8n encryption keys](../../../configuration/environment-variables/deployment/) between restarts. This saves a file containing the key into file storage during startup.\n\nThe `n8n-claim0-persistentvolumeclaim.yaml` manifest creates this, and the n8n Deployment mounts that claim in the `volumes` section of the `n8n-deployment.yaml` manifest.\n\n```\n…\nvolumes:\n - name: n8n-claim0\n persistentVolumeClaim:\n claimName: n8n-claim0\n…\n```\n\n### Pod resources\n\n[Kubernetes lets you](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) optionally specify the minimum resources application containers need and the limits they can run to. The example YAML files cloned above contain the following in the `resources` section of the `n8n-deployment.yaml` and `postgres-deployment.yaml` files:\n\n```\n…\nresources:\n requests:\n memory: \"250Mi\"\n limits:\n memory: \"500Mi\"\n…\n```\n\nThis defines a minimum of 250mb per container, a maximum of 500mb, and lets Kubernetes handle CPU. You can change these values to match your own needs. As a guide, here are the resources values for the n8n cloud offerings:\n\n- **Start**: 320mb RAM, 10 millicore CPU burstable\n- **Pro (10k executions)**: 640mb RAM, 20 millicore CPU burstable\n- **Pro (50k executions)**: 1280mb RAM, 80 millicore CPU burstable\n\n### Optional: Environment variables\n\nYou can configure n8n settings and behaviors using environment variables.\n\nCreate an `n8n-secret.yaml` file. Refer to [Environment variables](../../../configuration/environment-variables/) for n8n environment variables details.\n\n## Deployments\n\nThe two deployment manifests (`n8n-deployment.yaml` and `postgres-deployment.yaml`) define the n8n and Postgres applications to Kubernetes.\n\nThe manifests define the following:\n\n- Send the environment variables defined to each application pod\n- Define the container image to use\n- Set resource consumption limits with the `resources` object\n- The `volumes` defined earlier and `volumeMounts` to define the path in the container to mount volumes.\n- Scaling and restart policies. The example manifests define one instance of each pod. You should change this to meet your needs.\n\n## Services\n\nThe two service manifests (`postgres-service.yaml` and `n8n-service.yaml`) expose the services to the outside world using the Kubernetes load balancer using ports 5432 and 5678 respectively.\n\n## Send to Kubernetes cluster\n\nSend all the manifests to the cluster with the following command:\n\n```\nkubectl apply -f .\n```\n\nNamespace error\n\nYou may see an error message about not finding an \"n8n\" namespace as that resources isn't ready yet. You can run the same command again, or apply the namespace manifest first with the following command:\n\n```\nkubectl apply -f namespace.yaml\n```\n\n## Set up DNS\n\nn8n typically operates on a subdomain. Create a DNS record with your provider for the subdomain and point it to the IP address of the n8n service. Find the IP address of the n8n service from the **Services & Ingress** menu item of the cluster you want to use under the **Endpoints** column.\n\nGKE and IP addresses\n\n[Read this GKE tutorial](https://cloud.google.com/kubernetes-engine/docs/tutorials/configuring-domain-name-static-ip#configuring_your_domain_name_records) for more details on how reserved IP addresses work with GKE and Kubernetes resources.\n\n## Delete resources\n\nRemove the resources created by the manifests with the following command:\n\n```\nkubectl delete -f .\n```\n\n## Next steps\n\n- Learn more about [configuring](../../../configuration/environment-variables/) and [scaling](../../../scaling/overview/) n8n.\n- Or explore using n8n: try the [Quickstarts](../../../../try-it-out/).\nated \\\n --port=5678 \\\n --memory=2Gi \\\n --no-cpu-throttling \\\n --set-env-vars=\"N8N_PORT=5678,N8N_PROTOCOL=https,N8N_ENDPOINT_HEALTH=health,DB_TYPE=postgresdb,DB_POSTGRESDB_DATABASE=n8n,DB_POSTGRESDB_USER=n8n-user,DB_POSTGRESDB_HOST=/cloudsql/$PROJECT_ID:$REGION:n8n-db,DB_POSTGRESDB_PORT=5432,DB_POSTGRESDB_SCHEMA=public,GENERIC_TIMEZONE=UTC,QUEUE_HEALTH_CHECK_ACTIVE=true\" \\\n --set-secrets=\"DB_POSTGRESDB_PASSWORD=n8n-db-password:latest,N8N_ENCRYPTION_KEY=n8n-encryption-key:latest\" \\\n --add-cloudsql-instances=$PROJECT_ID:$REGION:n8n-db \\\n --service-account=n8n-service-account@$PROJECT_ID.iam.gserviceaccount.com\n```\n\nOnce the deployment finishes, open another tab to navigate to the Service URL. You should see the n8n login screen.\n\n## Troubleshooting\n\nIf you see a \"Cannot GET /\" screen this usually indicates that n8n is still starting up. You can refresh the page and it should eventually load.\n\n## (Optional) Enabling Google Workspace services as n8n tools\n\nIf you want to use Google Workspace services (Gmail, Calendar, Drive, etc.) as tools in n8n, it's recommended to setup OAuth to access these services.\n\nFirst ensure the respective APIs you want are enabled:\n\n```\n## Enable whichever APIs you need\n## Note: If you want Sheets/Docs, it's not enough to just enable Drive; these services each have their own API\ngcloud services enable gmail.googleapis.com\ngcloud services enable drive.googleapis.com\ngcloud services enable sheets.googleapis.com\ngcloud services enable docs.googleapis.com\ngcloud services enable calendar-json.googleapis.com\n```\n\nRe-deploy n8n on Cloud Run with the necessary OAuth callback URLs as environment variables:\n\n```\nexport SERVICE_URL=\"your-n8n-service-URL\"\n## e.g. https://n8n-12345678.us-west1.run.app\n\ngcloud run services update n8n \\\n --region=$REGION \\\n --update-env-vars=\"N8N_HOST=$(echo $SERVICE_URL | sed 's/https:\\/\\///'),WEBHOOK_URL=$SERVICE_URL,N8N_EDITOR_BASE_URL=$SERVICE_URL\"\n```\n\nLastly, you must setup OAuth for these services. Visit `https://console.cloud.google.com/auth` and follow these steps:\n\n1. Click \"Get Started\" if this button shows (when you have not yet setup OAuth in this Cloud project).\n1. For \"App Information\", enter whichever \"App Name\" and \"User Support Email\" you prefer.\n1. For \"Audience\", select \"Internal\" if you intend to only enable access to your user(s) within this same Google Workspace. Otherwise, you can select \"External\".\n1. Enter \"Contact Information\".\n1. If you selected \"External\", then click \"Audience\" and add any test users you need to grant access.\n1. Click \"Clients\" > \"Create client\", select \"Web application\" for \"Application type\", enter your n8n service URL into \"Authorized JavaScript origins\", and \"/rest/oauth2-credential/callback\" into \"Authorized redirect URIs\" where your YOUR-N8N-URL is also the n8n service URL (e.g. `https://n8n-12345678.us-west1.run.app/rest/oauth2-credential/callback`). Make sure you download the created client's JSON file since it contains the client secret which you will not be able to see later in the Console.\n1. Click \"Data Access\" and add the scopes you want n8n to have access for (e.g. to access Google Sheets, you need `https://googleapis.com/auth/drive.file` and `https://googleapis.com/auth/spreadsheets`)\n1. Now you should be able to use these workspace services. You can test if it works by logging into n8n, add a Tool for the respective service and add its credentials using the information in the OAuth client JSON file from step 6.\n",
|
|
17276
|
-
"excerpt": "# Hosting n8n on Google
|
|
17089
|
+
"markdown": "# Hosting n8n on Google Cloud Run\n\nThis hosting guide shows you how to self-host n8n on Google Cloud Run, a serverless container runtime. If you're just getting started with n8n and don't need a production-grade deployment, you can go with the \"easy mode\" option below for deployment. Otherwise, if you intend to use this n8n deployment at-scale, refer to the \"durable mode\" instructions further down.\n\nYou can also enable access via OAuth to Google Workspace, such as Gmail and Drive, to use these services as n8n workflow tools. Instructions for granting n8n access to these services are at the end of of this documentation.\n\nIf you want to deploy to Google Kubernetes Engine (GKE) instead, you can refer to [these instructions](../google-kubernetes-engine/).\n\nSelf-hosting knowledge prerequisites\n\nSelf-hosting n8n requires technical knowledge, including:\n\n- Setting up and configuring servers and containers\n- Managing application resources and scaling\n- Securing servers and applications\n- Configuring n8n\n\nn8n recommends self-hosting for expert users. Mistakes can lead to data loss, security issues, and downtime. If you aren't experienced at managing servers, n8n recommends [n8n Cloud](https://n8n.io/cloud/).\n\nStable and Beta versions\n\nn8n releases a new minor version most weeks. The `stable` version is for production use. `beta` is the most recent release. The `beta` version may be unstable. To report issues, use the [forum](https://community.n8n.io/c/questions/12).\n\nCurrent `stable`: 2.15.0 Current `beta`: 2.16.0\n\n## Before you begin: get a Google Cloud project\n\nIf you have not yet created a Google Cloud project, [do this first](https://developers.google.com/workspace/guides/create-project) (and ensure you have billing enabled on the project; even if your Cloud Run service runs for free you must have billing activated to deploy). Otherwise, navigate to the project where you want to deploy n8n.\n\n## Easy mode\n\nThis is the fastest way to deploy n8n on Cloud Run. For this deployment, n8n's data is in-memory so this is only recommended for demo purposes. **Anytime this Cloud Run service scales to zero or is redeployed, the n8n data will be lost.** Refer to the durable mode instructions below if you need a production-grade deployment.\n\nIf you have not yet created a Google Cloud project, [do this first](https://developers.google.com/workspace/guides/create-project) (and ensure you have billing enabled on the project; even if your Cloud Run service will run for free you must have billing enabled to activated to deploy). Otherwise, navigate to the project where you want to deploy n8n.\n\nOpen the Cloud Shell Terminal (on the Google Cloud console, either type \"G\" then \"S\" or click on the terminal icon on the upper right).\n\nOnce your session is open, you may need to run this command first to login (and follow the steps it asks you to complete):\n\n```\ngcloud auth login\n```\n\nYou can also explicitly enable the Cloud Run API (even if you don't do this, it will ask if you want this enabled when you deploy):\n\n```\ngcloud services enable run.googleapis.com\n```\n\nRequired: Custom health check endpoint\n\nGoogle Cloud Run reserves `/healthz` for its own health checks. Since n8n uses this path by default, it can conflict and cause connection issues in the workflow canvas. To fix this, set the `N8N_ENDPOINT_HEALTH` environment variable to a custom path (included in the deployment commands below).\n\nTo deploy n8n:\n\n```\ngcloud run deploy n8n \\\n --image=n8nio/n8n \\\n --region=us-west1 \\\n --allow-unauthenticated \\\n --port=5678 \\\n --no-cpu-throttling \\\n --memory=2Gi \\\n --set-env-vars=\"N8N_ENDPOINT_HEALTH=health\"\n```\n\n(you can specify whichever region you prefer, instead of \"us-west1\")\n\nOnce the deployment finishes, open another tab to navigate to the Service URL. n8n may still be loading and you will see a \"n8n is starting up. Please wait\" message, but shortly thereafter you should see the n8n login screen.\n\nOptional: If you want to keep this n8n service running for as long as possible to avoid data loss, you can also set manual scale to 1 to prevent it from autoscaling to 0.\n\n```\ngcloud run deploy n8n \\\n --image=n8nio/n8n \\\n --region=us-west1 \\\n --allow-unauthenticated \\\n --port=5678 \\\n --no-cpu-throttling \\\n --memory=2Gi \\\n --scaling=1 \\\n --set-env-vars=\"N8N_ENDPOINT_HEALTH=health\"\n```\n\nThis does not prevent data loss completely, such as whenever the Cloud Run service is re-deployed/updated. If you want truly persistant data, you should refer to the instructions below for how to attach a database.\n\n## Durable mode\n\nThe following instructions are intended for a more durable, production-grade deployment of n8n on Cloud Run. It includes resources such as a database for persistance and secret manager for sensitive data.\n\nIf you want to deploy the following setup via Terraform, refer to this [example](https://github.com/ryanpei/n8n-hosting/tree/main/google-cloud-run) which deploys the same setup as the following (without the OAuth setup for Google Workspace tools).\n\n## Enable APIs and set env vars\n\nOpen the Cloud Shell Terminal (on the Google Cloud console, either type \"G\" then \"S\" or click on the terminal icon on the upper right) and run these commands in the terminal session:\n\n```\n## You may need to login first\ngcloud auth login\n\ngcloud services enable run.googleapis.com\ngcloud services enable sqladmin.googleapis.com\ngcloud services enable secretmanager.googleapis.com\n```\n\nYou'll also want to set some environment variables for the remainder of these instructions:\n\n```\nexport PROJECT_ID=your-project\nexport REGION=region-where-you-want-this-deployed\n```\n\n## Setup your Postgres database\n\nRun this command to create the Postgres DB instance (it will take a few minutes to complete; also ensure you update the root-password field with your own desired password):\n\n```\ngcloud sql instances create n8n-db \\\n --database-version=POSTGRES_13 \\\n --tier=db-f1-micro \\\n --region=$REGION \\\n --root-password=\"change-this-password\" \\\n --storage-size=10GB \\\n --availability-type=ZONAL \\\n --no-backup \\\n --storage-type=HDD\n```\n\nOnce complete, you can add the database that n8n will use:\n\n```\ngcloud sql databases create n8n --instance=n8n-db\n```\n\nCreate the DB user for n8n (change the password value, of course):\n\n```\ngcloud sql users create n8n-user \\\n --instance=n8n-db \\\n --password=\"change-this-password\"\n```\n\nYou can save the password you set for this n8n-user to a file for the next step of saving the password in Secret Manager. Be sure to delete this file later.\n\n## Store sensitive data in Secret Manager\n\nWhile not required, it's absolutely recommended to store your sensitive data in Secrets Manager.\n\nCreate a secret for the database password (replace \"/your/password/file\" with the file you created above for the n8n-user password):\n\n```\ngcloud secrets create n8n-db-password \\\n --data-file=/your/password/file \\\n --replication-policy=\"automatic\"\n```\n\nCreate an encryption key (you can use your own, this example generates a random one):\n\n```\nopenssl rand -base64 -out my-encryption-key 42\n```\n\nCreate a secret for this encryption key (replace \"my-encryption-key\" if you are supplying your own):\n\n```\ngcloud secrets create n8n-encryption-key \\\n --data-file=my-encryption-key \\\n --replication-policy=\"automatic\"\n```\n\nNow you can delete my-encryption-key and the database password files you created. These values are now securely stored in Secret Manager.\n\n## Create a service account for Cloud Run\n\nYou want this Cloud Run service to be restricted to access only the resources it needs. The following commands create the service account and adds the permissions necessary to access secrets and the database:\n\n```\ngcloud iam service-accounts create n8n-service-account \\\n --display-name=\"n8n Service Account\"\n\ngcloud secrets add-iam-policy-binding n8n-db-password \\\n --member=\"serviceAccount:n8n-service-account@$PROJECT_ID.iam.gserviceaccount.com\" \\\n --role=\"roles/secretmanager.secretAccessor\"\n\ngcloud secrets add-iam-policy-binding n8n-encryption-key \\\n --member=\"serviceAccount:n8n-service-account@$PROJECT_ID.iam.gserviceaccount.com\" \\\n --role=\"roles/secretmanager.secretAccessor\"\n\ngcloud projects add-iam-policy-binding $PROJECT_ID \\\n --member=\"serviceAccount:n8n-service-account@$PROJECT_ID.iam.gserviceaccount.com\" \\\n --role=\"roles/cloudsql.client\"\n```\n\n## Deploy the Cloud Run service\n\nNow you can deploy your n8n service:\n\n```\ngcloud run deploy n8n \\\n --image=n8nio/n8n:latest \\\n --command=\"/bin/sh\" \\\n --args=\"-c,sleep 5;n8n start\" \\\n --region=$REGION \\\n --allow-unauthenticated \\\n --port=5678 \\\n --memory=2Gi \\\n --no-cpu-throttling \\\n --set-env-vars=\"N8N_PORT=5678,N8N_PROTOCOL=https,N8N_ENDPOINT_HEALTH=health,DB_TYPE=postgresdb,DB_POSTGRESDB_DATABASE=n8n,DB_POSTGRESDB_USER=n8n-user,DB_POSTGRESDB_HOST=/cloudsql/$PROJECT_ID:$REGION:n8n-db,DB_POSTGRESDB_PORT=5432,DB_POSTGRESDB_SCHEMA=public,GENERIC_TIMEZONE=UTC,QUEUE_HEALTH_CHECK_ACTIVE=true\" \\\n --set-secrets=\"DB_POSTGRESDB_PASSWORD=n8n-db-password:latest,N8N_ENCRYPTION_KEY=n8n-encryption-key:latest\" \\\n --add-cloudsql-instances=$PROJECT_ID:$REGION:n8n-db \\\n --service-account=n8n-service-account@$PROJECT_ID.iam.gserviceaccount.com\n```\n\nOnce the deployment finishes, open another tab to navigate to the Service URL. You should see the n8n login screen.\n\n## Troubleshooting\n\nIf you see a \"Cannot GET /\" screen this usually indicates that n8n is still starting up. You can refresh the page and it should eventually load.\n\n## (Optional) Enabling Google Workspace services as n8n tools\n\nIf you want to use Google Workspace services (Gmail, Calendar, Drive, etc.) as tools in n8n, it's recommended to setup OAuth to access these services.\n\nFirst ensure the respective APIs you want are enabled:\n\n```\n## Enable whichever APIs you need\n## Note: If you want Sheets/Docs, it's not enough to just enable Drive; these services each have their own API\ngcloud services enable gmail.googleapis.com\ngcloud services enable drive.googleapis.com\ngcloud services enable sheets.googleapis.com\ngcloud services enable docs.googleapis.com\ngcloud services enable calendar-json.googleapis.com\n```\n\nRe-deploy n8n on Cloud Run with the necessary OAuth callback URLs as environment variables:\n\n```\nexport SERVICE_URL=\"your-n8n-service-URL\"\n## e.g. https://n8n-12345678.us-west1.run.app\n\ngcloud run services update n8n \\\n --region=$REGION \\\n --update-env-vars=\"N8N_HOST=$(echo $SERVICE_URL | sed 's/https:\\/\\///'),WEBHOOK_URL=$SERVICE_URL,N8N_EDITOR_BASE_URL=$SERVICE_URL\"\n```\n\nLastly, you must setup OAuth for these services. Visit `https://console.cloud.google.com/auth` and follow these steps:\n\n1. Click \"Get Started\" if this button shows (when you have not yet setup OAuth in this Cloud project).\n1. For \"App Information\", enter whichever \"App Name\" and \"User Support Email\" you prefer.\n1. For \"Audience\", select \"Internal\" if you intend to only enable access to your user(s) within this same Google Workspace. Otherwise, you can select \"External\".\n1. Enter \"Contact Information\".\n1. If you selected \"External\", then click \"Audience\" and add any test users you need to grant access.\n1. Click \"Clients\" > \"Create client\", select \"Web application\" for \"Application type\", enter your n8n service URL into \"Authorized JavaScript origins\", and \"/rest/oauth2-credential/callback\" into \"Authorized redirect URIs\" where your YOUR-N8N-URL is also the n8n service URL (e.g. `https://n8n-12345678.us-west1.run.app/rest/oauth2-credential/callback`). Make sure you download the created client's JSON file since it contains the client secret which you will not be able to see later in the Console.\n1. Click \"Data Access\" and add the scopes you want n8n to have access for (e.g. to access Google Sheets, you need `https://googleapis.com/auth/drive.file` and `https://googleapis.com/auth/spreadsheets`)\n1. Now you should be able to use these workspace services. You can test if it works by logging into n8n, add a Tool for the respective service and add its credentials using the information in the OAuth client JSON file from step 6.\n",
|
|
17090
|
+
"excerpt": "# Hosting n8n on Google Cloud Run This hosting guide shows you how to self-host n8n on Google Cloud Run, a serverless container runtime. If you're just getting started with n8n and don't need a production-grade deployment, you can go with the \"easy mode\" option below for deployment. Otherwise, if you intend to use this n8n deployment at-scale, refer to the \"durable mode\" instructions further down. You can also enable access via OAuth to Google Workspace, such as Gmail and Drive, to use these s...",
|
|
17277
17091
|
"sections": [
|
|
17278
17092
|
{
|
|
17279
|
-
"title": "Hosting n8n on Google
|
|
17093
|
+
"title": "Hosting n8n on Google Cloud Run",
|
|
17280
17094
|
"level": 1,
|
|
17281
|
-
"content": "Google Cloud
|
|
17095
|
+
"content": "This hosting guide shows you how to self-host n8n on Google Cloud Run, a serverless container runtime. If you're just getting started with n8n and don't need a production-grade deployment, you can go with the \"easy mode\" option below for deployment. Otherwise, if you intend to use this n8n deployment at-scale, refer to the \"durable mode\" instructions further down.\n\nYou can also enable access via OAuth to Google Workspace, such as Gmail and Drive, to use these services as n8n workflow tools. Instructions for granting n8n access to these services are at the end of of this documentation.\n\nIf you want to deploy to Google Kubernetes Engine (GKE) instead, you can refer to [these instructions](../google-kubernetes-engine/).\n\nSelf-hosting knowledge prerequisites\n\nSelf-hosting n8n requires technical knowledge, including:\n\n- Setting up and configuring servers and containers\n- Managing application resources and scaling\n- Securing servers and applications\n- Configuring n8n\n\nn8n recommends self-hos"
|
|
17282
17096
|
}
|
|
17283
17097
|
]
|
|
17284
17098
|
},
|
|
@@ -17336,70 +17150,187 @@
|
|
|
17336
17150
|
],
|
|
17337
17151
|
"useCases": [],
|
|
17338
17152
|
"operations": [],
|
|
17339
|
-
"codeExamples":
|
|
17153
|
+
"codeExamples": 16,
|
|
17340
17154
|
"complexity": "intermediate",
|
|
17341
|
-
"readingTime": "
|
|
17342
|
-
"contentLength":
|
|
17155
|
+
"readingTime": "9 min",
|
|
17156
|
+
"contentLength": 12168,
|
|
17343
17157
|
"relatedPages": []
|
|
17344
17158
|
},
|
|
17345
17159
|
"searchIndex": {
|
|
17346
|
-
"fullText": "google cloud run # hosting n8n on google kubernetes engine\n\ngoogle cloud offers several options suitable for hosting n8n, including cloud run (optimized for running containers), compute engine (vms), and kubernetes engine (containers running with kubernetes).\n\nthis guide uses the google kubernetes engine (gke) as the hosting option. if you want to use cloud run, refer to [these instructions](../google-cloud-run/).\n\nmost of the steps in this guide use the google cloud ui, but you can also use the [gcloud command line tool](https://cloud.google.com/sdk/gcloud/) instead to undertake all the steps.\n\n## prerequisites\n\n- the [gcloud command line tool](https://cloud.google.com/sdk/gcloud/)\n- the [gke-gcloud-auth-plugin](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) (install the gcloud cli first)\n\nself-hosting knowledge prerequisites\n\nself-hosting n8n requires technical knowledge, including:\n\n- setting up and configuring servers and containers\n- managing application resources and scaling\n- securing servers and applications\n- configuring n8n\n\nn8n recommends self-hosting for expert users. mistakes can lead to data loss, security issues, and downtime. if you aren't experienced at managing servers, n8n recommends [n8n cloud](https://n8n.io/cloud/).\n\nstable and beta versions\n\nn8n releases a new minor version most weeks. the `stable` version is for production use. `beta` is the most recent release. the `beta` version may be unstable. to report issues, use the [forum](https://community.n8n.io/c/questions/12).\n\ncurrent `stable`: 2.15.0 current `beta`: 2.16.0\n\n## create project\n\ngcp encourages you to create projects to logically organize resources and configuration. create a new project for your n8n deployment from your google cloud console: select the project dropdown menu and then the **new project** button. then select the newly created project. as you follow the other steps in this guide, make sure you have the correct project selected.\n\n## enable the kubernetes engine api\n\ngke isn't enabled by default. search for \"kubernetes\" in the top search bar and select \"kubernetes engine\" from the results.\n\nselect **enable** to enable the kubernetes engine api for this project.\n\n## create a cluster\n\nfrom the [gke service page](https://console.cloud.google.com/kubernetes/list/overview), select **clusters** > **create**. make sure you select the \"standard\" cluster option, n8n doesn't work with an \"autopilot\" cluster. you can leave the cluster configuration on defaults unless there's anything specifically you need to change, such as location.\n\n## set kubectl context\n\nthe rest of the steps in this guide require you to set the gcp instance as the kubectl context. you can find the connection details for a cluster instance by opening its details page and selecting **connect**. the displayed code snippet shows a connection string for the gcloud cli tool. paste and run the code snippet in the gcloud cli to change your local kubernetes settings to use the new gcloud cluster.\n\n## clone configuration repository\n\nkubernetes and n8n require a series of configuration files. you can clone these from [this repository](https://github.com/n8n-io/n8n-hosting) locally. the following steps explain the file configuration and how to add your information.\n\nclone the repository with the following command:\n\n```\ngit clone https://github.com/n8n-io/n8n-hosting.git\n```\n\nand change directory:\n\n```\ncd n8n-hosting/kubernetes\n```\n\n## configure postgres\n\nfor larger scale n8n deployments, postgres provides a more robust database backend than sqlite.\n\n### create a volume for persistent storage\n\nto maintain data between pod restarts, the postgres deployment needs a persistent volume. running postgres on gcp requires a specific kubernetes storage class. you can read [this guide](https://cloud.google.com/architecture/deploying-highly-available-postgresql-with-gke) for specifics, but the `storage.yaml` manifest creates it for you. you may want to change the regions to create the storage in under the `allowedtopologies` > `matchedlabelexpressions` > `values` key. by default, they're set to `us-central`.\n\n```\n…\nallowedtopologies:\n - matchlabelexpressions:\n - key: failure-domain.beta.kubernetes.io/zone\n values:\n - us-central1-b\n - us-central1-c\n```\n\n### postgres environment variables\n\npostgres needs some environment variables set to pass to the application running in the containers.\n\nthe example `postgres-secret.yaml` file contains placeholders you need to replace with your own values. postgres will use these details when creating the database..\n\nthe `postgres-deployment.yaml` manifest then uses the values from this manifest file to send to the application pods.\n\n## configure n8n\n\n### create a volume for file storage\n\nwhile not essential for running n8n, using persistent volumes is required for:\n\n- using nodes that interact with files, such as the binary data node.\n- if you want to persist [manual n8n encryption keys](../../../configuration/environment-variables/deployment/) between restarts. this saves a file containing the key into file storage during startup.\n\nthe `n8n-claim0-persistentvolumeclaim.yaml` manifest creates this, and the n8n deployment mounts that claim in the `volumes` section of the `n8n-deployment.yaml` manifest.\n\n```\n…\nvolumes:\n - name: n8n-claim0\n persistentvolumeclaim:\n claimname: n8n-claim0\n…\n```\n\n### pod resources\n\n[kubernetes lets you](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) optionally specify the minimum resources application containers need and the limits they can run to. the example yaml files cloned above contain the following in the `resources` section of the `n8n-deployment.yaml` and `postgres-deployment.yaml` files:\n\n```\n…\nresources:\n requests:\n memory: \"250mi\"\n limits:\n memory: \"500mi\"\n…\n```\n\nthis defines a minimum of 250mb per container, a maximum of 500mb, and lets kubernetes handle cpu. you can change these values to match your own needs. as a guide, here are the resources values for the n8n cloud offerings:\n\n- **start**: 320mb ram, 10 millicore cpu burstable\n- **pro (10k executions)**: 640mb ram, 20 millicore cpu burstable\n- **pro (50k executions)**: 1280mb ram, 80 millicore cpu burstable\n\n### optional: environment variables\n\nyou can configure n8n settings and behaviors using environment variables.\n\ncreate an `n8n-secret.yaml` file. refer to [environment variables](../../../configuration/environment-variables/) for n8n environment variables details.\n\n## deployments\n\nthe two deployment manifests (`n8n-deployment.yaml` and `postgres-deployment.yaml`) define the n8n and postgres applications to kubernetes.\n\nthe manifests define the following:\n\n- send the environment variables defined to each application pod\n- define the container image to use\n- set resource consumption limits with the `resources` object\n- the `volumes` defined earlier and `volumemounts` to define the path in the container to mount volumes.\n- scaling and restart policies. the example manifests define one instance of each pod. you should change this to meet your needs.\n\n## services\n\nthe two service manifests (`postgres-service.yaml` and `n8n-service.yaml`) expose the services to the outside world using the kubernetes load balancer using ports 5432 and 5678 respectively.\n\n## send to kubernetes cluster\n\nsend all the manifests to the cluster with the following command:\n\n```\nkubectl apply -f .\n```\n\nnamespace error\n\nyou may see an error message about not finding an \"n8n\" namespace as that resources isn't ready yet. you can run the same command again, or apply the namespace manifest first with the following command:\n\n```\nkubectl apply -f namespace.yaml\n```\n\n## set up dns\n\nn8n typically operates on a subdomain. create a dns record with your provider for the subdomain and point it to the ip address of the n8n service. find the ip address of the n8n service from the **services & ingress** menu item of the cluster you want to use under the **endpoints** column.\n\ngke and ip addresses\n\n[read this gke tutorial](https://cloud.google.com/kubernetes-engine/docs/tutorials/configuring-domain-name-static-ip#configuring_your_domain_name_records) for more details on how reserved ip addresses work with gke and kubernetes resources.\n\n## delete resources\n\nremove the resources created by the manifests with the following command:\n\n```\nkubectl delete -f .\n```\n\n## next steps\n\n- learn more about [configuring](../../../configuration/environment-variables/) and [scaling](../../../scaling/overview/) n8n.\n- or explore using n8n: try the [quickstarts](../../../../try-it-out/).\nated \\\n --port=5678 \\\n --memory=2gi \\\n --no-cpu-throttling \\\n --set-env-vars=\"n8n_port=5678,n8n_protocol=https,n8n_endpoint_health=health,db_type=postgresdb,db_postgresdb_database=n8n,db_postgresdb_user=n8n-user,db_postgresdb_host=/cloudsql/$project_id:$region:n8n-db,db_postgresdb_port=5432,db_postgresdb_schema=public,generic_timezone=utc,queue_health_check_active=true\" \\\n --set-secrets=\"db_postgresdb_password=n8n-db-password:latest,n8n_encryption_key=n8n-encryption-key:latest\" \\\n --add-cloudsql-instances=$project_id:$region:n8n-db \\\n --service-account=n8n-service-account@$project_id.iam.gserviceaccount.com\n```\n\nonce the deployment finishes, open another tab to navigate to the service url. you should see the n8n login screen.\n\n## troubleshooting\n\nif you see a \"cannot get /\" screen this usually indicates that n8n is still starting up. you can refresh the page and it should eventually load.\n\n## (optional) enabling google workspace services as n8n tools\n\nif you want to use google workspace services (gmail, calendar, drive, etc.) as tools in n8n, it's recommended to setup oauth to access these services.\n\nfirst ensure the respective apis you want are enabled:\n\n```\n## enable whichever apis you need\n## note: if you want sheets/docs, it's not enough to just enable drive; these services each have",
|
|
17160
|
+
"fullText": "google cloud run # hosting n8n on google cloud run\n\nthis hosting guide shows you how to self-host n8n on google cloud run, a serverless container runtime. if you're just getting started with n8n and don't need a production-grade deployment, you can go with the \"easy mode\" option below for deployment. otherwise, if you intend to use this n8n deployment at-scale, refer to the \"durable mode\" instructions further down.\n\nyou can also enable access via oauth to google workspace, such as gmail and drive, to use these services as n8n workflow tools. instructions for granting n8n access to these services are at the end of of this documentation.\n\nif you want to deploy to google kubernetes engine (gke) instead, you can refer to [these instructions](../google-kubernetes-engine/).\n\nself-hosting knowledge prerequisites\n\nself-hosting n8n requires technical knowledge, including:\n\n- setting up and configuring servers and containers\n- managing application resources and scaling\n- securing servers and applications\n- configuring n8n\n\nn8n recommends self-hosting for expert users. mistakes can lead to data loss, security issues, and downtime. if you aren't experienced at managing servers, n8n recommends [n8n cloud](https://n8n.io/cloud/).\n\nstable and beta versions\n\nn8n releases a new minor version most weeks. the `stable` version is for production use. `beta` is the most recent release. the `beta` version may be unstable. to report issues, use the [forum](https://community.n8n.io/c/questions/12).\n\ncurrent `stable`: 2.15.0 current `beta`: 2.16.0\n\n## before you begin: get a google cloud project\n\nif you have not yet created a google cloud project, [do this first](https://developers.google.com/workspace/guides/create-project) (and ensure you have billing enabled on the project; even if your cloud run service runs for free you must have billing activated to deploy). otherwise, navigate to the project where you want to deploy n8n.\n\n## easy mode\n\nthis is the fastest way to deploy n8n on cloud run. for this deployment, n8n's data is in-memory so this is only recommended for demo purposes. **anytime this cloud run service scales to zero or is redeployed, the n8n data will be lost.** refer to the durable mode instructions below if you need a production-grade deployment.\n\nif you have not yet created a google cloud project, [do this first](https://developers.google.com/workspace/guides/create-project) (and ensure you have billing enabled on the project; even if your cloud run service will run for free you must have billing enabled to activated to deploy). otherwise, navigate to the project where you want to deploy n8n.\n\nopen the cloud shell terminal (on the google cloud console, either type \"g\" then \"s\" or click on the terminal icon on the upper right).\n\nonce your session is open, you may need to run this command first to login (and follow the steps it asks you to complete):\n\n```\ngcloud auth login\n```\n\nyou can also explicitly enable the cloud run api (even if you don't do this, it will ask if you want this enabled when you deploy):\n\n```\ngcloud services enable run.googleapis.com\n```\n\nrequired: custom health check endpoint\n\ngoogle cloud run reserves `/healthz` for its own health checks. since n8n uses this path by default, it can conflict and cause connection issues in the workflow canvas. to fix this, set the `n8n_endpoint_health` environment variable to a custom path (included in the deployment commands below).\n\nto deploy n8n:\n\n```\ngcloud run deploy n8n \\\n --image=n8nio/n8n \\\n --region=us-west1 \\\n --allow-unauthenticated \\\n --port=5678 \\\n --no-cpu-throttling \\\n --memory=2gi \\\n --set-env-vars=\"n8n_endpoint_health=health\"\n```\n\n(you can specify whichever region you prefer, instead of \"us-west1\")\n\nonce the deployment finishes, open another tab to navigate to the service url. n8n may still be loading and you will see a \"n8n is starting up. please wait\" message, but shortly thereafter you should see the n8n login screen.\n\noptional: if you want to keep this n8n service running for as long as possible to avoid data loss, you can also set manual scale to 1 to prevent it from autoscaling to 0.\n\n```\ngcloud run deploy n8n \\\n --image=n8nio/n8n \\\n --region=us-west1 \\\n --allow-unauthenticated \\\n --port=5678 \\\n --no-cpu-throttling \\\n --memory=2gi \\\n --scaling=1 \\\n --set-env-vars=\"n8n_endpoint_health=health\"\n```\n\nthis does not prevent data loss completely, such as whenever the cloud run service is re-deployed/updated. if you want truly persistant data, you should refer to the instructions below for how to attach a database.\n\n## durable mode\n\nthe following instructions are intended for a more durable, production-grade deployment of n8n on cloud run. it includes resources such as a database for persistance and secret manager for sensitive data.\n\nif you want to deploy the following setup via terraform, refer to this [example](https://github.com/ryanpei/n8n-hosting/tree/main/google-cloud-run) which deploys the same setup as the following (without the oauth setup for google workspace tools).\n\n## enable apis and set env vars\n\nopen the cloud shell terminal (on the google cloud console, either type \"g\" then \"s\" or click on the terminal icon on the upper right) and run these commands in the terminal session:\n\n```\n## you may need to login first\ngcloud auth login\n\ngcloud services enable run.googleapis.com\ngcloud services enable sqladmin.googleapis.com\ngcloud services enable secretmanager.googleapis.com\n```\n\nyou'll also want to set some environment variables for the remainder of these instructions:\n\n```\nexport project_id=your-project\nexport region=region-where-you-want-this-deployed\n```\n\n## setup your postgres database\n\nrun this command to create the postgres db instance (it will take a few minutes to complete; also ensure you update the root-password field with your own desired password):\n\n```\ngcloud sql instances create n8n-db \\\n --database-version=postgres_13 \\\n --tier=db-f1-micro \\\n --region=$region \\\n --root-password=\"change-this-password\" \\\n --storage-size=10gb \\\n --availability-type=zonal \\\n --no-backup \\\n --storage-type=hdd\n```\n\nonce complete, you can add the database that n8n will use:\n\n```\ngcloud sql databases create n8n --instance=n8n-db\n```\n\ncreate the db user for n8n (change the password value, of course):\n\n```\ngcloud sql users create n8n-user \\\n --instance=n8n-db \\\n --password=\"change-this-password\"\n```\n\nyou can save the password you set for this n8n-user to a file for the next step of saving the password in secret manager. be sure to delete this file later.\n\n## store sensitive data in secret manager\n\nwhile not required, it's absolutely recommended to store your sensitive data in secrets manager.\n\ncreate a secret for the database password (replace \"/your/password/file\" with the file you created above for the n8n-user password):\n\n```\ngcloud secrets create n8n-db-password \\\n --data-file=/your/password/file \\\n --replication-policy=\"automatic\"\n```\n\ncreate an encryption key (you can use your own, this example generates a random one):\n\n```\nopenssl rand -base64 -out my-encryption-key 42\n```\n\ncreate a secret for this encryption key (replace \"my-encryption-key\" if you are supplying your own):\n\n```\ngcloud secrets create n8n-encryption-key \\\n --data-file=my-encryption-key \\\n --replication-policy=\"automatic\"\n```\n\nnow you can delete my-encryption-key and the database password files you created. these values are now securely stored in secret manager.\n\n## create a service account for cloud run\n\nyou want this cloud run service to be restricted to access only the resources it needs. the following commands create the service account and adds the permissions necessary to access secrets and the database:\n\n```\ngcloud iam service-accounts create n8n-service-account \\\n --display-name=\"n8n service account\"\n\ngcloud secrets add-iam-policy-binding n8n-db-password \\\n --member=\"serviceaccount:n8n-service-account@$project_id.iam.gserviceaccount.com\" \\\n --role=\"roles/secretmanager.secretaccessor\"\n\ngcloud secrets add-iam-policy-binding n8n-encryption-key \\\n --member=\"serviceaccount:n8n-service-account@$project_id.iam.gserviceaccount.com\" \\\n --role=\"roles/secretmanager.secretaccessor\"\n\ngcloud projects add-iam-policy-binding $project_id \\\n --member=\"serviceaccount:n8n-service-account@$project_id.iam.gserviceaccount.com\" \\\n --role=\"roles/cloudsql.client\"\n```\n\n## deploy the cloud run service\n\nnow you can deploy your n8n service:\n\n```\ngcloud run deploy n8n \\\n --image=n8nio/n8n:latest \\\n --command=\"/bin/sh\" \\\n --args=\"-c,sleep 5;n8n start\" \\\n --region=$region \\\n --allow-unauthenticated \\\n --port=5678 \\\n --memory=2gi \\\n --no-cpu-throttling \\\n --set-env-vars=\"n8n_port=5678,n8n_protocol=https,n8n_endpoint_health=health,db_type=postgresdb,db_postgresdb_database=n8n,db_postgresdb_user=n8n-user,db_postgresdb_host=/cloudsql/$project_id:$region:n8n-db,db_postgresdb_port=5432,db_postgresdb_schema=public,generic_timezone=utc,queue_health_check_active=true\" \\\n --set-secrets=\"db_postgresdb_password=n8n-db-password:latest,n8n_encryption_key=n8n-encryption-key:latest\" \\\n --add-cloudsql-instances=$project_id:$region:n8n-db \\\n --service-account=n8n-service-account@$project_id.iam.gserviceaccount.com\n```\n\nonce the deployment finishes, open another tab to navigate to the service url. you should see the n8n login screen.\n\n## troubleshooting\n\nif you see a \"cannot get /\" screen this usually indicates that n8n is still starting up. you can refresh the page and it should eventually load.\n\n## (optional) enabling google workspace services as n8n tools\n\nif you want to use google workspace services (gmail, calendar, drive, etc.) as tools in n8n, it's recommended to setup oauth to access these services.\n\nfirst ensure the respective apis you want are enabled:\n\n```\n## enable whichever apis you need\n## note: if you want sheets/docs, it's not enough to just enable drive; these services",
|
|
17347
17161
|
"importantTerms": [
|
|
17348
|
-
"kubernetes",
|
|
17349
|
-
"google",
|
|
17350
|
-
"cloud",
|
|
17351
|
-
"https",
|
|
17352
17162
|
"this",
|
|
17163
|
+
"cloud",
|
|
17164
|
+
"service",
|
|
17353
17165
|
"gcloud",
|
|
17166
|
+
"google",
|
|
17354
17167
|
"services",
|
|
17355
|
-
"yaml",
|
|
17356
|
-
"with",
|
|
17357
|
-
"resources",
|
|
17358
17168
|
"your",
|
|
17359
|
-
"
|
|
17360
|
-
"
|
|
17169
|
+
"password",
|
|
17170
|
+
"create",
|
|
17171
|
+
"enable",
|
|
17172
|
+
"deploy",
|
|
17173
|
+
"want",
|
|
17174
|
+
"region",
|
|
17175
|
+
"data",
|
|
17176
|
+
"https",
|
|
17177
|
+
"these",
|
|
17178
|
+
"project",
|
|
17179
|
+
"googleapis",
|
|
17180
|
+
"access",
|
|
17181
|
+
"file",
|
|
17361
17182
|
"deployment",
|
|
17183
|
+
"have",
|
|
17184
|
+
"encryption",
|
|
17185
|
+
"account",
|
|
17186
|
+
"workspace",
|
|
17187
|
+
"database",
|
|
17188
|
+
"hosting",
|
|
17189
|
+
"need",
|
|
17190
|
+
"instructions",
|
|
17191
|
+
"oauth",
|
|
17192
|
+
"will",
|
|
17193
|
+
"secret",
|
|
17194
|
+
"setup",
|
|
17195
|
+
"user",
|
|
17196
|
+
"secrets",
|
|
17197
|
+
"also",
|
|
17198
|
+
"click",
|
|
17199
|
+
"login",
|
|
17200
|
+
"with",
|
|
17201
|
+
"mode",
|
|
17202
|
+
"refer",
|
|
17203
|
+
"drive",
|
|
17204
|
+
"created",
|
|
17205
|
+
"first",
|
|
17206
|
+
"enabled",
|
|
17207
|
+
"open",
|
|
17208
|
+
"terminal",
|
|
17209
|
+
"type",
|
|
17210
|
+
"auth",
|
|
17211
|
+
"health"
|
|
17212
|
+
]
|
|
17213
|
+
}
|
|
17214
|
+
},
|
|
17215
|
+
{
|
|
17216
|
+
"id": "page-0204",
|
|
17217
|
+
"title": "Google Kubernetes Engine",
|
|
17218
|
+
"url": "https://docs.n8n.io/hosting/installation/server-setups/google-kubernetes-engine/index.md",
|
|
17219
|
+
"urlPath": "hosting/installation/server-setups/google-kubernetes-engine/index.md",
|
|
17220
|
+
"category": "hosting",
|
|
17221
|
+
"subcategory": null,
|
|
17222
|
+
"nodeName": null,
|
|
17223
|
+
"nodeType": null,
|
|
17224
|
+
"content": {
|
|
17225
|
+
"markdown": "# Hosting n8n on Google Kubernetes Engine\n\nGoogle Cloud offers several options suitable for hosting n8n, including Cloud Run (optimized for running containers), Compute Engine (VMs), and Kubernetes Engine (containers running with Kubernetes).\n\nThis guide uses the Google Kubernetes Engine (GKE) as the hosting option. If you want to use Cloud Run, refer to [these instructions](../google-cloud-run/).\n\nMost of the steps in this guide use the Google Cloud UI, but you can also use the [gcloud command line tool](https://cloud.google.com/sdk/gcloud/) instead to undertake all the steps.\n\n## Prerequisites\n\n- The [gcloud command line tool](https://cloud.google.com/sdk/gcloud/)\n- The [gke-gcloud-auth-plugin](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) (install the gcloud CLI first)\n\nSelf-hosting knowledge prerequisites\n\nSelf-hosting n8n requires technical knowledge, including:\n\n- Setting up and configuring servers and containers\n- Managing application resources and scaling\n- Securing servers and applications\n- Configuring n8n\n\nn8n recommends self-hosting for expert users. Mistakes can lead to data loss, security issues, and downtime. If you aren't experienced at managing servers, n8n recommends [n8n Cloud](https://n8n.io/cloud/).\n\nStable and Beta versions\n\nn8n releases a new minor version most weeks. The `stable` version is for production use. `beta` is the most recent release. The `beta` version may be unstable. To report issues, use the [forum](https://community.n8n.io/c/questions/12).\n\nCurrent `stable`: 2.15.0 Current `beta`: 2.16.0\n\n## Create project\n\nGCP encourages you to create projects to logically organize resources and configuration. Create a new project for your n8n deployment from your Google Cloud Console: select the project dropdown menu and then the **NEW PROJECT** button. Then select the newly created project. As you follow the other steps in this guide, make sure you have the correct project selected.\n\n## Enable the Kubernetes Engine API\n\nGKE isn't enabled by default. Search for \"Kubernetes\" in the top search bar and select \"Kubernetes Engine\" from the results.\n\nSelect **ENABLE** to enable the Kubernetes Engine API for this project.\n\n## Create a cluster\n\nFrom the [GKE service page](https://console.cloud.google.com/kubernetes/list/overview), select **Clusters** > **CREATE**. Make sure you select the \"Standard\" cluster option, n8n doesn't work with an \"Autopilot\" cluster. You can leave the cluster configuration on defaults unless there's anything specifically you need to change, such as location.\n\n## Set Kubectl context\n\nThe rest of the steps in this guide require you to set the GCP instance as the Kubectl context. You can find the connection details for a cluster instance by opening its details page and selecting **CONNECT**. The displayed code snippet shows a connection string for the gcloud CLI tool. Paste and run the code snippet in the gcloud CLI to change your local Kubernetes settings to use the new gcloud cluster.\n\n## Clone configuration repository\n\nKubernetes and n8n require a series of configuration files. You can clone these from [this repository](https://github.com/n8n-io/n8n-hosting) locally. The following steps explain the file configuration and how to add your information.\n\nClone the repository with the following command:\n\n```\ngit clone https://github.com/n8n-io/n8n-hosting.git\n```\n\nAnd change directory:\n\n```\ncd n8n-hosting/kubernetes\n```\n\n## Configure Postgres\n\nFor larger scale n8n deployments, Postgres provides a more robust database backend than SQLite.\n\n### Create a volume for persistent storage\n\nTo maintain data between pod restarts, the Postgres deployment needs a persistent volume. Running Postgres on GCP requires a specific Kubernetes Storage Class. You can read [this guide](https://cloud.google.com/architecture/deploying-highly-available-postgresql-with-gke) for specifics, but the `storage.yaml` manifest creates it for you. You may want to change the regions to create the storage in under the `allowedTopologies` > `matchedLabelExpressions` > `values` key. By default, they're set to `us-central`.\n\n```\n…\nallowedTopologies:\n - matchLabelExpressions:\n - key: failure-domain.beta.kubernetes.io/zone\n values:\n - us-central1-b\n - us-central1-c\n```\n\n### Postgres environment variables\n\nPostgres needs some environment variables set to pass to the application running in the containers.\n\nThe example `postgres-secret.yaml` file contains placeholders you need to replace with your own values. Postgres will use these details when creating the database..\n\nThe `postgres-deployment.yaml` manifest then uses the values from this manifest file to send to the application pods.\n\n## Configure n8n\n\n### Create a volume for file storage\n\nWhile not essential for running n8n, using persistent volumes is required for:\n\n- Using nodes that interact with files, such as the binary data node.\n- If you want to persist [manual n8n encryption keys](../../../configuration/environment-variables/deployment/) between restarts. This saves a file containing the key into file storage during startup.\n\nThe `n8n-claim0-persistentvolumeclaim.yaml` manifest creates this, and the n8n Deployment mounts that claim in the `volumes` section of the `n8n-deployment.yaml` manifest.\n\n```\n…\nvolumes:\n - name: n8n-claim0\n persistentVolumeClaim:\n claimName: n8n-claim0\n…\n```\n\n### Pod resources\n\n[Kubernetes lets you](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) optionally specify the minimum resources application containers need and the limits they can run to. The example YAML files cloned above contain the following in the `resources` section of the `n8n-deployment.yaml` and `postgres-deployment.yaml` files:\n\n```\n…\nresources:\n requests:\n memory: \"250Mi\"\n limits:\n memory: \"500Mi\"\n…\n```\n\nThis defines a minimum of 250mb per container, a maximum of 500mb, and lets Kubernetes handle CPU. You can change these values to match your own needs. As a guide, here are the resources values for the n8n cloud offerings:\n\n- **Start**: 320mb RAM, 10 millicore CPU burstable\n- **Pro (10k executions)**: 640mb RAM, 20 millicore CPU burstable\n- **Pro (50k executions)**: 1280mb RAM, 80 millicore CPU burstable\n\n### Optional: Environment variables\n\nYou can configure n8n settings and behaviors using environment variables.\n\nCreate an `n8n-secret.yaml` file. Refer to [Environment variables](../../../configuration/environment-variables/) for n8n environment variables details.\n\n## Deployments\n\nThe two deployment manifests (`n8n-deployment.yaml` and `postgres-deployment.yaml`) define the n8n and Postgres applications to Kubernetes.\n\nThe manifests define the following:\n\n- Send the environment variables defined to each application pod\n- Define the container image to use\n- Set resource consumption limits with the `resources` object\n- The `volumes` defined earlier and `volumeMounts` to define the path in the container to mount volumes.\n- Scaling and restart policies. The example manifests define one instance of each pod. You should change this to meet your needs.\n\n## Services\n\nThe two service manifests (`postgres-service.yaml` and `n8n-service.yaml`) expose the services to the outside world using the Kubernetes load balancer using ports 5432 and 5678 respectively.\n\n## Send to Kubernetes cluster\n\nSend all the manifests to the cluster with the following command:\n\n```\nkubectl apply -f .\n```\n\nNamespace error\n\nYou may see an error message about not finding an \"n8n\" namespace as that resources isn't ready yet. You can run the same command again, or apply the namespace manifest first with the following command:\n\n```\nkubectl apply -f namespace.yaml\n```\n\n## Set up DNS\n\nn8n typically operates on a subdomain. Create a DNS record with your provider for the subdomain and point it to the IP address of the n8n service. Find the IP address of the n8n service from the **Services & Ingress** menu item of the cluster you want to use under the **Endpoints** column.\n\nGKE and IP addresses\n\n[Read this GKE tutorial](https://cloud.google.com/kubernetes-engine/docs/tutorials/configuring-domain-name-static-ip#configuring_your_domain_name_records) for more details on how reserved IP addresses work with GKE and Kubernetes resources.\n\n## Delete resources\n\nRemove the resources created by the manifests with the following command:\n\n```\nkubectl delete -f .\n```\n\n## Next steps\n\n- Learn more about [configuring](../../../configuration/environment-variables/) and [scaling](../../../scaling/overview/) n8n.\n- Or explore using n8n: try the [Quickstarts](../../../../try-it-out/).\n",
|
|
17226
|
+
"excerpt": "# Hosting n8n on Google Kubernetes Engine Google Cloud offers several options suitable for hosting n8n, including Cloud Run (optimized for running containers), Compute Engine (VMs), and Kubernetes Engine (containers running with Kubernetes). This guide uses the Google Kubernetes Engine (GKE) as the hosting option. If you want to use Cloud Run, refer to [these instructions](../google-cloud-run/). Most of the steps in this guide use the Google Cloud UI, but you can also use the [gcloud command...",
|
|
17227
|
+
"sections": [
|
|
17228
|
+
{
|
|
17229
|
+
"title": "Hosting n8n on Google Kubernetes Engine",
|
|
17230
|
+
"level": 1,
|
|
17231
|
+
"content": "Google Cloud offers several options suitable for hosting n8n, including Cloud Run (optimized for running containers), Compute Engine (VMs), and Kubernetes Engine (containers running with Kubernetes).\n\nThis guide uses the Google Kubernetes Engine (GKE) as the hosting option. If you want to use Cloud Run, refer to [these instructions](../google-cloud-run/).\n\nMost of the steps in this guide use the Google Cloud UI, but you can also use the [gcloud command line tool](https://cloud.google.com/sdk/gcloud/) instead to undertake all the steps."
|
|
17232
|
+
}
|
|
17233
|
+
]
|
|
17234
|
+
},
|
|
17235
|
+
"metadata": {
|
|
17236
|
+
"keywords": [
|
|
17237
|
+
"google",
|
|
17238
|
+
"kubernetes",
|
|
17239
|
+
"engine",
|
|
17240
|
+
"hosting",
|
|
17241
|
+
"prerequisites",
|
|
17362
17242
|
"create",
|
|
17243
|
+
"project",
|
|
17363
17244
|
"enable",
|
|
17245
|
+
"cluster",
|
|
17246
|
+
"kubectl",
|
|
17247
|
+
"context",
|
|
17248
|
+
"clone",
|
|
17249
|
+
"configuration",
|
|
17250
|
+
"repository",
|
|
17251
|
+
"configure",
|
|
17252
|
+
"postgres",
|
|
17253
|
+
"volume",
|
|
17254
|
+
"persistent",
|
|
17255
|
+
"storage",
|
|
17364
17256
|
"environment",
|
|
17365
17257
|
"variables",
|
|
17366
|
-
"hosting",
|
|
17367
17258
|
"file",
|
|
17259
|
+
"resources",
|
|
17260
|
+
"optional:",
|
|
17261
|
+
"deployments",
|
|
17262
|
+
"services",
|
|
17263
|
+
"send",
|
|
17264
|
+
"delete",
|
|
17265
|
+
"next",
|
|
17266
|
+
"steps"
|
|
17267
|
+
],
|
|
17268
|
+
"useCases": [],
|
|
17269
|
+
"operations": [],
|
|
17270
|
+
"codeExamples": 8,
|
|
17271
|
+
"complexity": "intermediate",
|
|
17272
|
+
"readingTime": "6 min",
|
|
17273
|
+
"contentLength": 8654,
|
|
17274
|
+
"relatedPages": []
|
|
17275
|
+
},
|
|
17276
|
+
"searchIndex": {
|
|
17277
|
+
"fullText": "google kubernetes engine # hosting n8n on google kubernetes engine\n\ngoogle cloud offers several options suitable for hosting n8n, including cloud run (optimized for running containers), compute engine (vms), and kubernetes engine (containers running with kubernetes).\n\nthis guide uses the google kubernetes engine (gke) as the hosting option. if you want to use cloud run, refer to [these instructions](../google-cloud-run/).\n\nmost of the steps in this guide use the google cloud ui, but you can also use the [gcloud command line tool](https://cloud.google.com/sdk/gcloud/) instead to undertake all the steps.\n\n## prerequisites\n\n- the [gcloud command line tool](https://cloud.google.com/sdk/gcloud/)\n- the [gke-gcloud-auth-plugin](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) (install the gcloud cli first)\n\nself-hosting knowledge prerequisites\n\nself-hosting n8n requires technical knowledge, including:\n\n- setting up and configuring servers and containers\n- managing application resources and scaling\n- securing servers and applications\n- configuring n8n\n\nn8n recommends self-hosting for expert users. mistakes can lead to data loss, security issues, and downtime. if you aren't experienced at managing servers, n8n recommends [n8n cloud](https://n8n.io/cloud/).\n\nstable and beta versions\n\nn8n releases a new minor version most weeks. the `stable` version is for production use. `beta` is the most recent release. the `beta` version may be unstable. to report issues, use the [forum](https://community.n8n.io/c/questions/12).\n\ncurrent `stable`: 2.15.0 current `beta`: 2.16.0\n\n## create project\n\ngcp encourages you to create projects to logically organize resources and configuration. create a new project for your n8n deployment from your google cloud console: select the project dropdown menu and then the **new project** button. then select the newly created project. as you follow the other steps in this guide, make sure you have the correct project selected.\n\n## enable the kubernetes engine api\n\ngke isn't enabled by default. search for \"kubernetes\" in the top search bar and select \"kubernetes engine\" from the results.\n\nselect **enable** to enable the kubernetes engine api for this project.\n\n## create a cluster\n\nfrom the [gke service page](https://console.cloud.google.com/kubernetes/list/overview), select **clusters** > **create**. make sure you select the \"standard\" cluster option, n8n doesn't work with an \"autopilot\" cluster. you can leave the cluster configuration on defaults unless there's anything specifically you need to change, such as location.\n\n## set kubectl context\n\nthe rest of the steps in this guide require you to set the gcp instance as the kubectl context. you can find the connection details for a cluster instance by opening its details page and selecting **connect**. the displayed code snippet shows a connection string for the gcloud cli tool. paste and run the code snippet in the gcloud cli to change your local kubernetes settings to use the new gcloud cluster.\n\n## clone configuration repository\n\nkubernetes and n8n require a series of configuration files. you can clone these from [this repository](https://github.com/n8n-io/n8n-hosting) locally. the following steps explain the file configuration and how to add your information.\n\nclone the repository with the following command:\n\n```\ngit clone https://github.com/n8n-io/n8n-hosting.git\n```\n\nand change directory:\n\n```\ncd n8n-hosting/kubernetes\n```\n\n## configure postgres\n\nfor larger scale n8n deployments, postgres provides a more robust database backend than sqlite.\n\n### create a volume for persistent storage\n\nto maintain data between pod restarts, the postgres deployment needs a persistent volume. running postgres on gcp requires a specific kubernetes storage class. you can read [this guide](https://cloud.google.com/architecture/deploying-highly-available-postgresql-with-gke) for specifics, but the `storage.yaml` manifest creates it for you. you may want to change the regions to create the storage in under the `allowedtopologies` > `matchedlabelexpressions` > `values` key. by default, they're set to `us-central`.\n\n```\n…\nallowedtopologies:\n - matchlabelexpressions:\n - key: failure-domain.beta.kubernetes.io/zone\n values:\n - us-central1-b\n - us-central1-c\n```\n\n### postgres environment variables\n\npostgres needs some environment variables set to pass to the application running in the containers.\n\nthe example `postgres-secret.yaml` file contains placeholders you need to replace with your own values. postgres will use these details when creating the database..\n\nthe `postgres-deployment.yaml` manifest then uses the values from this manifest file to send to the application pods.\n\n## configure n8n\n\n### create a volume for file storage\n\nwhile not essential for running n8n, using persistent volumes is required for:\n\n- using nodes that interact with files, such as the binary data node.\n- if you want to persist [manual n8n encryption keys](../../../configuration/environment-variables/deployment/) between restarts. this saves a file containing the key into file storage during startup.\n\nthe `n8n-claim0-persistentvolumeclaim.yaml` manifest creates this, and the n8n deployment mounts that claim in the `volumes` section of the `n8n-deployment.yaml` manifest.\n\n```\n…\nvolumes:\n - name: n8n-claim0\n persistentvolumeclaim:\n claimname: n8n-claim0\n…\n```\n\n### pod resources\n\n[kubernetes lets you](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) optionally specify the minimum resources application containers need and the limits they can run to. the example yaml files cloned above contain the following in the `resources` section of the `n8n-deployment.yaml` and `postgres-deployment.yaml` files:\n\n```\n…\nresources:\n requests:\n memory: \"250mi\"\n limits:\n memory: \"500mi\"\n…\n```\n\nthis defines a minimum of 250mb per container, a maximum of 500mb, and lets kubernetes handle cpu. you can change these values to match your own needs. as a guide, here are the resources values for the n8n cloud offerings:\n\n- **start**: 320mb ram, 10 millicore cpu burstable\n- **pro (10k executions)**: 640mb ram, 20 millicore cpu burstable\n- **pro (50k executions)**: 1280mb ram, 80 millicore cpu burstable\n\n### optional: environment variables\n\nyou can configure n8n settings and behaviors using environment variables.\n\ncreate an `n8n-secret.yaml` file. refer to [environment variables](../../../configuration/environment-variables/) for n8n environment variables details.\n\n## deployments\n\nthe two deployment manifests (`n8n-deployment.yaml` and `postgres-deployment.yaml`) define the n8n and postgres applications to kubernetes.\n\nthe manifests define the following:\n\n- send the environment variables defined to each application pod\n- define the container image to use\n- set resource consumption limits with the `resources` object\n- the `volumes` defined earlier and `volumemounts` to define the path in the container to mount volumes.\n- scaling and restart policies. the example manifests define one instance of each pod. you should change this to meet your needs.\n\n## services\n\nthe two service manifests (`postgres-service.yaml` and `n8n-service.yaml`) expose the services to the outside world using the kubernetes load balancer using ports 5432 and 5678 respectively.\n\n## send to kubernetes cluster\n\nsend all the manifests to the cluster with the following command:\n\n```\nkubectl apply -f .\n```\n\nnamespace error\n\nyou may see an error message about not finding an \"n8n\" namespace as that resources isn't ready yet. you can run the same command again, or apply the namespace manifest first with the following command:\n\n```\nkubectl apply -f namespace.yaml\n```\n\n## set up dns\n\nn8n typically operates on a subdomain. create a dns record with your provider for the subdomain and point it to the ip address of the n8n service. find the ip address of the n8n service from the **services & ingress** menu item of the cluster you want to use under the **endpoints** column.\n\ngke and ip addresses\n\n[read this gke tutorial](https://cloud.google.com/kubernetes-engine/docs/tutorials/configuring-domain-name-static-ip#configuring_your_domain_name_records) for more details on how reserved ip addresses work with gke and kubernetes resources.\n\n## delete resources\n\nremove the resources created by the manifests with the following command:\n\n```\nkubectl delete -f .\n```\n\n## next steps\n\n- learn more about [configuring](../../../configuration/environment-variables/) and [scaling](../../../scaling/overview/) n8n.\n- or explore using n8n: try the [quickstarts](../../../../try-it-out/).\n hosting n8n on google kubernetes engine",
|
|
17278
|
+
"importantTerms": [
|
|
17279
|
+
"kubernetes",
|
|
17280
|
+
"cloud",
|
|
17281
|
+
"google",
|
|
17282
|
+
"yaml",
|
|
17283
|
+
"this",
|
|
17284
|
+
"resources",
|
|
17285
|
+
"postgres",
|
|
17286
|
+
"with",
|
|
17287
|
+
"https",
|
|
17288
|
+
"deployment",
|
|
17368
17289
|
"engine",
|
|
17369
|
-
"
|
|
17290
|
+
"hosting",
|
|
17291
|
+
"create",
|
|
17292
|
+
"environment",
|
|
17293
|
+
"variables",
|
|
17294
|
+
"gcloud",
|
|
17370
17295
|
"configuration",
|
|
17371
|
-
"select",
|
|
17372
17296
|
"cluster",
|
|
17373
|
-
"
|
|
17374
|
-
"project",
|
|
17297
|
+
"your",
|
|
17375
17298
|
"containers",
|
|
17376
|
-
"steps",
|
|
17377
17299
|
"command",
|
|
17378
|
-
"
|
|
17379
|
-
"from",
|
|
17300
|
+
"project",
|
|
17380
17301
|
"following",
|
|
17381
|
-
"
|
|
17382
|
-
"googleapis",
|
|
17302
|
+
"file",
|
|
17383
17303
|
"guide",
|
|
17304
|
+
"steps",
|
|
17384
17305
|
"kubectl",
|
|
17385
|
-
"
|
|
17306
|
+
"from",
|
|
17307
|
+
"select",
|
|
17308
|
+
"service",
|
|
17386
17309
|
"change",
|
|
17387
17310
|
"storage",
|
|
17388
17311
|
"manifest",
|
|
17389
17312
|
"values",
|
|
17313
|
+
"using",
|
|
17390
17314
|
"manifests",
|
|
17391
|
-
"access",
|
|
17392
17315
|
"running",
|
|
17393
|
-
"
|
|
17316
|
+
"application",
|
|
17394
17317
|
"beta",
|
|
17395
17318
|
"details",
|
|
17396
17319
|
"volumes",
|
|
17397
|
-
"define"
|
|
17320
|
+
"define",
|
|
17321
|
+
"want",
|
|
17322
|
+
"these",
|
|
17323
|
+
"configuring",
|
|
17324
|
+
"scaling",
|
|
17325
|
+
"clone",
|
|
17326
|
+
"files",
|
|
17327
|
+
"needs",
|
|
17328
|
+
"send"
|
|
17398
17329
|
]
|
|
17399
17330
|
}
|
|
17400
17331
|
},
|
|
17401
17332
|
{
|
|
17402
|
-
"id": "page-
|
|
17333
|
+
"id": "page-0205",
|
|
17403
17334
|
"title": "Heroku",
|
|
17404
17335
|
"url": "https://docs.n8n.io/hosting/installation/server-setups/heroku/index.md",
|
|
17405
17336
|
"urlPath": "hosting/installation/server-setups/heroku/index.md",
|
|
@@ -17487,7 +17418,7 @@
|
|
|
17487
17418
|
}
|
|
17488
17419
|
},
|
|
17489
17420
|
{
|
|
17490
|
-
"id": "page-
|
|
17421
|
+
"id": "page-0206",
|
|
17491
17422
|
"title": "Hetzner",
|
|
17492
17423
|
"url": "https://docs.n8n.io/hosting/installation/server-setups/hetzner/index.md",
|
|
17493
17424
|
"urlPath": "hosting/installation/server-setups/hetzner/index.md",
|
|
@@ -17630,6 +17561,193 @@
|
|
|
17630
17561
|
]
|
|
17631
17562
|
}
|
|
17632
17563
|
},
|
|
17564
|
+
{
|
|
17565
|
+
"id": "page-0207",
|
|
17566
|
+
"title": "Docker Compose",
|
|
17567
|
+
"url": "https://docs.n8n.io/hosting/installation/server-setups/docker-compose/index.md",
|
|
17568
|
+
"urlPath": "hosting/installation/server-setups/docker-compose/index.md",
|
|
17569
|
+
"category": "hosting",
|
|
17570
|
+
"subcategory": null,
|
|
17571
|
+
"nodeName": null,
|
|
17572
|
+
"nodeType": null,
|
|
17573
|
+
"content": {
|
|
17574
|
+
"markdown": "# Docker-Compose\n\nThese instructions cover how to run n8n on a Linux server using Docker Compose.\n\nIf you have already installed Docker and Docker-Compose, then you can start with [step 3](#3-dns-setup).\n\nYou can find Docker Compose configurations for various architectures in the [n8n-hosting repository](https://github.com/n8n-io/n8n-hosting).\n\nSelf-hosting knowledge prerequisites\n\nSelf-hosting n8n requires technical knowledge, including:\n\n- Setting up and configuring servers and containers\n- Managing application resources and scaling\n- Securing servers and applications\n- Configuring n8n\n\nn8n recommends self-hosting for expert users. Mistakes can lead to data loss, security issues, and downtime. If you aren't experienced at managing servers, n8n recommends [n8n Cloud](https://n8n.io/cloud/).\n\nStable and Beta versions\n\nn8n releases a new minor version most weeks. The `stable` version is for production use. `beta` is the most recent release. The `beta` version may be unstable. To report issues, use the [forum](https://community.n8n.io/c/questions/12).\n\nCurrent `stable`: 2.15.0 Current `beta`: 2.16.0\n\n## 1. Install Docker and Docker Compose\n\nThe way that you install Docker and Docker Compose depends on your Linux distribution. You can find specific instructions for each component in the links below:\n\n- [Docker Engine](https://docs.docker.com/engine/install/)\n- [Docker Compose](https://docs.docker.com/compose/install/linux/)\n\nAfter following the installation instructions, verify that Docker and Docker Compose are available by typing:\n\n```\ndocker --version\ndocker compose version\n```\n\n## 2. Optional: Non-root user access\n\nYou can optionally grant access to run Docker without the `sudo` command.\n\nTo grant access to the user that you're currently logged in with (assuming they have `sudo` access), run:\n\n```\nsudo usermod -aG docker ${USER}\n# Register the `docker` group membership with current session without changing your primary group\nexec sg docker newgrp\n```\n\nTo grant access to a different user, type the following, substituting `<USER_TO_RUN_DOCKER>` with the appropriate username:\n\n```\nsudo usermod -aG docker <USER_TO_RUN_DOCKER>\n```\n\nYou will need to run `exec sg docker newgrp` from any of that user's existing sessions for it to access the new group permissions.\n\nYou can verify that your current session recognizes the `docker` group by typing:\n\n```\ngroups\n```\n\n## 3. DNS setup\n\nTo host n8n online or on a network, create a dedicated subdomain pointed at your server.\n\nAdd an A record to route the subdomain accordingly:\n\n| Record type | Name | Destination |\n| ----------- | --------------------------------- | -------------------------- |\n| A | `n8n` (or your desired subdomain) | `<your_server_IP_address>` |\n\n## 4. Create an `.env` file\n\nCreate a project directory to store your n8n environment configuration and Docker Compose files and navigate inside:\n\n```\nmkdir n8n-compose\ncd n8n-compose\n```\n\nInside the `n8n-compose` directory, create an `.env` file to customize your n8n instance's details. Change it to match your own information:\n\n```\n# DOMAIN_NAME and SUBDOMAIN together determine where n8n will be reachable from\n# The top level domain to serve from\nDOMAIN_NAME=example.com\n\n# The subdomain to serve from\nSUBDOMAIN=n8n\n\n# The above example serve n8n at: https://n8n.example.com\n\n# Optional timezone to set which gets used by Cron and other scheduling nodes\n# New York is the default value if not set\nGENERIC_TIMEZONE=Europe/Berlin\n\n# The email address to use for the TLS/SSL certificate creation\nSSL_EMAIL=user@example.com\n```\n\n## 5. Create local files directory\n\nInside your project directory, create a directory called `local-files` for sharing files between the n8n instance and the host system (for example, using the [Read/Write Files from Disk node](../../../../integrations/builtin/core-nodes/n8n-nodes-base.readwritefile/)):\n\n```\nmkdir local-files\n```\n\nThe Docker Compose file below can automatically create this directory, but doing it manually ensures that it's created with the right ownership and permissions.\n\n## 6. Create Docker Compose file\n\nCreate a `compose.yaml` file. Paste the following in the file:\n\n```\nservices:\n traefik:\n image: \"traefik\"\n restart: always\n command:\n - \"--api.insecure=true\"\n - \"--providers.docker=true\"\n - \"--providers.docker.exposedbydefault=false\"\n - \"--entrypoints.web.address=:80\"\n - \"--entrypoints.web.http.redirections.entryPoint.to=websecure\"\n - \"--entrypoints.web.http.redirections.entrypoint.scheme=https\"\n - \"--entrypoints.websecure.address=:443\"\n - \"--certificatesresolvers.mytlschallenge.acme.tlschallenge=true\"\n - \"--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}\"\n - \"--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json\"\n ports:\n - \"80:80\"\n - \"443:443\"\n volumes:\n - traefik_data:/letsencrypt\n - /var/run/docker.sock:/var/run/docker.sock:ro\n\n n8n:\n image: docker.n8n.io/n8nio/n8n\n restart: always\n ports:\n - \"127.0.0.1:5678:5678\"\n labels:\n - traefik.enable=true\n - traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)\n - traefik.http.routers.n8n.tls=true\n - traefik.http.routers.n8n.entrypoints=web,websecure\n - traefik.http.routers.n8n.tls.certresolver=mytlschallenge\n - traefik.http.middlewares.n8n.headers.SSLRedirect=true\n - traefik.http.middlewares.n8n.headers.STSSeconds=315360000\n - traefik.http.middlewares.n8n.headers.browserXSSFilter=true\n - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true\n - traefik.http.middlewares.n8n.headers.forceSTSHeader=true\n - traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}\n - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true\n - traefik.http.middlewares.n8n.headers.STSPreload=true\n - traefik.http.routers.n8n.middlewares=n8n@docker\n environment:\n - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true\n - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}\n - N8N_PORT=5678\n - N8N_PROTOCOL=https \n - NODE_ENV=production\n - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/\n - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}\n - TZ=${GENERIC_TIMEZONE}\n volumes:\n - n8n_data:/home/node/.n8n\n - ./local-files:/files\n\nvolumes:\n n8n_data:\n traefik_data:\n```\n\nThe Docker Compose file above configures two containers: one for n8n, and one to run [traefik](https://github.com/traefik/traefik), an application proxy to manage TLS/SSL certificates and handle routing.\n\nIt also creates and mounts two [Docker Volumes](https://docs.docker.com/engine/storage/volumes/) and mounts the `local-files` directory you created earlier:\n\n| Name | Type | Container mount | Description |\n| --------------- | ----------------------------------------------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| `n8n_data` | [Volume](https://docs.docker.com/engine/storage/volumes/) | `/home/node/.n8n` | Where n8n saves its SQLite database file and encryption key. |\n| `traefik_data` | [Volume](https://docs.docker.com/engine/storage/volumes/) | `/letsencrypt` | Where traefik saves TLS/SSL certificate data. |\n| `./local-files` | [Bind](https://docs.docker.com/engine/storage/bind-mounts/) | `/files` | A local directory shared between the n8n instance and host. In n8n, use the `/files` path to read from and write to this directory. |\n\n## 7. Start Docker Compose\n\nStart n8n by typing:\n\n```\nsudo docker compose up -d\n```\n\nTo stop the containers, type:\n\n```\nsudo docker compose stop\n```\n\n## 8. Done\n\nYou can now reach n8n using the subdomain + domain combination you defined in your `.env` file configuration. The above example would result in `https://n8n.example.com`.\n\nn8n is only accessible using secure HTTPS, not over plain HTTP.\n\nIf you have trouble reaching your instance, check your server's firewall settings and your DNS configuration.\n\n## Next steps\n\n- Learn more about [configuring](../../../configuration/environment-variables/) and [scaling](../../../scaling/overview/) n8n.\n- Or explore using n8n: try the [Quickstarts](../../../../try-it-out/).\n",
|
|
17575
|
+
"excerpt": "# Docker-Compose These instructions cover how to run n8n on a Linux server using Docker Compose. If you have already installed Docker and Docker-Compose, then you can start with [step 3](#3-dns-setup). You can find Docker Compose configurations for various architectures in the [n8n-hosting repository](https://github.com/n8n-io/n8n-hosting). Self-hosting knowledge prerequisites Self-hosting n8n requires technical knowledge, including: - Setting up and configuring servers and containers - Ma...",
|
|
17576
|
+
"sections": [
|
|
17577
|
+
{
|
|
17578
|
+
"title": "Docker-Compose",
|
|
17579
|
+
"level": 1,
|
|
17580
|
+
"content": "These instructions cover how to run n8n on a Linux server using Docker Compose.\n\nIf you have already installed Docker and Docker-Compose, then you can start with [step 3](#3-dns-setup).\n\nYou can find Docker Compose configurations for various architectures in the [n8n-hosting repository](https://github.com/n8n-io/n8n-hosting).\n\nSelf-hosting knowledge prerequisites\n\nSelf-hosting n8n requires technical knowledge, including:\n\n- Setting up and configuring servers and containers\n- Managing application resources and scaling\n- Securing servers and applications\n- Configuring n8n\n\nn8n recommends self-hosting for expert users. Mistakes can lead to data loss, security issues, and downtime. If you aren't experienced at managing servers, n8n recommends [n8n Cloud](https://n8n.io/cloud/).\n\nStable and Beta versions\n\nn8n releases a new minor version most weeks. The `stable` version is for production use. `beta` is the most recent release. The `beta` version may be unstable. To report issues, use the [f"
|
|
17581
|
+
},
|
|
17582
|
+
{
|
|
17583
|
+
"title": "Register the `docker` group membership with current session without changing your primary group",
|
|
17584
|
+
"level": 1,
|
|
17585
|
+
"content": "exec sg docker newgrp\n```\n\nTo grant access to a different user, type the following, substituting `<USER_TO_RUN_DOCKER>` with the appropriate username:\n\n```\nsudo usermod -aG docker <USER_TO_RUN_DOCKER>\n```\n\nYou will need to run `exec sg docker newgrp` from any of that user's existing sessions for it to access the new group permissions.\n\nYou can verify that your current session recognizes the `docker` group by typing:\n\n```\ngroups\n```"
|
|
17586
|
+
},
|
|
17587
|
+
{
|
|
17588
|
+
"title": "DOMAIN_NAME and SUBDOMAIN together determine where n8n will be reachable from",
|
|
17589
|
+
"level": 1,
|
|
17590
|
+
"content": ""
|
|
17591
|
+
},
|
|
17592
|
+
{
|
|
17593
|
+
"title": "The top level domain to serve from",
|
|
17594
|
+
"level": 1,
|
|
17595
|
+
"content": "DOMAIN_NAME=example.com"
|
|
17596
|
+
},
|
|
17597
|
+
{
|
|
17598
|
+
"title": "The subdomain to serve from",
|
|
17599
|
+
"level": 1,
|
|
17600
|
+
"content": "SUBDOMAIN=n8n"
|
|
17601
|
+
},
|
|
17602
|
+
{
|
|
17603
|
+
"title": "The above example serve n8n at: https://n8n.example.com",
|
|
17604
|
+
"level": 1,
|
|
17605
|
+
"content": ""
|
|
17606
|
+
},
|
|
17607
|
+
{
|
|
17608
|
+
"title": "Optional timezone to set which gets used by Cron and other scheduling nodes",
|
|
17609
|
+
"level": 1,
|
|
17610
|
+
"content": ""
|
|
17611
|
+
},
|
|
17612
|
+
{
|
|
17613
|
+
"title": "New York is the default value if not set",
|
|
17614
|
+
"level": 1,
|
|
17615
|
+
"content": "GENERIC_TIMEZONE=Europe/Berlin"
|
|
17616
|
+
},
|
|
17617
|
+
{
|
|
17618
|
+
"title": "The email address to use for the TLS/SSL certificate creation",
|
|
17619
|
+
"level": 1,
|
|
17620
|
+
"content": "SSL_EMAIL=user@example.com\n```"
|
|
17621
|
+
}
|
|
17622
|
+
]
|
|
17623
|
+
},
|
|
17624
|
+
"metadata": {
|
|
17625
|
+
"keywords": [
|
|
17626
|
+
"docker",
|
|
17627
|
+
"compose",
|
|
17628
|
+
"install",
|
|
17629
|
+
"optional:",
|
|
17630
|
+
"root",
|
|
17631
|
+
"user",
|
|
17632
|
+
"access",
|
|
17633
|
+
"register",
|
|
17634
|
+
"`docker`",
|
|
17635
|
+
"group",
|
|
17636
|
+
"membership",
|
|
17637
|
+
"with",
|
|
17638
|
+
"current",
|
|
17639
|
+
"session",
|
|
17640
|
+
"without",
|
|
17641
|
+
"changing",
|
|
17642
|
+
"your",
|
|
17643
|
+
"primary",
|
|
17644
|
+
"setup",
|
|
17645
|
+
"create",
|
|
17646
|
+
"env`",
|
|
17647
|
+
"file",
|
|
17648
|
+
"domain",
|
|
17649
|
+
"name",
|
|
17650
|
+
"subdomain",
|
|
17651
|
+
"together",
|
|
17652
|
+
"determine",
|
|
17653
|
+
"where",
|
|
17654
|
+
"will",
|
|
17655
|
+
"reachable",
|
|
17656
|
+
"from",
|
|
17657
|
+
"level",
|
|
17658
|
+
"serve",
|
|
17659
|
+
"above",
|
|
17660
|
+
"example",
|
|
17661
|
+
"https://n8n",
|
|
17662
|
+
"optional",
|
|
17663
|
+
"timezone",
|
|
17664
|
+
"which",
|
|
17665
|
+
"gets",
|
|
17666
|
+
"used",
|
|
17667
|
+
"cron",
|
|
17668
|
+
"other",
|
|
17669
|
+
"scheduling",
|
|
17670
|
+
"nodes",
|
|
17671
|
+
"york",
|
|
17672
|
+
"default",
|
|
17673
|
+
"value",
|
|
17674
|
+
"email",
|
|
17675
|
+
"address",
|
|
17676
|
+
"tls/ssl",
|
|
17677
|
+
"certificate",
|
|
17678
|
+
"creation",
|
|
17679
|
+
"local",
|
|
17680
|
+
"files",
|
|
17681
|
+
"directory",
|
|
17682
|
+
"start",
|
|
17683
|
+
"done",
|
|
17684
|
+
"next",
|
|
17685
|
+
"steps"
|
|
17686
|
+
],
|
|
17687
|
+
"useCases": [],
|
|
17688
|
+
"operations": [],
|
|
17689
|
+
"codeExamples": 9,
|
|
17690
|
+
"complexity": "intermediate",
|
|
17691
|
+
"readingTime": "5 min",
|
|
17692
|
+
"contentLength": 8701,
|
|
17693
|
+
"relatedPages": []
|
|
17694
|
+
},
|
|
17695
|
+
"searchIndex": {
|
|
17696
|
+
"fullText": "docker compose # docker-compose\n\nthese instructions cover how to run n8n on a linux server using docker compose.\n\nif you have already installed docker and docker-compose, then you can start with [step 3](#3-dns-setup).\n\nyou can find docker compose configurations for various architectures in the [n8n-hosting repository](https://github.com/n8n-io/n8n-hosting).\n\nself-hosting knowledge prerequisites\n\nself-hosting n8n requires technical knowledge, including:\n\n- setting up and configuring servers and containers\n- managing application resources and scaling\n- securing servers and applications\n- configuring n8n\n\nn8n recommends self-hosting for expert users. mistakes can lead to data loss, security issues, and downtime. if you aren't experienced at managing servers, n8n recommends [n8n cloud](https://n8n.io/cloud/).\n\nstable and beta versions\n\nn8n releases a new minor version most weeks. the `stable` version is for production use. `beta` is the most recent release. the `beta` version may be unstable. to report issues, use the [forum](https://community.n8n.io/c/questions/12).\n\ncurrent `stable`: 2.15.0 current `beta`: 2.16.0\n\n## 1. install docker and docker compose\n\nthe way that you install docker and docker compose depends on your linux distribution. you can find specific instructions for each component in the links below:\n\n- [docker engine](https://docs.docker.com/engine/install/)\n- [docker compose](https://docs.docker.com/compose/install/linux/)\n\nafter following the installation instructions, verify that docker and docker compose are available by typing:\n\n```\ndocker --version\ndocker compose version\n```\n\n## 2. optional: non-root user access\n\nyou can optionally grant access to run docker without the `sudo` command.\n\nto grant access to the user that you're currently logged in with (assuming they have `sudo` access), run:\n\n```\nsudo usermod -ag docker ${user}\n# register the `docker` group membership with current session without changing your primary group\nexec sg docker newgrp\n```\n\nto grant access to a different user, type the following, substituting `<user_to_run_docker>` with the appropriate username:\n\n```\nsudo usermod -ag docker <user_to_run_docker>\n```\n\nyou will need to run `exec sg docker newgrp` from any of that user's existing sessions for it to access the new group permissions.\n\nyou can verify that your current session recognizes the `docker` group by typing:\n\n```\ngroups\n```\n\n## 3. dns setup\n\nto host n8n online or on a network, create a dedicated subdomain pointed at your server.\n\nadd an a record to route the subdomain accordingly:\n\n| record type | name | destination |\n| ----------- | --------------------------------- | -------------------------- |\n| a | `n8n` (or your desired subdomain) | `<your_server_ip_address>` |\n\n## 4. create an `.env` file\n\ncreate a project directory to store your n8n environment configuration and docker compose files and navigate inside:\n\n```\nmkdir n8n-compose\ncd n8n-compose\n```\n\ninside the `n8n-compose` directory, create an `.env` file to customize your n8n instance's details. change it to match your own information:\n\n```\n# domain_name and subdomain together determine where n8n will be reachable from\n# the top level domain to serve from\ndomain_name=example.com\n\n# the subdomain to serve from\nsubdomain=n8n\n\n# the above example serve n8n at: https://n8n.example.com\n\n# optional timezone to set which gets used by cron and other scheduling nodes\n# new york is the default value if not set\ngeneric_timezone=europe/berlin\n\n# the email address to use for the tls/ssl certificate creation\nssl_email=user@example.com\n```\n\n## 5. create local files directory\n\ninside your project directory, create a directory called `local-files` for sharing files between the n8n instance and the host system (for example, using the [read/write files from disk node](../../../../integrations/builtin/core-nodes/n8n-nodes-base.readwritefile/)):\n\n```\nmkdir local-files\n```\n\nthe docker compose file below can automatically create this directory, but doing it manually ensures that it's created with the right ownership and permissions.\n\n## 6. create docker compose file\n\ncreate a `compose.yaml` file. paste the following in the file:\n\n```\nservices:\n traefik:\n image: \"traefik\"\n restart: always\n command:\n - \"--api.insecure=true\"\n - \"--providers.docker=true\"\n - \"--providers.docker.exposedbydefault=false\"\n - \"--entrypoints.web.address=:80\"\n - \"--entrypoints.web.http.redirections.entrypoint.to=websecure\"\n - \"--entrypoints.web.http.redirections.entrypoint.scheme=https\"\n - \"--entrypoints.websecure.address=:443\"\n - \"--certificatesresolvers.mytlschallenge.acme.tlschallenge=true\"\n - \"--certificatesresolvers.mytlschallenge.acme.email=${ssl_email}\"\n - \"--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json\"\n ports:\n - \"80:80\"\n - \"443:443\"\n volumes:\n - traefik_data:/letsencrypt\n - /var/run/docker.sock:/var/run/docker.sock:ro\n\n n8n:\n image: docker.n8n.io/n8nio/n8n\n restart: always\n ports:\n - \"127.0.0.1:5678:5678\"\n labels:\n - traefik.enable=true\n - traefik.http.routers.n8n.rule=host(`${subdomain}.${domain_name}`)\n - traefik.http.routers.n8n.tls=true\n - traefik.http.routers.n8n.entrypoints=web,websecure\n - traefik.http.routers.n8n.tls.certresolver=mytlschallenge\n - traefik.http.middlewares.n8n.headers.sslredirect=true\n - traefik.http.middlewares.n8n.headers.stsseconds=315360000\n - traefik.http.middlewares.n8n.headers.browserxssfilter=true\n - traefik.http.middlewares.n8n.headers.contenttypenosniff=true\n - traefik.http.middlewares.n8n.headers.forcestsheader=true\n - traefik.http.middlewares.n8n.headers.sslhost=${domain_name}\n - traefik.http.middlewares.n8n.headers.stsincludesubdomains=true\n - traefik.http.middlewares.n8n.headers.stspreload=true\n - traefik.http.routers.n8n.middlewares=n8n@docker\n environment:\n - n8n_enforce_settings_file_permissions=true\n - n8n_host=${subdomain}.${domain_name}\n - n8n_port=5678\n - n8n_protocol=https \n - node_env=production\n - webhook_url=https://${subdomain}.${domain_name}/\n - generic_timezone=${generic_timezone}\n - tz=${generic_timezone}\n volumes:\n - n8n_data:/home/node/.n8n\n - ./local-files:/files\n\nvolumes:\n n8n_data:\n traefik_data:\n```\n\nthe docker compose file above configures two containers: one for n8n, and one to run [traefik](https://github.com/traefik/traefik), an application proxy to manage tls/ssl certificates and handle routing.\n\nit also creates and mounts two [docker volumes](https://docs.docker.com/engine/storage/volumes/) and mounts the `local-files` directory you created earlier:\n\n| name | type | container mount | description |\n| --------------- | ----------------------------------------------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| `n8n_data` | [volume](https://docs.docker.com/engine/storage/volumes/) | `/home/node/.n8n` | where n8n saves its sqlite database file and encryption key. |\n| `traefik_data` | [volume](https://docs.docker.com/engine/storage/volumes/) | `/letsencrypt` | where traefik saves tls/ssl certificate data. |\n| `./local-files` | [bind](https://docs.docker.com/engine/storage/bind-mounts/) | `/files` | a local directory shared between the n8n instance and host. in n8n, use the `/files` path to read from and write to this directory. |\n\n## 7. start docker compose\n\nstart n8n by typing:\n\n```\nsudo docker compose up -d\n```\n\nto stop the containers, type:\n\n```\nsudo docker compose stop\n```\n\n## 8. done\n\nyou can now reach n8n using the subdomain + domain combination you defined in your `.env` file configuration. the above example would result in `https://n8n.example.com`.\n\nn8n is only accessible using secure https, not over plain http.\n\nif you have trouble reaching your instance, check your server's firewall settings and your dns configuration.\n\n## next steps\n\n- learn more about [configuring](../../../configuration/environment-variables/) and [scaling](../../../scaling/overview/) n8n.\n- or explore using n8n: try the [quickstarts](../../../../try-it-out/).\n docker-compose register the `docker` group membership with current session without changing your primary group domain_name and subdomain together determine where n8n will be reachable from the top level domain to serve from the subdomain to serve from the above example serve n8n at: https://n8n.example.com optional timezone to set which gets used by cron and other scheduling nodes new york is the default value if not set the email address to use for the tls/ssl certificate creation",
|
|
17697
|
+
"importantTerms": [
|
|
17698
|
+
"docker",
|
|
17699
|
+
"compose",
|
|
17700
|
+
"traefik",
|
|
17701
|
+
"https",
|
|
17702
|
+
"http",
|
|
17703
|
+
"your",
|
|
17704
|
+
"subdomain",
|
|
17705
|
+
"files",
|
|
17706
|
+
"true",
|
|
17707
|
+
"from",
|
|
17708
|
+
"create",
|
|
17709
|
+
"file",
|
|
17710
|
+
"directory",
|
|
17711
|
+
"example",
|
|
17712
|
+
"middlewares",
|
|
17713
|
+
"headers",
|
|
17714
|
+
"local",
|
|
17715
|
+
"volumes",
|
|
17716
|
+
"with",
|
|
17717
|
+
"that",
|
|
17718
|
+
"engine",
|
|
17719
|
+
"docs",
|
|
17720
|
+
"user",
|
|
17721
|
+
"access",
|
|
17722
|
+
"sudo",
|
|
17723
|
+
"group",
|
|
17724
|
+
"serve",
|
|
17725
|
+
"using",
|
|
17726
|
+
"hosting",
|
|
17727
|
+
"version",
|
|
17728
|
+
"current",
|
|
17729
|
+
"entrypoints",
|
|
17730
|
+
"storage",
|
|
17731
|
+
"routers",
|
|
17732
|
+
"beta",
|
|
17733
|
+
"install",
|
|
17734
|
+
"type",
|
|
17735
|
+
"host",
|
|
17736
|
+
"configuration",
|
|
17737
|
+
"instance",
|
|
17738
|
+
"where",
|
|
17739
|
+
"above",
|
|
17740
|
+
"nodes",
|
|
17741
|
+
"address",
|
|
17742
|
+
"mytlschallenge",
|
|
17743
|
+
"acme",
|
|
17744
|
+
"instructions",
|
|
17745
|
+
"linux",
|
|
17746
|
+
"server",
|
|
17747
|
+
"have"
|
|
17748
|
+
]
|
|
17749
|
+
}
|
|
17750
|
+
},
|
|
17633
17751
|
{
|
|
17634
17752
|
"id": "page-0208",
|
|
17635
17753
|
"title": "OpenShift CRC",
|
|
@@ -32322,27 +32440,27 @@
|
|
|
32322
32440
|
},
|
|
32323
32441
|
{
|
|
32324
32442
|
"id": "page-0416",
|
|
32325
|
-
"title": "
|
|
32326
|
-
"url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.
|
|
32327
|
-
"urlPath": "integrations/builtin/app-nodes/n8n-nodes-base.
|
|
32443
|
+
"title": "ProfitWell",
|
|
32444
|
+
"url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.profitwell/index.md",
|
|
32445
|
+
"urlPath": "integrations/builtin/app-nodes/n8n-nodes-base.profitwell/index.md",
|
|
32328
32446
|
"category": "integrations",
|
|
32329
32447
|
"subcategory": "app-nodes",
|
|
32330
|
-
"nodeName": "
|
|
32331
|
-
"nodeType": "n8n-nodes-base.
|
|
32448
|
+
"nodeName": "profitwell",
|
|
32449
|
+
"nodeType": "n8n-nodes-base.profitwell",
|
|
32332
32450
|
"content": {
|
|
32333
|
-
"markdown": "#
|
|
32334
|
-
"excerpt": "#
|
|
32451
|
+
"markdown": "# ProfitWell node\n\nUse the ProfitWell node to automate work in ProfitWell, and integrate ProfitWell with other applications. n8n supports getting your company's account settings and retrieving financial metrics from ProfitWell.\n\nOn this page, you'll find a list of operations the ProfitWell node supports and links to more resources.\n\nCredentials\n\nRefer to [ProfitWell credentials](../../credentials/profitwell/) for guidance on setting up authentication.\n\n## Operations\n\n- Company\n - Get your company's ProfitWell account settings\n- Metric\n - Retrieve financial metric broken down by day for either the current month or the last\n\n## Templates and examples\n\n[Browse ProfitWell integration templates](https://n8n.io/integrations/profitwell/), or [search all templates](https://n8n.io/workflows/)\n",
|
|
32452
|
+
"excerpt": "# ProfitWell node Use the ProfitWell node to automate work in ProfitWell, and integrate ProfitWell with other applications. n8n supports getting your company's account settings and retrieving financial metrics from ProfitWell. On this page, you'll find a list of operations the ProfitWell node supports and links to more resources. Credentials Refer to [ProfitWell credentials](../../credentials/profitwell/) for guidance on setting up authentication. ## Operations - Company - Get your compa...",
|
|
32335
32453
|
"sections": [
|
|
32336
32454
|
{
|
|
32337
|
-
"title": "
|
|
32455
|
+
"title": "ProfitWell node",
|
|
32338
32456
|
"level": 1,
|
|
32339
|
-
"content": "Use the
|
|
32457
|
+
"content": "Use the ProfitWell node to automate work in ProfitWell, and integrate ProfitWell with other applications. n8n supports getting your company's account settings and retrieving financial metrics from ProfitWell.\n\nOn this page, you'll find a list of operations the ProfitWell node supports and links to more resources.\n\nCredentials\n\nRefer to [ProfitWell credentials](../../credentials/profitwell/) for guidance on setting up authentication."
|
|
32340
32458
|
}
|
|
32341
32459
|
]
|
|
32342
32460
|
},
|
|
32343
32461
|
"metadata": {
|
|
32344
32462
|
"keywords": [
|
|
32345
|
-
"
|
|
32463
|
+
"profitwell",
|
|
32346
32464
|
"node",
|
|
32347
32465
|
"operations",
|
|
32348
32466
|
"templates",
|
|
@@ -32355,44 +32473,43 @@
|
|
|
32355
32473
|
"codeExamples": 0,
|
|
32356
32474
|
"complexity": "beginner",
|
|
32357
32475
|
"readingTime": "1 min",
|
|
32358
|
-
"contentLength":
|
|
32476
|
+
"contentLength": 797,
|
|
32359
32477
|
"relatedPages": []
|
|
32360
32478
|
},
|
|
32361
32479
|
"searchIndex": {
|
|
32362
|
-
"fullText": "
|
|
32480
|
+
"fullText": "profitwell # profitwell node\n\nuse the profitwell node to automate work in profitwell, and integrate profitwell with other applications. n8n supports getting your company's account settings and retrieving financial metrics from profitwell.\n\non this page, you'll find a list of operations the profitwell node supports and links to more resources.\n\ncredentials\n\nrefer to [profitwell credentials](../../credentials/profitwell/) for guidance on setting up authentication.\n\n## operations\n\n- company\n - get your company's profitwell account settings\n- metric\n - retrieve financial metric broken down by day for either the current month or the last\n\n## templates and examples\n\n[browse profitwell integration templates](https://n8n.io/integrations/profitwell/), or [search all templates](https://n8n.io/workflows/)\n profitwell node",
|
|
32363
32481
|
"importantTerms": [
|
|
32364
|
-
"
|
|
32482
|
+
"profitwell",
|
|
32365
32483
|
"node",
|
|
32484
|
+
"company",
|
|
32366
32485
|
"credentials",
|
|
32367
|
-
"create",
|
|
32368
|
-
"track",
|
|
32369
32486
|
"templates"
|
|
32370
32487
|
]
|
|
32371
32488
|
}
|
|
32372
32489
|
},
|
|
32373
32490
|
{
|
|
32374
32491
|
"id": "page-0417",
|
|
32375
|
-
"title": "
|
|
32376
|
-
"url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.
|
|
32377
|
-
"urlPath": "integrations/builtin/app-nodes/n8n-nodes-base.
|
|
32492
|
+
"title": "PostHog",
|
|
32493
|
+
"url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.posthog/index.md",
|
|
32494
|
+
"urlPath": "integrations/builtin/app-nodes/n8n-nodes-base.posthog/index.md",
|
|
32378
32495
|
"category": "integrations",
|
|
32379
32496
|
"subcategory": "app-nodes",
|
|
32380
|
-
"nodeName": "
|
|
32381
|
-
"nodeType": "n8n-nodes-base.
|
|
32497
|
+
"nodeName": "posthog",
|
|
32498
|
+
"nodeType": "n8n-nodes-base.posthog",
|
|
32382
32499
|
"content": {
|
|
32383
|
-
"markdown": "#
|
|
32384
|
-
"excerpt": "#
|
|
32500
|
+
"markdown": "# PostHog node\n\nUse the PostHog node to automate work in PostHog, and integrate PostHog with other applications. n8n has built-in support for a wide range of PostHog features, including creating aliases, events, and identity, as well as tracking pages.\n\nOn this page, you'll find a list of operations the PostHog node supports and links to more resources.\n\nCredentials\n\nRefer to [PostHog credentials](../../credentials/posthog/) for guidance on setting up authentication.\n\n## Operations\n\n- Alias\n - Create an alias\n- Event\n - Create an event\n- Identity\n - Create\n- Track\n - Track a page\n - Track a screen\n\n## Templates and examples\n\n[Browse PostHog integration templates](https://n8n.io/integrations/posthog/), or [search all templates](https://n8n.io/workflows/)\n",
|
|
32501
|
+
"excerpt": "# PostHog node Use the PostHog node to automate work in PostHog, and integrate PostHog with other applications. n8n has built-in support for a wide range of PostHog features, including creating aliases, events, and identity, as well as tracking pages. On this page, you'll find a list of operations the PostHog node supports and links to more resources. Credentials Refer to [PostHog credentials](../../credentials/posthog/) for guidance on setting up authentication. ## Operations - Alias -...",
|
|
32385
32502
|
"sections": [
|
|
32386
32503
|
{
|
|
32387
|
-
"title": "
|
|
32504
|
+
"title": "PostHog node",
|
|
32388
32505
|
"level": 1,
|
|
32389
|
-
"content": "Use the
|
|
32506
|
+
"content": "Use the PostHog node to automate work in PostHog, and integrate PostHog with other applications. n8n has built-in support for a wide range of PostHog features, including creating aliases, events, and identity, as well as tracking pages.\n\nOn this page, you'll find a list of operations the PostHog node supports and links to more resources.\n\nCredentials\n\nRefer to [PostHog credentials](../../credentials/posthog/) for guidance on setting up authentication."
|
|
32390
32507
|
}
|
|
32391
32508
|
]
|
|
32392
32509
|
},
|
|
32393
32510
|
"metadata": {
|
|
32394
32511
|
"keywords": [
|
|
32395
|
-
"
|
|
32512
|
+
"posthog",
|
|
32396
32513
|
"node",
|
|
32397
32514
|
"operations",
|
|
32398
32515
|
"templates",
|
|
@@ -32405,16 +32522,17 @@
|
|
|
32405
32522
|
"codeExamples": 0,
|
|
32406
32523
|
"complexity": "beginner",
|
|
32407
32524
|
"readingTime": "1 min",
|
|
32408
|
-
"contentLength":
|
|
32525
|
+
"contentLength": 769,
|
|
32409
32526
|
"relatedPages": []
|
|
32410
32527
|
},
|
|
32411
32528
|
"searchIndex": {
|
|
32412
|
-
"fullText": "
|
|
32529
|
+
"fullText": "posthog # posthog node\n\nuse the posthog node to automate work in posthog, and integrate posthog with other applications. n8n has built-in support for a wide range of posthog features, including creating aliases, events, and identity, as well as tracking pages.\n\non this page, you'll find a list of operations the posthog node supports and links to more resources.\n\ncredentials\n\nrefer to [posthog credentials](../../credentials/posthog/) for guidance on setting up authentication.\n\n## operations\n\n- alias\n - create an alias\n- event\n - create an event\n- identity\n - create\n- track\n - track a page\n - track a screen\n\n## templates and examples\n\n[browse posthog integration templates](https://n8n.io/integrations/posthog/), or [search all templates](https://n8n.io/workflows/)\n posthog node",
|
|
32413
32530
|
"importantTerms": [
|
|
32414
|
-
"
|
|
32531
|
+
"posthog",
|
|
32415
32532
|
"node",
|
|
32416
|
-
"company",
|
|
32417
32533
|
"credentials",
|
|
32534
|
+
"create",
|
|
32535
|
+
"track",
|
|
32418
32536
|
"templates"
|
|
32419
32537
|
]
|
|
32420
32538
|
}
|
|
@@ -40127,7 +40245,7 @@
|
|
|
40127
40245
|
"nodeName": "supabase",
|
|
40128
40246
|
"nodeType": "n8n-nodes-base.supabase",
|
|
40129
40247
|
"content": {
|
|
40130
|
-
"markdown": "# Supabase node\n\nUse the Supabase node to automate work in Supabase, and integrate Supabase with other applications. n8n has built-in support for a wide range of Supabase features, including creating, deleting, and getting rows.\n\nOn this page, you'll find a list of operations the Supabase node supports and links to more resources.\n\nCredentials\n\nRefer to [Supabase credentials](../../credentials/supabase/) for guidance on setting up authentication.\n\nThis node can be used as an AI tool\n\nThis node can be used to enhance the capabilities of an AI agent. When used in this way, many parameters can be set automatically, or with information directed by AI - find out more in the [AI tool parameters documentation](../../../../advanced-ai/examples/using-the-fromai-function/).\n\n## Operations\n\n- Row\n - Create a new row\n - Delete a row\n - Get a row\n - Get all rows\n - Update a row\n\n## Using custom schemas\n\nBy default, the Supabase node only fetches the `public` schema. To fetch [custom schemas](https://supabase.com/docs/guides/api/using-custom-schemas), enable **Use Custom Schema**.\n\nIn the new **Schema** field, provide the custom schema the Supabase node should use.\n\n## Templates and examples\n\n**AI Agent To Chat With Files In Supabase Storage**\n\nby Mark Shcherbakov\n\n[View template details](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/)\n\n**Autonomous AI crawler**\n\nby Oskar\n\n[View template details](https://n8n.io/workflows/2315-autonomous-ai-crawler/)\n\n
|
|
40248
|
+
"markdown": "# Supabase node\n\nUse the Supabase node to automate work in Supabase, and integrate Supabase with other applications. n8n has built-in support for a wide range of Supabase features, including creating, deleting, and getting rows.\n\nOn this page, you'll find a list of operations the Supabase node supports and links to more resources.\n\nCredentials\n\nRefer to [Supabase credentials](../../credentials/supabase/) for guidance on setting up authentication.\n\nThis node can be used as an AI tool\n\nThis node can be used to enhance the capabilities of an AI agent. When used in this way, many parameters can be set automatically, or with information directed by AI - find out more in the [AI tool parameters documentation](../../../../advanced-ai/examples/using-the-fromai-function/).\n\n## Operations\n\n- Row\n - Create a new row\n - Delete a row\n - Get a row\n - Get all rows\n - Update a row\n\n## Using custom schemas\n\nBy default, the Supabase node only fetches the `public` schema. To fetch [custom schemas](https://supabase.com/docs/guides/api/using-custom-schemas), enable **Use Custom Schema**.\n\nIn the new **Schema** field, provide the custom schema the Supabase node should use.\n\n## Templates and examples\n\n**AI Agent To Chat With Files In Supabase Storage**\n\nby Mark Shcherbakov\n\n[View template details](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/)\n\n**Autonomous AI crawler**\n\nby Oskar\n\n[View template details](https://n8n.io/workflows/2315-autonomous-ai-crawler/)\n\n**Automate sales cold calling pipeline with Apify, GPT-4o, and WhatsApp**\n\nby Khairul Muhtadin\n\n[View template details](https://n8n.io/workflows/5449-automate-sales-cold-calling-pipeline-with-apify-gpt-4o-and-whatsapp/)\n\n[Browse Supabase integration templates](https://n8n.io/integrations/supabase/), or [search all templates](https://n8n.io/workflows/)\n\n## What to do if your operation isn't supported\n\nIf this node doesn't support the operation you want to do, you can use the [HTTP Request node](../../core-nodes/n8n-nodes-base.httprequest/) to call the service's API.\n\nYou can use the credential you created for this service in the HTTP Request node:\n\n1. In the HTTP Request node, select **Authentication** > **Predefined Credential Type**.\n1. Select the service you want to connect to.\n1. Select your credential.\n\nRefer to [Custom API operations](../../../custom-operations/) for more information.\n\n## Common issues\n\nFor common errors or issues and suggested resolution steps, refer to [Common issues](common-issues/).\n",
|
|
40131
40249
|
"excerpt": "# Supabase node Use the Supabase node to automate work in Supabase, and integrate Supabase with other applications. n8n has built-in support for a wide range of Supabase features, including creating, deleting, and getting rows. On this page, you'll find a list of operations the Supabase node supports and links to more resources. Credentials Refer to [Supabase credentials](../../credentials/supabase/) for guidance on setting up authentication. This node can be used as an AI tool This node c...",
|
|
40132
40250
|
"sections": [
|
|
40133
40251
|
{
|
|
@@ -40163,11 +40281,11 @@
|
|
|
40163
40281
|
"codeExamples": 0,
|
|
40164
40282
|
"complexity": "intermediate",
|
|
40165
40283
|
"readingTime": "2 min",
|
|
40166
|
-
"contentLength":
|
|
40284
|
+
"contentLength": 2522,
|
|
40167
40285
|
"relatedPages": []
|
|
40168
40286
|
},
|
|
40169
40287
|
"searchIndex": {
|
|
40170
|
-
"fullText": "supabase # supabase node\n\nuse the supabase node to automate work in supabase, and integrate supabase with other applications. n8n has built-in support for a wide range of supabase features, including creating, deleting, and getting rows.\n\non this page, you'll find a list of operations the supabase node supports and links to more resources.\n\ncredentials\n\nrefer to [supabase credentials](../../credentials/supabase/) for guidance on setting up authentication.\n\nthis node can be used as an ai tool\n\nthis node can be used to enhance the capabilities of an ai agent. when used in this way, many parameters can be set automatically, or with information directed by ai - find out more in the [ai tool parameters documentation](../../../../advanced-ai/examples/using-the-fromai-function/).\n\n## operations\n\n- row\n - create a new row\n - delete a row\n - get a row\n - get all rows\n - update a row\n\n## using custom schemas\n\nby default, the supabase node only fetches the `public` schema. to fetch [custom schemas](https://supabase.com/docs/guides/api/using-custom-schemas), enable **use custom schema**.\n\nin the new **schema** field, provide the custom schema the supabase node should use.\n\n## templates and examples\n\n**ai agent to chat with files in supabase storage**\n\nby mark shcherbakov\n\n[view template details](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/)\n\n**autonomous ai crawler**\n\nby oskar\n\n[view template details](https://n8n.io/workflows/2315-autonomous-ai-crawler/)\n\n
|
|
40288
|
+
"fullText": "supabase # supabase node\n\nuse the supabase node to automate work in supabase, and integrate supabase with other applications. n8n has built-in support for a wide range of supabase features, including creating, deleting, and getting rows.\n\non this page, you'll find a list of operations the supabase node supports and links to more resources.\n\ncredentials\n\nrefer to [supabase credentials](../../credentials/supabase/) for guidance on setting up authentication.\n\nthis node can be used as an ai tool\n\nthis node can be used to enhance the capabilities of an ai agent. when used in this way, many parameters can be set automatically, or with information directed by ai - find out more in the [ai tool parameters documentation](../../../../advanced-ai/examples/using-the-fromai-function/).\n\n## operations\n\n- row\n - create a new row\n - delete a row\n - get a row\n - get all rows\n - update a row\n\n## using custom schemas\n\nby default, the supabase node only fetches the `public` schema. to fetch [custom schemas](https://supabase.com/docs/guides/api/using-custom-schemas), enable **use custom schema**.\n\nin the new **schema** field, provide the custom schema the supabase node should use.\n\n## templates and examples\n\n**ai agent to chat with files in supabase storage**\n\nby mark shcherbakov\n\n[view template details](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/)\n\n**autonomous ai crawler**\n\nby oskar\n\n[view template details](https://n8n.io/workflows/2315-autonomous-ai-crawler/)\n\n**automate sales cold calling pipeline with apify, gpt-4o, and whatsapp**\n\nby khairul muhtadin\n\n[view template details](https://n8n.io/workflows/5449-automate-sales-cold-calling-pipeline-with-apify-gpt-4o-and-whatsapp/)\n\n[browse supabase integration templates](https://n8n.io/integrations/supabase/), or [search all templates](https://n8n.io/workflows/)\n\n## what to do if your operation isn't supported\n\nif this node doesn't support the operation you want to do, you can use the [http request node](../../core-nodes/n8n-nodes-base.httprequest/) to call the service's api.\n\nyou can use the credential you created for this service in the http request node:\n\n1. in the http request node, select **authentication** > **predefined credential type**.\n1. select the service you want to connect to.\n1. select your credential.\n\nrefer to [custom api operations](../../../custom-operations/) for more information.\n\n## common issues\n\nfor common errors or issues and suggested resolution steps, refer to [common issues](common-issues/).\n supabase node",
|
|
40171
40289
|
"importantTerms": [
|
|
40172
40290
|
"supabase",
|
|
40173
40291
|
"node",
|
|
@@ -40180,14 +40298,13 @@
|
|
|
40180
40298
|
"workflows",
|
|
40181
40299
|
"common",
|
|
40182
40300
|
"issues",
|
|
40301
|
+
"automate",
|
|
40183
40302
|
"more",
|
|
40184
40303
|
"credentials",
|
|
40185
40304
|
"refer",
|
|
40186
40305
|
"used",
|
|
40187
40306
|
"agent",
|
|
40188
|
-
"documentation",
|
|
40189
40307
|
"using",
|
|
40190
|
-
"create",
|
|
40191
40308
|
"schemas",
|
|
40192
40309
|
"templates",
|
|
40193
40310
|
"view",
|
|
@@ -43582,7 +43699,7 @@
|
|
|
43582
43699
|
"nodeName": null,
|
|
43583
43700
|
"nodeType": null,
|
|
43584
43701
|
"content": {
|
|
43585
|
-
"markdown": "# Supabase Vector Store node\n\nUse the Supabase Vector Store to interact with your Supabase database as vector store. You can insert documents into a vector database, get many documents from a vector database, and retrieve documents to provide them to a retriever connected to a chain.\n\nUse the Supabase Vector Store to interact with your Supabase database as [vector store](../../../../../glossary/#ai-vector-store). You can insert documents into a vector database, get documents from a vector database, retrieve documents to provide them to a retriever connected to a [chain](../../../../../glossary/#ai-chain), or connect it directly to an [agent](../../../../../glossary/#ai-agent) to use as a [tool](../../../../../glossary/#ai-tool). You can also update an item in a vector store by its ID.\n\nOn this page, you'll find the node parameters for the Supabase node, and links to more resources.\n\nCredentials\n\nYou can find authentication information for this node [here](../../../credentials/supabase/).\n\nParameter resolution in sub-nodes\n\nSub-nodes behave differently to other nodes when processing multiple items using an expression.\n\nMost nodes, including root nodes, take any number of items as input, process these items, and output the results. You can use expressions to refer to input items, and the node resolves the expression for each item in turn. For example, given an input of five `name` values, the expression `{{ $json.name }}` resolves to each name in turn.\n\nIn sub-nodes, the expression always resolves to the first item. For example, given an input of five `name` values, the expression `{{ $json.name }}` always resolves to the first name.\n\nSupabase provides a [quickstart for setting up your vector store](https://supabase.com/docs/guides/ai/langchain?database-method=sql). If you use settings other than the defaults in the quickstart, this may affect parameter settings in n8n. Make sure you understand what you're doing.\n\n## Node usage patterns\n\nYou can use the Supabase Vector Store node in the following patterns.\n\n### Use as a regular node to insert, update, and retrieve documents\n\nYou can use the Supabase Vector Store as a regular node to insert, update, or get documents. This pattern places the Supabase Vector Store in the regular connection flow without using an agent.\n\nYou can see an example of this in scenario 1 of [this template](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/).\n\n### Connect directly to an AI agent as a tool\n\nYou can connect the Supabase Vector Store node directly to the tool connector of an [AI agent](../n8n-nodes-langchain.agent/) to use a vector store as a resource when answering queries.\n\nHere, the connection would be: AI agent (tools connector) -> Supabase Vector Store node.\n\n### Use a retriever to fetch documents\n\nYou can use the [Vector Store Retriever](../../sub-nodes/n8n-nodes-langchain.retrievervectorstore/) node with the Supabase Vector Store node to fetch documents from the Supabase Vector Store node. This is often used with the [Question and Answer Chain](../n8n-nodes-langchain.chainretrievalqa/) node to fetch documents from the vector store that match the given chat input.\n\nAn [example of the connection flow](https://n8n.io/workflows/1960-ask-questions-about-a-pdf-using-ai/) (the example uses Pinecone, but the pattern in the same) would be: Question and Answer Chain (Retriever connector) -> Vector Store Retriever (Vector Store connector) -> Supabase Vector Store.\n\n### Use the Vector Store Question Answer Tool to answer questions\n\nAnother pattern uses the [Vector Store Question Answer Tool](../../sub-nodes/n8n-nodes-langchain.toolvectorstore/) to summarize results and answer questions from the Supabase Vector Store node. Rather than connecting the Supabase Vector Store directly as a tool, this pattern uses a tool specifically designed to summarizes data in the vector store.\n\nThe [connections flow](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/) in this case would look like this: AI agent (tools connector) -> Vector Store Question Answer Tool (Vector Store connector) -> Supabase Vector store.\n\n## Node parameters\n\n### Operation Mode\n\nThis Vector Store node has five modes: **Get Many**, **Insert Documents**, **Retrieve Documents (As Vector Store for Chain/Tool)**, **Retrieve Documents (As Tool for AI Agent)**, and **Update Documents**. The mode you select determines the operations you can perform with the node and what inputs and outputs are available.\n\n#### Get Many\n\nIn this mode, you can retrieve multiple documents from your vector database by providing a prompt. The prompt will be embedded and used for similarity search. The node will return the documents that are most similar to the prompt with their similarity score. This is useful if you want to retrieve a list of similar documents and pass them to an agent as additional context.\n\n#### Insert Documents\n\nUse Insert Documents mode to insert new documents into your vector database.\n\n#### Retrieve Documents (As Vector Store for Chain/Tool)\n\nUse Retrieve Documents (As Vector Store for Chain/Tool) mode with a vector-store retriever to retrieve documents from a vector database and provide them to the retriever connected to a chain. In this mode you must connect the node to a retriever node or root node.\n\n#### Retrieve Documents (As Tool for AI Agent)\n\nUse Retrieve Documents (As Tool for AI Agent) mode to use the vector store as a tool resource when answering queries. When formulating responses, the agent uses the vector store when the vector store name and description match the question details.\n\n#### Update Documents\n\nUse Update Documents mode to update documents in a vector database by ID. Fill in the **ID** with the ID of the embedding entry to update.\n\n### Rerank Results\n\nEnables [reranking](../../../../../glossary/#ai-reranking). If you enable this option, you must connect a reranking node to the vector store. That node will then rerank the results for queries. You can use this option with the `Get Many`, `Retrieve Documents (As Vector Store for Chain/Tool)` and `Retrieve Documents (As Tool for AI Agent)` modes.\n\n### Get Many parameters\n\n- **Table Name**: Enter the Supabase table to use.\n- **Prompt**: Enter the search query.\n- **Limit**: Enter how many results to retrieve from the vector store. For example, set this to `10` to get the ten best results.\n\n### Insert Documents parameters\n\n- **Table Name**: Enter the Supabase table to use.\n\n### Retrieve Documents (As Vector Store for Chain/Tool) parameters\n\n- **Table Name**: Enter the Supabase table to use.\n\n### Retrieve Documents (As Tool for AI Agent) parameters\n\n- **Name**: The name of the vector store.\n- **Description**: Explain to the LLM what this tool does. A good, specific description allows LLMs to produce expected results more often.\n- **Table Name**: Enter the Supabase table to use.\n- **Limit**: Enter how many results to retrieve from the vector store. For example, set this to `10` to get the ten best results.\n\n### Update Documents\n\n- **Table Name**: Enter the Supabase table to use.\n- **ID**: The ID of an embedding entry.\n\nParameters for **Update Documents**\n\n- ID\n\n## Node options\n\n### Query Name\n\nThe name of the matching function you set up in Supabase. If you follow the [Supabase quickstart](https://supabase.com/docs/guides/ai/langchain?database-method=sql), this will be `match_documents`.\n\n### Metadata Filter\n\nAvailable in **Get Many** mode. When searching for data, use this to match with metadata associated with the document.\n\nThis is an `AND` query. If you specify more than one metadata filter field, all of them must match.\n\nWhen inserting data, the metadata is set using the document loader. Refer to [Default Data Loader](../../sub-nodes/n8n-nodes-langchain.documentdefaultdataloader/) for more information on loading documents.\n\n## Templates and examples\n\n**AI Agent To Chat With Files In Supabase Storage**\n\nby Mark Shcherbakov\n\n[View template details](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/)\n\n
|
|
43702
|
+
"markdown": "# Supabase Vector Store node\n\nUse the Supabase Vector Store to interact with your Supabase database as vector store. You can insert documents into a vector database, get many documents from a vector database, and retrieve documents to provide them to a retriever connected to a chain.\n\nUse the Supabase Vector Store to interact with your Supabase database as [vector store](../../../../../glossary/#ai-vector-store). You can insert documents into a vector database, get documents from a vector database, retrieve documents to provide them to a retriever connected to a [chain](../../../../../glossary/#ai-chain), or connect it directly to an [agent](../../../../../glossary/#ai-agent) to use as a [tool](../../../../../glossary/#ai-tool). You can also update an item in a vector store by its ID.\n\nOn this page, you'll find the node parameters for the Supabase node, and links to more resources.\n\nCredentials\n\nYou can find authentication information for this node [here](../../../credentials/supabase/).\n\nParameter resolution in sub-nodes\n\nSub-nodes behave differently to other nodes when processing multiple items using an expression.\n\nMost nodes, including root nodes, take any number of items as input, process these items, and output the results. You can use expressions to refer to input items, and the node resolves the expression for each item in turn. For example, given an input of five `name` values, the expression `{{ $json.name }}` resolves to each name in turn.\n\nIn sub-nodes, the expression always resolves to the first item. For example, given an input of five `name` values, the expression `{{ $json.name }}` always resolves to the first name.\n\nSupabase provides a [quickstart for setting up your vector store](https://supabase.com/docs/guides/ai/langchain?database-method=sql). If you use settings other than the defaults in the quickstart, this may affect parameter settings in n8n. Make sure you understand what you're doing.\n\n## Node usage patterns\n\nYou can use the Supabase Vector Store node in the following patterns.\n\n### Use as a regular node to insert, update, and retrieve documents\n\nYou can use the Supabase Vector Store as a regular node to insert, update, or get documents. This pattern places the Supabase Vector Store in the regular connection flow without using an agent.\n\nYou can see an example of this in scenario 1 of [this template](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/).\n\n### Connect directly to an AI agent as a tool\n\nYou can connect the Supabase Vector Store node directly to the tool connector of an [AI agent](../n8n-nodes-langchain.agent/) to use a vector store as a resource when answering queries.\n\nHere, the connection would be: AI agent (tools connector) -> Supabase Vector Store node.\n\n### Use a retriever to fetch documents\n\nYou can use the [Vector Store Retriever](../../sub-nodes/n8n-nodes-langchain.retrievervectorstore/) node with the Supabase Vector Store node to fetch documents from the Supabase Vector Store node. This is often used with the [Question and Answer Chain](../n8n-nodes-langchain.chainretrievalqa/) node to fetch documents from the vector store that match the given chat input.\n\nAn [example of the connection flow](https://n8n.io/workflows/1960-ask-questions-about-a-pdf-using-ai/) (the example uses Pinecone, but the pattern in the same) would be: Question and Answer Chain (Retriever connector) -> Vector Store Retriever (Vector Store connector) -> Supabase Vector Store.\n\n### Use the Vector Store Question Answer Tool to answer questions\n\nAnother pattern uses the [Vector Store Question Answer Tool](../../sub-nodes/n8n-nodes-langchain.toolvectorstore/) to summarize results and answer questions from the Supabase Vector Store node. Rather than connecting the Supabase Vector Store directly as a tool, this pattern uses a tool specifically designed to summarizes data in the vector store.\n\nThe [connections flow](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/) in this case would look like this: AI agent (tools connector) -> Vector Store Question Answer Tool (Vector Store connector) -> Supabase Vector store.\n\n## Node parameters\n\n### Operation Mode\n\nThis Vector Store node has five modes: **Get Many**, **Insert Documents**, **Retrieve Documents (As Vector Store for Chain/Tool)**, **Retrieve Documents (As Tool for AI Agent)**, and **Update Documents**. The mode you select determines the operations you can perform with the node and what inputs and outputs are available.\n\n#### Get Many\n\nIn this mode, you can retrieve multiple documents from your vector database by providing a prompt. The prompt will be embedded and used for similarity search. The node will return the documents that are most similar to the prompt with their similarity score. This is useful if you want to retrieve a list of similar documents and pass them to an agent as additional context.\n\n#### Insert Documents\n\nUse Insert Documents mode to insert new documents into your vector database.\n\n#### Retrieve Documents (As Vector Store for Chain/Tool)\n\nUse Retrieve Documents (As Vector Store for Chain/Tool) mode with a vector-store retriever to retrieve documents from a vector database and provide them to the retriever connected to a chain. In this mode you must connect the node to a retriever node or root node.\n\n#### Retrieve Documents (As Tool for AI Agent)\n\nUse Retrieve Documents (As Tool for AI Agent) mode to use the vector store as a tool resource when answering queries. When formulating responses, the agent uses the vector store when the vector store name and description match the question details.\n\n#### Update Documents\n\nUse Update Documents mode to update documents in a vector database by ID. Fill in the **ID** with the ID of the embedding entry to update.\n\n### Rerank Results\n\nEnables [reranking](../../../../../glossary/#ai-reranking). If you enable this option, you must connect a reranking node to the vector store. That node will then rerank the results for queries. You can use this option with the `Get Many`, `Retrieve Documents (As Vector Store for Chain/Tool)` and `Retrieve Documents (As Tool for AI Agent)` modes.\n\n### Get Many parameters\n\n- **Table Name**: Enter the Supabase table to use.\n- **Prompt**: Enter the search query.\n- **Limit**: Enter how many results to retrieve from the vector store. For example, set this to `10` to get the ten best results.\n\n### Insert Documents parameters\n\n- **Table Name**: Enter the Supabase table to use.\n\n### Retrieve Documents (As Vector Store for Chain/Tool) parameters\n\n- **Table Name**: Enter the Supabase table to use.\n\n### Retrieve Documents (As Tool for AI Agent) parameters\n\n- **Name**: The name of the vector store.\n- **Description**: Explain to the LLM what this tool does. A good, specific description allows LLMs to produce expected results more often.\n- **Table Name**: Enter the Supabase table to use.\n- **Limit**: Enter how many results to retrieve from the vector store. For example, set this to `10` to get the ten best results.\n\n### Update Documents\n\n- **Table Name**: Enter the Supabase table to use.\n- **ID**: The ID of an embedding entry.\n\nParameters for **Update Documents**\n\n- ID\n\n## Node options\n\n### Query Name\n\nThe name of the matching function you set up in Supabase. If you follow the [Supabase quickstart](https://supabase.com/docs/guides/ai/langchain?database-method=sql), this will be `match_documents`.\n\n### Metadata Filter\n\nAvailable in **Get Many** mode. When searching for data, use this to match with metadata associated with the document.\n\nThis is an `AND` query. If you specify more than one metadata filter field, all of them must match.\n\nWhen inserting data, the metadata is set using the document loader. Refer to [Default Data Loader](../../sub-nodes/n8n-nodes-langchain.documentdefaultdataloader/) for more information on loading documents.\n\n## Templates and examples\n\n**AI Agent To Chat With Files In Supabase Storage**\n\nby Mark Shcherbakov\n\n[View template details](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/)\n\n**Automate sales cold calling pipeline with Apify, GPT-4o, and WhatsApp**\n\nby Khairul Muhtadin\n\n[View template details](https://n8n.io/workflows/5449-automate-sales-cold-calling-pipeline-with-apify-gpt-4o-and-whatsapp/)\n\n**🤖 Create a Documentation Expert Bot with RAG, Gemini, and Supabase**\n\nby Lucas Peyrin\n\n[View template details](https://n8n.io/workflows/5993-create-a-documentation-expert-bot-with-rag-gemini-and-supabase/)\n\n[Browse Supabase Vector Store integration templates](https://n8n.io/integrations/supabase-vector-store/), or [search all templates](https://n8n.io/workflows/)\n\n## Related resources\n\nRefer to [LangChain's Supabase documentation](https://js.langchain.com/docs/integrations/vectorstores/supabase/) for more information about the service.\n\nView n8n's [Advanced AI](../../../../../advanced-ai/) documentation.\n",
|
|
43586
43703
|
"excerpt": "# Supabase Vector Store node Use the Supabase Vector Store to interact with your Supabase database as vector store. You can insert documents into a vector database, get many documents from a vector database, and retrieve documents to provide them to a retriever connected to a chain. Use the Supabase Vector Store to interact with your Supabase database as [vector store](../../../../../glossary/#ai-vector-store). You can insert documents into a vector database, get documents from a vector databa...",
|
|
43587
43704
|
"sections": [
|
|
43588
43705
|
{
|
|
@@ -43641,11 +43758,11 @@
|
|
|
43641
43758
|
"codeExamples": 0,
|
|
43642
43759
|
"complexity": "intermediate",
|
|
43643
43760
|
"readingTime": "7 min",
|
|
43644
|
-
"contentLength":
|
|
43761
|
+
"contentLength": 8921,
|
|
43645
43762
|
"relatedPages": []
|
|
43646
43763
|
},
|
|
43647
43764
|
"searchIndex": {
|
|
43648
|
-
"fullText": "supabase vector store # supabase vector store node\n\nuse the supabase vector store to interact with your supabase database as vector store. you can insert documents into a vector database, get many documents from a vector database, and retrieve documents to provide them to a retriever connected to a chain.\n\nuse the supabase vector store to interact with your supabase database as [vector store](../../../../../glossary/#ai-vector-store). you can insert documents into a vector database, get documents from a vector database, retrieve documents to provide them to a retriever connected to a [chain](../../../../../glossary/#ai-chain), or connect it directly to an [agent](../../../../../glossary/#ai-agent) to use as a [tool](../../../../../glossary/#ai-tool). you can also update an item in a vector store by its id.\n\non this page, you'll find the node parameters for the supabase node, and links to more resources.\n\ncredentials\n\nyou can find authentication information for this node [here](../../../credentials/supabase/).\n\nparameter resolution in sub-nodes\n\nsub-nodes behave differently to other nodes when processing multiple items using an expression.\n\nmost nodes, including root nodes, take any number of items as input, process these items, and output the results. you can use expressions to refer to input items, and the node resolves the expression for each item in turn. for example, given an input of five `name` values, the expression `{{ $json.name }}` resolves to each name in turn.\n\nin sub-nodes, the expression always resolves to the first item. for example, given an input of five `name` values, the expression `{{ $json.name }}` always resolves to the first name.\n\nsupabase provides a [quickstart for setting up your vector store](https://supabase.com/docs/guides/ai/langchain?database-method=sql). if you use settings other than the defaults in the quickstart, this may affect parameter settings in n8n. make sure you understand what you're doing.\n\n## node usage patterns\n\nyou can use the supabase vector store node in the following patterns.\n\n### use as a regular node to insert, update, and retrieve documents\n\nyou can use the supabase vector store as a regular node to insert, update, or get documents. this pattern places the supabase vector store in the regular connection flow without using an agent.\n\nyou can see an example of this in scenario 1 of [this template](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/).\n\n### connect directly to an ai agent as a tool\n\nyou can connect the supabase vector store node directly to the tool connector of an [ai agent](../n8n-nodes-langchain.agent/) to use a vector store as a resource when answering queries.\n\nhere, the connection would be: ai agent (tools connector) -> supabase vector store node.\n\n### use a retriever to fetch documents\n\nyou can use the [vector store retriever](../../sub-nodes/n8n-nodes-langchain.retrievervectorstore/) node with the supabase vector store node to fetch documents from the supabase vector store node. this is often used with the [question and answer chain](../n8n-nodes-langchain.chainretrievalqa/) node to fetch documents from the vector store that match the given chat input.\n\nan [example of the connection flow](https://n8n.io/workflows/1960-ask-questions-about-a-pdf-using-ai/) (the example uses pinecone, but the pattern in the same) would be: question and answer chain (retriever connector) -> vector store retriever (vector store connector) -> supabase vector store.\n\n### use the vector store question answer tool to answer questions\n\nanother pattern uses the [vector store question answer tool](../../sub-nodes/n8n-nodes-langchain.toolvectorstore/) to summarize results and answer questions from the supabase vector store node. rather than connecting the supabase vector store directly as a tool, this pattern uses a tool specifically designed to summarizes data in the vector store.\n\nthe [connections flow](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/) in this case would look like this: ai agent (tools connector) -> vector store question answer tool (vector store connector) -> supabase vector store.\n\n## node parameters\n\n### operation mode\n\nthis vector store node has five modes: **get many**, **insert documents**, **retrieve documents (as vector store for chain/tool)**, **retrieve documents (as tool for ai agent)**, and **update documents**. the mode you select determines the operations you can perform with the node and what inputs and outputs are available.\n\n#### get many\n\nin this mode, you can retrieve multiple documents from your vector database by providing a prompt. the prompt will be embedded and used for similarity search. the node will return the documents that are most similar to the prompt with their similarity score. this is useful if you want to retrieve a list of similar documents and pass them to an agent as additional context.\n\n#### insert documents\n\nuse insert documents mode to insert new documents into your vector database.\n\n#### retrieve documents (as vector store for chain/tool)\n\nuse retrieve documents (as vector store for chain/tool) mode with a vector-store retriever to retrieve documents from a vector database and provide them to the retriever connected to a chain. in this mode you must connect the node to a retriever node or root node.\n\n#### retrieve documents (as tool for ai agent)\n\nuse retrieve documents (as tool for ai agent) mode to use the vector store as a tool resource when answering queries. when formulating responses, the agent uses the vector store when the vector store name and description match the question details.\n\n#### update documents\n\nuse update documents mode to update documents in a vector database by id. fill in the **id** with the id of the embedding entry to update.\n\n### rerank results\n\nenables [reranking](../../../../../glossary/#ai-reranking). if you enable this option, you must connect a reranking node to the vector store. that node will then rerank the results for queries. you can use this option with the `get many`, `retrieve documents (as vector store for chain/tool)` and `retrieve documents (as tool for ai agent)` modes.\n\n### get many parameters\n\n- **table name**: enter the supabase table to use.\n- **prompt**: enter the search query.\n- **limit**: enter how many results to retrieve from the vector store. for example, set this to `10` to get the ten best results.\n\n### insert documents parameters\n\n- **table name**: enter the supabase table to use.\n\n### retrieve documents (as vector store for chain/tool) parameters\n\n- **table name**: enter the supabase table to use.\n\n### retrieve documents (as tool for ai agent) parameters\n\n- **name**: the name of the vector store.\n- **description**: explain to the llm what this tool does. a good, specific description allows llms to produce expected results more often.\n- **table name**: enter the supabase table to use.\n- **limit**: enter how many results to retrieve from the vector store. for example, set this to `10` to get the ten best results.\n\n### update documents\n\n- **table name**: enter the supabase table to use.\n- **id**: the id of an embedding entry.\n\nparameters for **update documents**\n\n- id\n\n## node options\n\n### query name\n\nthe name of the matching function you set up in supabase. if you follow the [supabase quickstart](https://supabase.com/docs/guides/ai/langchain?database-method=sql), this will be `match_documents`.\n\n### metadata filter\n\navailable in **get many** mode. when searching for data, use this to match with metadata associated with the document.\n\nthis is an `and` query. if you specify more than one metadata filter field, all of them must match.\n\nwhen inserting data, the metadata is set using the document loader. refer to [default data loader](../../sub-nodes/n8n-nodes-langchain.documentdefaultdataloader/) for more information on loading documents.\n\n## templates and examples\n\n**ai agent to chat with files in supabase storage**\n\nby mark shcherbakov\n\n[view template details](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/)\n\n
|
|
43765
|
+
"fullText": "supabase vector store # supabase vector store node\n\nuse the supabase vector store to interact with your supabase database as vector store. you can insert documents into a vector database, get many documents from a vector database, and retrieve documents to provide them to a retriever connected to a chain.\n\nuse the supabase vector store to interact with your supabase database as [vector store](../../../../../glossary/#ai-vector-store). you can insert documents into a vector database, get documents from a vector database, retrieve documents to provide them to a retriever connected to a [chain](../../../../../glossary/#ai-chain), or connect it directly to an [agent](../../../../../glossary/#ai-agent) to use as a [tool](../../../../../glossary/#ai-tool). you can also update an item in a vector store by its id.\n\non this page, you'll find the node parameters for the supabase node, and links to more resources.\n\ncredentials\n\nyou can find authentication information for this node [here](../../../credentials/supabase/).\n\nparameter resolution in sub-nodes\n\nsub-nodes behave differently to other nodes when processing multiple items using an expression.\n\nmost nodes, including root nodes, take any number of items as input, process these items, and output the results. you can use expressions to refer to input items, and the node resolves the expression for each item in turn. for example, given an input of five `name` values, the expression `{{ $json.name }}` resolves to each name in turn.\n\nin sub-nodes, the expression always resolves to the first item. for example, given an input of five `name` values, the expression `{{ $json.name }}` always resolves to the first name.\n\nsupabase provides a [quickstart for setting up your vector store](https://supabase.com/docs/guides/ai/langchain?database-method=sql). if you use settings other than the defaults in the quickstart, this may affect parameter settings in n8n. make sure you understand what you're doing.\n\n## node usage patterns\n\nyou can use the supabase vector store node in the following patterns.\n\n### use as a regular node to insert, update, and retrieve documents\n\nyou can use the supabase vector store as a regular node to insert, update, or get documents. this pattern places the supabase vector store in the regular connection flow without using an agent.\n\nyou can see an example of this in scenario 1 of [this template](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/).\n\n### connect directly to an ai agent as a tool\n\nyou can connect the supabase vector store node directly to the tool connector of an [ai agent](../n8n-nodes-langchain.agent/) to use a vector store as a resource when answering queries.\n\nhere, the connection would be: ai agent (tools connector) -> supabase vector store node.\n\n### use a retriever to fetch documents\n\nyou can use the [vector store retriever](../../sub-nodes/n8n-nodes-langchain.retrievervectorstore/) node with the supabase vector store node to fetch documents from the supabase vector store node. this is often used with the [question and answer chain](../n8n-nodes-langchain.chainretrievalqa/) node to fetch documents from the vector store that match the given chat input.\n\nan [example of the connection flow](https://n8n.io/workflows/1960-ask-questions-about-a-pdf-using-ai/) (the example uses pinecone, but the pattern in the same) would be: question and answer chain (retriever connector) -> vector store retriever (vector store connector) -> supabase vector store.\n\n### use the vector store question answer tool to answer questions\n\nanother pattern uses the [vector store question answer tool](../../sub-nodes/n8n-nodes-langchain.toolvectorstore/) to summarize results and answer questions from the supabase vector store node. rather than connecting the supabase vector store directly as a tool, this pattern uses a tool specifically designed to summarizes data in the vector store.\n\nthe [connections flow](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/) in this case would look like this: ai agent (tools connector) -> vector store question answer tool (vector store connector) -> supabase vector store.\n\n## node parameters\n\n### operation mode\n\nthis vector store node has five modes: **get many**, **insert documents**, **retrieve documents (as vector store for chain/tool)**, **retrieve documents (as tool for ai agent)**, and **update documents**. the mode you select determines the operations you can perform with the node and what inputs and outputs are available.\n\n#### get many\n\nin this mode, you can retrieve multiple documents from your vector database by providing a prompt. the prompt will be embedded and used for similarity search. the node will return the documents that are most similar to the prompt with their similarity score. this is useful if you want to retrieve a list of similar documents and pass them to an agent as additional context.\n\n#### insert documents\n\nuse insert documents mode to insert new documents into your vector database.\n\n#### retrieve documents (as vector store for chain/tool)\n\nuse retrieve documents (as vector store for chain/tool) mode with a vector-store retriever to retrieve documents from a vector database and provide them to the retriever connected to a chain. in this mode you must connect the node to a retriever node or root node.\n\n#### retrieve documents (as tool for ai agent)\n\nuse retrieve documents (as tool for ai agent) mode to use the vector store as a tool resource when answering queries. when formulating responses, the agent uses the vector store when the vector store name and description match the question details.\n\n#### update documents\n\nuse update documents mode to update documents in a vector database by id. fill in the **id** with the id of the embedding entry to update.\n\n### rerank results\n\nenables [reranking](../../../../../glossary/#ai-reranking). if you enable this option, you must connect a reranking node to the vector store. that node will then rerank the results for queries. you can use this option with the `get many`, `retrieve documents (as vector store for chain/tool)` and `retrieve documents (as tool for ai agent)` modes.\n\n### get many parameters\n\n- **table name**: enter the supabase table to use.\n- **prompt**: enter the search query.\n- **limit**: enter how many results to retrieve from the vector store. for example, set this to `10` to get the ten best results.\n\n### insert documents parameters\n\n- **table name**: enter the supabase table to use.\n\n### retrieve documents (as vector store for chain/tool) parameters\n\n- **table name**: enter the supabase table to use.\n\n### retrieve documents (as tool for ai agent) parameters\n\n- **name**: the name of the vector store.\n- **description**: explain to the llm what this tool does. a good, specific description allows llms to produce expected results more often.\n- **table name**: enter the supabase table to use.\n- **limit**: enter how many results to retrieve from the vector store. for example, set this to `10` to get the ten best results.\n\n### update documents\n\n- **table name**: enter the supabase table to use.\n- **id**: the id of an embedding entry.\n\nparameters for **update documents**\n\n- id\n\n## node options\n\n### query name\n\nthe name of the matching function you set up in supabase. if you follow the [supabase quickstart](https://supabase.com/docs/guides/ai/langchain?database-method=sql), this will be `match_documents`.\n\n### metadata filter\n\navailable in **get many** mode. when searching for data, use this to match with metadata associated with the document.\n\nthis is an `and` query. if you specify more than one metadata filter field, all of them must match.\n\nwhen inserting data, the metadata is set using the document loader. refer to [default data loader](../../sub-nodes/n8n-nodes-langchain.documentdefaultdataloader/) for more information on loading documents.\n\n## templates and examples\n\n**ai agent to chat with files in supabase storage**\n\nby mark shcherbakov\n\n[view template details](https://n8n.io/workflows/2621-ai-agent-to-chat-with-files-in-supabase-storage/)\n\n**automate sales cold calling pipeline with apify, gpt-4o, and whatsapp**\n\nby khairul muhtadin\n\n[view template details](https://n8n.io/workflows/5449-automate-sales-cold-calling-pipeline-with-apify-gpt-4o-and-whatsapp/)\n\n**🤖 create a documentation expert bot with rag, gemini, and supabase**\n\nby lucas peyrin\n\n[view template details](https://n8n.io/workflows/5993-create-a-documentation-expert-bot-with-rag-gemini-and-supabase/)\n\n[browse supabase vector store integration templates](https://n8n.io/integrations/supabase-vector-store/), or [search all templates](https://n8n.io/workflows/)\n\n## related resources\n\nrefer to [langchain's supabase documentation](https://js.langchain.com/docs/integrations/vectorstores/supabase/) for more information about the service.\n\nview n8n's [advanced ai](../../../../../advanced-ai/) documentation.\n supabase vector store node",
|
|
43649
43766
|
"importantTerms": [
|
|
43650
43767
|
"vector",
|
|
43651
43768
|
"store",
|
|
@@ -43654,9 +43771,9 @@
|
|
|
43654
43771
|
"node",
|
|
43655
43772
|
"this",
|
|
43656
43773
|
"tool",
|
|
43774
|
+
"with",
|
|
43657
43775
|
"agent",
|
|
43658
43776
|
"retrieve",
|
|
43659
|
-
"with",
|
|
43660
43777
|
"name",
|
|
43661
43778
|
"nodes",
|
|
43662
43779
|
"database",
|
|
@@ -45272,7 +45389,7 @@
|
|
|
45272
45389
|
"nodeName": null,
|
|
45273
45390
|
"nodeType": null,
|
|
45274
45391
|
"content": {
|
|
45275
|
-
"markdown": "# Embeddings Cohere node\n\nUse the Embeddings Cohere node to generate [embeddings](../../../../../glossary/#ai-embedding) for a given text.\n\nOn this page, you'll find the node parameters for the Embeddings Cohere node, and links to more resources.\n\nCredentials\n\nYou can find authentication information for this node [here](../../../credentials/cohere/).\n\nParameter resolution in sub-nodes\n\nSub-nodes behave differently to other nodes when processing multiple items using an expression.\n\nMost nodes, including root nodes, take any number of items as input, process these items, and output the results. You can use expressions to refer to input items, and the node resolves the expression for each item in turn. For example, given an input of five `name` values, the expression `{{ $json.name }}` resolves to each name in turn.\n\nIn sub-nodes, the expression always resolves to the first item. For example, given an input of five `name` values, the expression `{{ $json.name }}` always resolves to the first name.\n\n## Node parameters\n\n- **Model**: Select the model to use to generate the embedding. Choose from:\n - **Embed-English-v2.0(4096 Dimensions)**\n - **Embed-English-Light-v2.0(1024 Dimensions)**\n - **Embed-Multilingual-v2.0(768 Dimensions)**\n\nLearn more about available models in [Cohere's models documentation](https://docs.cohere.com/docs/models).\n\n## Templates and examples\n\n**Automate
|
|
45392
|
+
"markdown": "# Embeddings Cohere node\n\nUse the Embeddings Cohere node to generate [embeddings](../../../../../glossary/#ai-embedding) for a given text.\n\nOn this page, you'll find the node parameters for the Embeddings Cohere node, and links to more resources.\n\nCredentials\n\nYou can find authentication information for this node [here](../../../credentials/cohere/).\n\nParameter resolution in sub-nodes\n\nSub-nodes behave differently to other nodes when processing multiple items using an expression.\n\nMost nodes, including root nodes, take any number of items as input, process these items, and output the results. You can use expressions to refer to input items, and the node resolves the expression for each item in turn. For example, given an input of five `name` values, the expression `{{ $json.name }}` resolves to each name in turn.\n\nIn sub-nodes, the expression always resolves to the first item. For example, given an input of five `name` values, the expression `{{ $json.name }}` always resolves to the first name.\n\n## Node parameters\n\n- **Model**: Select the model to use to generate the embedding. Choose from:\n - **Embed-English-v2.0(4096 Dimensions)**\n - **Embed-English-Light-v2.0(1024 Dimensions)**\n - **Embed-Multilingual-v2.0(768 Dimensions)**\n\nLearn more about available models in [Cohere's models documentation](https://docs.cohere.com/docs/models).\n\n## Templates and examples\n\n**Automate sales cold calling pipeline with Apify, GPT-4o, and WhatsApp**\n\nby Khairul Muhtadin\n\n[View template details](https://n8n.io/workflows/5449-automate-sales-cold-calling-pipeline-with-apify-gpt-4o-and-whatsapp/)\n\n**Create a Multi-Modal Telegram Support Bot with GPT-4 and Supabase RAG**\n\nby Ezema Kingsley Chibuzo\n\n[View template details](https://n8n.io/workflows/5589-create-a-multi-modal-telegram-support-bot-with-gpt-4-and-supabase-rag/)\n\n**Build a Document QA System with RAG using Milvus, Cohere, and OpenAI for Google Drive**\n\nby Aitor | 1Node\n\n[View template details](https://n8n.io/workflows/3848-build-a-document-qa-system-with-rag-using-milvus-cohere-and-openai-for-google-drive/)\n\n[Browse Embeddings Cohere integration templates](https://n8n.io/integrations/embeddings-cohere/), or [search all templates](https://n8n.io/workflows/)\n\n## Related resources\n\nRefer to [Langchain's Cohere embeddings documentation](https://js.langchain.com/docs/integrations/text_embedding/cohere/) for more information about the service.\n\nView n8n's [Advanced AI](../../../../../advanced-ai/) documentation.\n",
|
|
45276
45393
|
"excerpt": "# Embeddings Cohere node Use the Embeddings Cohere node to generate [embeddings](../../../../../glossary/#ai-embedding) for a given text. On this page, you'll find the node parameters for the Embeddings Cohere node, and links to more resources. Credentials You can find authentication information for this node [here](../../../credentials/cohere/). Parameter resolution in sub-nodes Sub-nodes behave differently to other nodes when processing multiple items using an expression. Most nodes, in...",
|
|
45277
45394
|
"sections": [
|
|
45278
45395
|
{
|
|
@@ -46125,7 +46242,7 @@
|
|
|
46125
46242
|
"nodeName": null,
|
|
46126
46243
|
"nodeType": null,
|
|
46127
46244
|
"content": {
|
|
46128
|
-
"markdown": "# Cohere Chat Model node\n\nUse the Cohere Chat Model node to access Cohere's large language models for conversational AI and text generation tasks.\n\nOn this page, you'll find the node parameters for the Cohere Chat Model node, and links to more resources.\n\nCredentials\n\nYou can find authentication information for this node [here](../../../credentials/cohere/).\n\nParameter resolution in sub-nodes\n\nSub-nodes behave differently to other nodes when processing multiple items using an expression.\n\nMost nodes, including root nodes, take any number of items as input, process these items, and output the results. You can use expressions to refer to input items, and the node resolves the expression for each item in turn. For example, given an input of five `name` values, the expression `{{ $json.name }}` resolves to each name in turn.\n\nIn sub-nodes, the expression always resolves to the first item. For example, given an input of five `name` values, the expression `{{ $json.name }}` always resolves to the first name.\n\n## Node parameters\n\n- **Model**: Select the model which will generate the completion. n8n dynamically loads available models from the Cohere API. Learn more in the [Cohere model documentation](https://docs.cohere.com/v2/docs/models#command).\n\n## Node options\n\n- **Sampling Temperature**: Use this option to control the randomness of the sampling process. A higher temperature creates more diverse sampling, but increases the risk of hallucinations.\n- **Max Retries**: Enter the maximum number of times to retry a request.\n\n## Templates and examples\n\n**Automate
|
|
46245
|
+
"markdown": "# Cohere Chat Model node\n\nUse the Cohere Chat Model node to access Cohere's large language models for conversational AI and text generation tasks.\n\nOn this page, you'll find the node parameters for the Cohere Chat Model node, and links to more resources.\n\nCredentials\n\nYou can find authentication information for this node [here](../../../credentials/cohere/).\n\nParameter resolution in sub-nodes\n\nSub-nodes behave differently to other nodes when processing multiple items using an expression.\n\nMost nodes, including root nodes, take any number of items as input, process these items, and output the results. You can use expressions to refer to input items, and the node resolves the expression for each item in turn. For example, given an input of five `name` values, the expression `{{ $json.name }}` resolves to each name in turn.\n\nIn sub-nodes, the expression always resolves to the first item. For example, given an input of five `name` values, the expression `{{ $json.name }}` always resolves to the first name.\n\n## Node parameters\n\n- **Model**: Select the model which will generate the completion. n8n dynamically loads available models from the Cohere API. Learn more in the [Cohere model documentation](https://docs.cohere.com/v2/docs/models#command).\n\n## Node options\n\n- **Sampling Temperature**: Use this option to control the randomness of the sampling process. A higher temperature creates more diverse sampling, but increases the risk of hallucinations.\n- **Max Retries**: Enter the maximum number of times to retry a request.\n\n## Templates and examples\n\n**Automate sales cold calling pipeline with Apify, GPT-4o, and WhatsApp**\n\nby Khairul Muhtadin\n\n[View template details](https://n8n.io/workflows/5449-automate-sales-cold-calling-pipeline-with-apify-gpt-4o-and-whatsapp/)\n\n**Create a Multi-Modal Telegram Support Bot with GPT-4 and Supabase RAG**\n\nby Ezema Kingsley Chibuzo\n\n[View template details](https://n8n.io/workflows/5589-create-a-multi-modal-telegram-support-bot-with-gpt-4-and-supabase-rag/)\n\n**Build a Document QA System with RAG using Milvus, Cohere, and OpenAI for Google Drive**\n\nby Aitor | 1Node\n\n[View template details](https://n8n.io/workflows/3848-build-a-document-qa-system-with-rag-using-milvus-cohere-and-openai-for-google-drive/)\n\n[Browse Cohere Chat Model integration templates](https://n8n.io/integrations/cohere-chat-model/), or [search all templates](https://n8n.io/workflows/)\n\n## Related resources\n\nRefer to [Cohere's API documentation](https://docs.cohere.com/v2/reference/about) for more information about the service.\n\nView n8n's [Advanced AI](../../../../../advanced-ai/) documentation.\n",
|
|
46129
46246
|
"excerpt": "# Cohere Chat Model node Use the Cohere Chat Model node to access Cohere's large language models for conversational AI and text generation tasks. On this page, you'll find the node parameters for the Cohere Chat Model node, and links to more resources. Credentials You can find authentication information for this node [here](../../../credentials/cohere/). Parameter resolution in sub-nodes Sub-nodes behave differently to other nodes when processing multiple items using an expression. Most n...",
|
|
46130
46247
|
"sections": [
|
|
46131
46248
|
{
|
|
@@ -46982,7 +47099,7 @@
|
|
|
46982
47099
|
"nodeName": null,
|
|
46983
47100
|
"nodeType": null,
|
|
46984
47101
|
"content": {
|
|
46985
|
-
"markdown": "# Cohere Model node\n\nUse the Cohere Model node to use Cohere's models.\n\nOn this page, you'll find the node parameters for the Cohere Model node, and links to more resources.\n\nThis node lacks tools support, so it won't work with the [AI Agent](../../root-nodes/n8n-nodes-langchain.agent/) node. Instead, connect it with the [Basic LLM Chain](../../root-nodes/n8n-nodes-langchain.chainllm/) node.\n\nCredentials\n\nYou can find authentication information for this node [here](../../../credentials/cohere/).\n\nParameter resolution in sub-nodes\n\nSub-nodes behave differently to other nodes when processing multiple items using an expression.\n\nMost nodes, including root nodes, take any number of items as input, process these items, and output the results. You can use expressions to refer to input items, and the node resolves the expression for each item in turn. For example, given an input of five `name` values, the expression `{{ $json.name }}` resolves to each name in turn.\n\nIn sub-nodes, the expression always resolves to the first item. For example, given an input of five `name` values, the expression `{{ $json.name }}` always resolves to the first name.\n\n## Node Options\n\n- **Maximum Number of Tokens**: Enter the maximum number of tokens used, which sets the completion length.\n- **Sampling Temperature**: Use this option to control the randomness of the sampling process. A higher temperature creates more diverse sampling, but increases the risk of hallucinations.\n\n## Templates and examples\n\n**Automate
|
|
47102
|
+
"markdown": "# Cohere Model node\n\nUse the Cohere Model node to use Cohere's models.\n\nOn this page, you'll find the node parameters for the Cohere Model node, and links to more resources.\n\nThis node lacks tools support, so it won't work with the [AI Agent](../../root-nodes/n8n-nodes-langchain.agent/) node. Instead, connect it with the [Basic LLM Chain](../../root-nodes/n8n-nodes-langchain.chainllm/) node.\n\nCredentials\n\nYou can find authentication information for this node [here](../../../credentials/cohere/).\n\nParameter resolution in sub-nodes\n\nSub-nodes behave differently to other nodes when processing multiple items using an expression.\n\nMost nodes, including root nodes, take any number of items as input, process these items, and output the results. You can use expressions to refer to input items, and the node resolves the expression for each item in turn. For example, given an input of five `name` values, the expression `{{ $json.name }}` resolves to each name in turn.\n\nIn sub-nodes, the expression always resolves to the first item. For example, given an input of five `name` values, the expression `{{ $json.name }}` always resolves to the first name.\n\n## Node Options\n\n- **Maximum Number of Tokens**: Enter the maximum number of tokens used, which sets the completion length.\n- **Sampling Temperature**: Use this option to control the randomness of the sampling process. A higher temperature creates more diverse sampling, but increases the risk of hallucinations.\n\n## Templates and examples\n\n**Automate sales cold calling pipeline with Apify, GPT-4o, and WhatsApp**\n\nby Khairul Muhtadin\n\n[View template details](https://n8n.io/workflows/5449-automate-sales-cold-calling-pipeline-with-apify-gpt-4o-and-whatsapp/)\n\n**Create a Multi-Modal Telegram Support Bot with GPT-4 and Supabase RAG**\n\nby Ezema Kingsley Chibuzo\n\n[View template details](https://n8n.io/workflows/5589-create-a-multi-modal-telegram-support-bot-with-gpt-4-and-supabase-rag/)\n\n**Build a Document QA System with RAG using Milvus, Cohere, and OpenAI for Google Drive**\n\nby Aitor | 1Node\n\n[View template details](https://n8n.io/workflows/3848-build-a-document-qa-system-with-rag-using-milvus-cohere-and-openai-for-google-drive/)\n\n[Browse Cohere Model integration templates](https://n8n.io/integrations/cohere-model/), or [search all templates](https://n8n.io/workflows/)\n\n## Related resources\n\nRefer to [LangChains's Cohere documentation](https://js.langchain.com/docs/integrations/llms/cohere/) for more information about the service.\n\nView n8n's [Advanced AI](../../../../../advanced-ai/) documentation.\n",
|
|
46986
47103
|
"excerpt": "# Cohere Model node Use the Cohere Model node to use Cohere's models. On this page, you'll find the node parameters for the Cohere Model node, and links to more resources. This node lacks tools support, so it won't work with the [AI Agent](../../root-nodes/n8n-nodes-langchain.agent/) node. Instead, connect it with the [Basic LLM Chain](../../root-nodes/n8n-nodes-langchain.chainllm/) node. Credentials You can find authentication information for this node [here](../../../credentials/cohere/)....",
|
|
46987
47104
|
"sections": [
|
|
46988
47105
|
{
|
|
@@ -47921,7 +48038,7 @@
|
|
|
47921
48038
|
"nodeName": null,
|
|
47922
48039
|
"nodeType": null,
|
|
47923
48040
|
"content": {
|
|
47924
|
-
"markdown": "# Reranker Cohere\n\nThe Reranker Cohere node allows you to [rerank](../../../../../glossary/#ai-reranking) the resulting chunks from a [vector store](../../../../../glossary/#ai-vector-store). You can connect this node to a vector store.\n\nThe reranker reorders the list of documents retrieved from a vector store for a given query in order of descending relevance.\n\nOn this page, you'll find the node parameters for the Reranker Cohere node, and links to more resources.\n\nCredentials\n\nYou can find authentication information for this node [here](../../../credentials/cohere/).\n\nParameter resolution in sub-nodes\n\nSub-nodes behave differently to other nodes when processing multiple items using an expression.\n\nMost nodes, including root nodes, take any number of items as input, process these items, and output the results. You can use expressions to refer to input items, and the node resolves the expression for each item in turn. For example, given an input of five `name` values, the expression `{{ $json.name }}` resolves to each name in turn.\n\nIn sub-nodes, the expression always resolves to the first item. For example, given an input of five `name` values, the expression `{{ $json.name }}` always resolves to the first name.\n\n## Node parameters\n\n### Model\n\nChoose the reranking model to use. You can find out more about the available models in [Cohere's model documentation](https://docs.cohere.com/docs/models#rerank).\n\n## Templates and examples\n\n**Automate
|
|
48041
|
+
"markdown": "# Reranker Cohere\n\nThe Reranker Cohere node allows you to [rerank](../../../../../glossary/#ai-reranking) the resulting chunks from a [vector store](../../../../../glossary/#ai-vector-store). You can connect this node to a vector store.\n\nThe reranker reorders the list of documents retrieved from a vector store for a given query in order of descending relevance.\n\nOn this page, you'll find the node parameters for the Reranker Cohere node, and links to more resources.\n\nCredentials\n\nYou can find authentication information for this node [here](../../../credentials/cohere/).\n\nParameter resolution in sub-nodes\n\nSub-nodes behave differently to other nodes when processing multiple items using an expression.\n\nMost nodes, including root nodes, take any number of items as input, process these items, and output the results. You can use expressions to refer to input items, and the node resolves the expression for each item in turn. For example, given an input of five `name` values, the expression `{{ $json.name }}` resolves to each name in turn.\n\nIn sub-nodes, the expression always resolves to the first item. For example, given an input of five `name` values, the expression `{{ $json.name }}` always resolves to the first name.\n\n## Node parameters\n\n### Model\n\nChoose the reranking model to use. You can find out more about the available models in [Cohere's model documentation](https://docs.cohere.com/docs/models#rerank).\n\n## Templates and examples\n\n**Automate sales cold calling pipeline with Apify, GPT-4o, and WhatsApp**\n\nby Khairul Muhtadin\n\n[View template details](https://n8n.io/workflows/5449-automate-sales-cold-calling-pipeline-with-apify-gpt-4o-and-whatsapp/)\n\n**Create a Multi-Modal Telegram Support Bot with GPT-4 and Supabase RAG**\n\nby Ezema Kingsley Chibuzo\n\n[View template details](https://n8n.io/workflows/5589-create-a-multi-modal-telegram-support-bot-with-gpt-4-and-supabase-rag/)\n\n**Chat with Google Drive documents using OpenAI and Pinecone RAG search**\n\nby Pinecone\n\n[View template details](https://n8n.io/workflows/11870-chat-with-google-drive-documents-using-openai-and-pinecone-rag-search/)\n\n[Browse Reranker Cohere integration templates](https://n8n.io/integrations/reranker-cohere/), or [search all templates](https://n8n.io/workflows/)\n\n## Related resources\n\nView n8n's [Advanced AI](../../../../../advanced-ai/) documentation.\n",
|
|
47925
48042
|
"excerpt": "# Reranker Cohere The Reranker Cohere node allows you to [rerank](../../../../../glossary/#ai-reranking) the resulting chunks from a [vector store](../../../../../glossary/#ai-vector-store). You can connect this node to a vector store. The reranker reorders the list of documents retrieved from a vector store for a given query in order of descending relevance. On this page, you'll find the node parameters for the Reranker Cohere node, and links to more resources. Credentials You can find aut...",
|
|
47926
48043
|
"sections": [
|
|
47927
48044
|
{
|
|
@@ -55183,13 +55300,13 @@
|
|
|
55183
55300
|
"nodeName": null,
|
|
55184
55301
|
"nodeType": null,
|
|
55185
55302
|
"content": {
|
|
55186
|
-
"markdown": "# Chat node\n\nUse the Chat node with the [Chat Trigger](../n8n-nodes-langchain.chattrigger/) node to send messages into the chat and optionally wait for responses from users. This enables human-in-the-loop (HITL) use cases in chat workflows, allowing you to have multiple chat interactions within a single execution. The Chat node also works as a tool for AI Agents.\n\
|
|
55187
|
-
"excerpt": "# Chat node Use the Chat node with the [Chat Trigger](../n8n-nodes-langchain.chattrigger/) node to send messages into the chat and optionally wait for responses from users. This enables human-in-the-loop (HITL) use cases in chat workflows, allowing you to have multiple chat interactions within a single execution. The Chat node also works as a tool for AI Agents.
|
|
55303
|
+
"markdown": "# Chat node\n\nUse the Chat node with the [Chat Trigger](../n8n-nodes-langchain.chattrigger/) node to send messages into the chat and optionally wait for responses from users. This enables human-in-the-loop (HITL) use cases in chat workflows, allowing you to have multiple chat interactions within a single execution. The Chat node also works as a tool for AI Agents.\n\nChat Trigger node\n\nThe Chat node requires a [Chat Trigger](../n8n-nodes-langchain.chattrigger/) node to be present in the workflow, with the [Response Mode](../n8n-nodes-langchain.chattrigger/#response-mode) set to 'Using Response Nodes'.\n\nEmbedded mode not supported\n\nThe Chat node isn't supported when the Chat Trigger node is set to **Embedded** mode. In Embedded mode, use the [Respond to Webhook](../n8n-nodes-base.respondtowebhook/) node instead.\n\nPrevious version\n\nIn previous versions, this node was called \"Respond to Chat\" and used a single \"Wait for User Reply\" toggle. The functionality has been reorganized into two distinct actions with additional response types.\n\n## Node parameters\n\nThis node can be used as an AI tool\n\nThis node can be used to enhance the capabilities of an AI agent. When used in this way, many parameters can be set automatically, or with information directed by AI - find out more in the [AI tool parameters documentation](../../../../advanced-ai/examples/using-the-fromai-function/).\n\nHuman-in-the-loop for AI tool calls\n\nThis node can be used as a human review step for AI Agent tool calls. When configured this way, the AI Agent will pause and request human approval through this service before executing tools that require oversight. Learn more in [Human-in-the-loop for AI tool calls](../../../../advanced-ai/human-in-the-loop-tools/).\n\nConfigure this node using the following parameters.\n\n### Operation\n\nThe Chat node supports the following operations:\n\n- **Send Message**: Send a message to the chat. The workflow execution continues immediately after sending.\n- **Send and Wait for Response**: Send a message to the chat and wait for a response from the user. This operation pauses the workflow execution until the user submits a response.\n\nChoosing **Send and Wait for Response** activates additional parameters and options as discussed in [waiting for a response](#waiting-for-a-response).\n\n### Message\n\nThe message to send to the chat. This parameter is available for both operations.\n\n## Node options\n\nUse these **Options** to further refine the node's behavior.\n\n### Add Memory Input Connection\n\nChoose whether you want to commit the messages from the Chat node to a connected memory. Using a shared memory between an agent or chain [root node](../../cluster-nodes/root-nodes/) and the Chat node attaches the same session key to these messages and lets you capture the full message history.\n\n## Waiting for a response\n\nBy choosing the **Send and Wait for Response** operation, you can send a message and pause the workflow execution until a person responds. This enables multi-turn conversations and approval workflows within a single execution.\n\n### Response Type\n\nYou can choose between the following types of responses:\n\n- **Free Text**: Users can type any response in the chat. This is the same behavior as the previous \"Wait for User Reply\" option.\n- **Approval**: Users can approve or disapprove using inline buttons in the message. You can also optionally allow users to type custom responses.\n\nDifferent parameters and options are available depending on which type you choose.\n\n### Free Text parameters and options\n\nWhen using the Free Text response type, the user can type any message as their response.\n\n**Use cases:**\n\n- Open-ended questions\n- Collecting detailed feedback\n- Requesting specific information\n\n**Options:** * **Limit Wait Time**: Whether the workflow automatically resumes execution after a specified time limit. This can be an interval or a specific wall time.\n\n### Approval parameters and options\n\nWhen using the Approval response type, the message displays inline buttons that users can click to approve or disapprove. This response type follows the same pattern as other human-in-the-loop (HITL) nodes in n8n.\n\n**Use cases:**\n\n- Simple yes/no decisions\n- Approval workflows\n- Confirmations\n\nWhen using the Approval response type, the following parameters are available:\n\n- **Type of Approval**: Whether to present only an approval button or both approval and disapproval buttons.\n\n - **Approve Only**: Displays a single approval button\n - **Approve and Disapprove**: Displays both buttons (default)\n\n- **Approve Button Label**: The text to display on the approval button. Default: `Approve`\n\n- **Disapprove Button Label**: The text to display on the disapproval button (only shown when Type of Approval is \"Approve and Disapprove\"). Default: `Disapprove`\n\n- **Block User Input**: Whether to prevent users from typing custom messages (enabled) or allow them to type responses (disabled, default).\n\n - When **disabled** (default): Users can click buttons or type a custom message. Typed messages are treated as disapproval with a custom message.\n - When **enabled**: Users can only interact using the buttons.\n\nThe Approval response type also offers the following option:\n\n- **Limit Wait Time**: Whether the workflow automatically resumes execution after a specified time limit. This can be an interval or a specific wall time.\n\n## Related resources\n\nView n8n's [Advanced AI](../../../../advanced-ai/) documentation.\n\nRefer to the [Chat Trigger](../n8n-nodes-langchain.chattrigger/) node documentation for information about setting up the chat interface.\n\n## Templates and examples\n\n**AI agent chat**\n\nby n8n Team\n\n[View template details](https://n8n.io/workflows/1954-ai-agent-chat/)\n\n**Building Your First WhatsApp Chatbot**\n\nby Jimleuk\n\n[View template details](https://n8n.io/workflows/2465-building-your-first-whatsapp-chatbot/)\n\n**Scrape and summarize webpages with AI**\n\nby n8n Team\n\n[View template details](https://n8n.io/workflows/1951-scrape-and-summarize-webpages-with-ai/)\n\n[Browse Chat integration templates](https://n8n.io/integrations/chat/), or [search all templates](https://n8n.io/workflows/)\n\n## Common issues\n\n- The Chat node isn't supported when the Chat Trigger node's **Mode** is set to **Embedded**. In Embedded mode, the Chat Trigger node only offers **Respond to Webhook** as a response mode. Use the [Respond to Webhook](../n8n-nodes-base.respondtowebhook/) node instead.\n- The Chat node doesn't work when used as a tool of a subagent.\n- The Chat node doesn't work when used in a subworkflow. This includes usage in a subworkflow that's being used as a tool for an AI Agent.\n- Make sure the Chat Trigger node's Response Mode is set to \"Using Response Nodes\" for the Chat node to function properly.\n\nFor common questions or issues with the Chat Trigger node, refer to [Common Chat Trigger Node Issues](../n8n-nodes-langchain.chattrigger/common-issues/).\n",
|
|
55304
|
+
"excerpt": "# Chat node Use the Chat node with the [Chat Trigger](../n8n-nodes-langchain.chattrigger/) node to send messages into the chat and optionally wait for responses from users. This enables human-in-the-loop (HITL) use cases in chat workflows, allowing you to have multiple chat interactions within a single execution. The Chat node also works as a tool for AI Agents. Chat Trigger node The Chat node requires a [Chat Trigger](../n8n-nodes-langchain.chattrigger/) node to be present in the workflow, w...",
|
|
55188
55305
|
"sections": [
|
|
55189
55306
|
{
|
|
55190
55307
|
"title": "Chat node",
|
|
55191
55308
|
"level": 1,
|
|
55192
|
-
"content": "Use the Chat node with the [Chat Trigger](../n8n-nodes-langchain.chattrigger/) node to send messages into the chat and optionally wait for responses from users. This enables human-in-the-loop (HITL) use cases in chat workflows, allowing you to have multiple chat interactions within a single execution. The Chat node also works as a tool for AI Agents.\n\
|
|
55309
|
+
"content": "Use the Chat node with the [Chat Trigger](../n8n-nodes-langchain.chattrigger/) node to send messages into the chat and optionally wait for responses from users. This enables human-in-the-loop (HITL) use cases in chat workflows, allowing you to have multiple chat interactions within a single execution. The Chat node also works as a tool for AI Agents.\n\nChat Trigger node\n\nThe Chat node requires a [Chat Trigger](../n8n-nodes-langchain.chattrigger/) node to be present in the workflow, with the [Response Mode](../n8n-nodes-langchain.chattrigger/#response-mode) set to 'Using Response Nodes'.\n\nEmbedded mode not supported\n\nThe Chat node isn't supported when the Chat Trigger node is set to **Embedded** mode. In Embedded mode, use the [Respond to Webhook](../n8n-nodes-base.respondtowebhook/) node instead.\n\nPrevious version\n\nIn previous versions, this node was called \"Respond to Chat\" and used a single \"Wait for User Reply\" toggle. The functionality has been reorganized into two distinct actions "
|
|
55193
55310
|
}
|
|
55194
55311
|
]
|
|
55195
55312
|
},
|
|
@@ -55224,11 +55341,11 @@
|
|
|
55224
55341
|
"codeExamples": 0,
|
|
55225
55342
|
"complexity": "intermediate",
|
|
55226
55343
|
"readingTime": "5 min",
|
|
55227
|
-
"contentLength":
|
|
55344
|
+
"contentLength": 6927,
|
|
55228
55345
|
"relatedPages": []
|
|
55229
55346
|
},
|
|
55230
55347
|
"searchIndex": {
|
|
55231
|
-
"fullText": "chat # chat node\n\nuse the chat node with the [chat trigger](../n8n-nodes-langchain.chattrigger/) node to send messages into the chat and optionally wait for responses from users. this enables human-in-the-loop (hitl) use cases in chat workflows, allowing you to have multiple chat interactions within a single execution. the chat node also works as a tool for ai agents.\n\
|
|
55348
|
+
"fullText": "chat # chat node\n\nuse the chat node with the [chat trigger](../n8n-nodes-langchain.chattrigger/) node to send messages into the chat and optionally wait for responses from users. this enables human-in-the-loop (hitl) use cases in chat workflows, allowing you to have multiple chat interactions within a single execution. the chat node also works as a tool for ai agents.\n\nchat trigger node\n\nthe chat node requires a [chat trigger](../n8n-nodes-langchain.chattrigger/) node to be present in the workflow, with the [response mode](../n8n-nodes-langchain.chattrigger/#response-mode) set to 'using response nodes'.\n\nembedded mode not supported\n\nthe chat node isn't supported when the chat trigger node is set to **embedded** mode. in embedded mode, use the [respond to webhook](../n8n-nodes-base.respondtowebhook/) node instead.\n\nprevious version\n\nin previous versions, this node was called \"respond to chat\" and used a single \"wait for user reply\" toggle. the functionality has been reorganized into two distinct actions with additional response types.\n\n## node parameters\n\nthis node can be used as an ai tool\n\nthis node can be used to enhance the capabilities of an ai agent. when used in this way, many parameters can be set automatically, or with information directed by ai - find out more in the [ai tool parameters documentation](../../../../advanced-ai/examples/using-the-fromai-function/).\n\nhuman-in-the-loop for ai tool calls\n\nthis node can be used as a human review step for ai agent tool calls. when configured this way, the ai agent will pause and request human approval through this service before executing tools that require oversight. learn more in [human-in-the-loop for ai tool calls](../../../../advanced-ai/human-in-the-loop-tools/).\n\nconfigure this node using the following parameters.\n\n### operation\n\nthe chat node supports the following operations:\n\n- **send message**: send a message to the chat. the workflow execution continues immediately after sending.\n- **send and wait for response**: send a message to the chat and wait for a response from the user. this operation pauses the workflow execution until the user submits a response.\n\nchoosing **send and wait for response** activates additional parameters and options as discussed in [waiting for a response](#waiting-for-a-response).\n\n### message\n\nthe message to send to the chat. this parameter is available for both operations.\n\n## node options\n\nuse these **options** to further refine the node's behavior.\n\n### add memory input connection\n\nchoose whether you want to commit the messages from the chat node to a connected memory. using a shared memory between an agent or chain [root node](../../cluster-nodes/root-nodes/) and the chat node attaches the same session key to these messages and lets you capture the full message history.\n\n## waiting for a response\n\nby choosing the **send and wait for response** operation, you can send a message and pause the workflow execution until a person responds. this enables multi-turn conversations and approval workflows within a single execution.\n\n### response type\n\nyou can choose between the following types of responses:\n\n- **free text**: users can type any response in the chat. this is the same behavior as the previous \"wait for user reply\" option.\n- **approval**: users can approve or disapprove using inline buttons in the message. you can also optionally allow users to type custom responses.\n\ndifferent parameters and options are available depending on which type you choose.\n\n### free text parameters and options\n\nwhen using the free text response type, the user can type any message as their response.\n\n**use cases:**\n\n- open-ended questions\n- collecting detailed feedback\n- requesting specific information\n\n**options:** * **limit wait time**: whether the workflow automatically resumes execution after a specified time limit. this can be an interval or a specific wall time.\n\n### approval parameters and options\n\nwhen using the approval response type, the message displays inline buttons that users can click to approve or disapprove. this response type follows the same pattern as other human-in-the-loop (hitl) nodes in n8n.\n\n**use cases:**\n\n- simple yes/no decisions\n- approval workflows\n- confirmations\n\nwhen using the approval response type, the following parameters are available:\n\n- **type of approval**: whether to present only an approval button or both approval and disapproval buttons.\n\n - **approve only**: displays a single approval button\n - **approve and disapprove**: displays both buttons (default)\n\n- **approve button label**: the text to display on the approval button. default: `approve`\n\n- **disapprove button label**: the text to display on the disapproval button (only shown when type of approval is \"approve and disapprove\"). default: `disapprove`\n\n- **block user input**: whether to prevent users from typing custom messages (enabled) or allow them to type responses (disabled, default).\n\n - when **disabled** (default): users can click buttons or type a custom message. typed messages are treated as disapproval with a custom message.\n - when **enabled**: users can only interact using the buttons.\n\nthe approval response type also offers the following option:\n\n- **limit wait time**: whether the workflow automatically resumes execution after a specified time limit. this can be an interval or a specific wall time.\n\n## related resources\n\nview n8n's [advanced ai](../../../../advanced-ai/) documentation.\n\nrefer to the [chat trigger](../n8n-nodes-langchain.chattrigger/) node documentation for information about setting up the chat interface.\n\n## templates and examples\n\n**ai agent chat**\n\nby n8n team\n\n[view template details](https://n8n.io/workflows/1954-ai-agent-chat/)\n\n**building your first whatsapp chatbot**\n\nby jimleuk\n\n[view template details](https://n8n.io/workflows/2465-building-your-first-whatsapp-chatbot/)\n\n**scrape and summarize webpages with ai**\n\nby n8n team\n\n[view template details](https://n8n.io/workflows/1951-scrape-and-summarize-webpages-with-ai/)\n\n[browse chat integration templates](https://n8n.io/integrations/chat/), or [search all templates](https://n8n.io/workflows/)\n\n## common issues\n\n- the chat node isn't supported when the chat trigger node's **mode** is set to **embedded**. in embedded mode, the chat trigger node only offers **respond to webhook** as a response mode. use the [respond to webhook](../n8n-nodes-base.respondtowebhook/) node instead.\n- the chat node doesn't work when used as a tool of a subagent.\n- the chat node doesn't work when used in a subworkflow. this includes usage in a subworkflow that's being used as a tool for an ai agent.\n- make sure the chat trigger node's response mode is set to \"using response nodes\" for the chat node to function properly.\n\nfor common questions or issues with the chat trigger node, refer to [common chat trigger node issues](../n8n-nodes-langchain.chattrigger/common-issues/).\n chat node",
|
|
55232
55349
|
"importantTerms": [
|
|
55233
55350
|
"chat",
|
|
55234
55351
|
"node",
|
|
@@ -55236,18 +55353,19 @@
|
|
|
55236
55353
|
"this",
|
|
55237
55354
|
"approval",
|
|
55238
55355
|
"type",
|
|
55239
|
-
"message",
|
|
55240
55356
|
"nodes",
|
|
55241
|
-
"using",
|
|
55242
55357
|
"when",
|
|
55243
|
-
"
|
|
55358
|
+
"message",
|
|
55359
|
+
"trigger",
|
|
55360
|
+
"using",
|
|
55244
55361
|
"send",
|
|
55245
55362
|
"wait",
|
|
55363
|
+
"mode",
|
|
55246
55364
|
"parameters",
|
|
55365
|
+
"with",
|
|
55247
55366
|
"users",
|
|
55248
55367
|
"tool",
|
|
55249
55368
|
"used",
|
|
55250
|
-
"trigger",
|
|
55251
55369
|
"human",
|
|
55252
55370
|
"workflows",
|
|
55253
55371
|
"execution",
|
|
@@ -55264,22 +55382,21 @@
|
|
|
55264
55382
|
"chattrigger",
|
|
55265
55383
|
"messages",
|
|
55266
55384
|
"loop",
|
|
55385
|
+
"embedded",
|
|
55267
55386
|
"following",
|
|
55268
55387
|
"whether",
|
|
55269
55388
|
"text",
|
|
55389
|
+
"only",
|
|
55270
55390
|
"default",
|
|
55271
55391
|
"https",
|
|
55272
55392
|
"responses",
|
|
55273
55393
|
"from",
|
|
55274
55394
|
"single",
|
|
55275
|
-
"
|
|
55395
|
+
"respond",
|
|
55276
55396
|
"advanced",
|
|
55277
55397
|
"custom",
|
|
55278
55398
|
"limit",
|
|
55279
|
-
"
|
|
55280
|
-
"view",
|
|
55281
|
-
"common",
|
|
55282
|
-
"issues"
|
|
55399
|
+
"view"
|
|
55283
55400
|
]
|
|
55284
55401
|
}
|
|
55285
55402
|
},
|
|
@@ -66508,6 +66625,57 @@
|
|
|
66508
66625
|
},
|
|
66509
66626
|
{
|
|
66510
66627
|
"id": "page-0865",
|
|
66628
|
+
"title": "Malcore credentials",
|
|
66629
|
+
"url": "https://docs.n8n.io/integrations/builtin/credentials/malcore/index.md",
|
|
66630
|
+
"urlPath": "integrations/builtin/credentials/malcore/index.md",
|
|
66631
|
+
"category": "other",
|
|
66632
|
+
"subcategory": null,
|
|
66633
|
+
"nodeName": null,
|
|
66634
|
+
"nodeType": null,
|
|
66635
|
+
"content": {
|
|
66636
|
+
"markdown": "# Malcore credentials\n\nYou can use these credentials to authenticate when using the [HTTP Request node](../../core-nodes/n8n-nodes-base.httprequest/) to make a [Custom API call](../../../custom-operations/).\n\n## Prerequisites\n\nCreate a [Malcore](https://app.malcore.io/register) account.\n\n## Related resources\n\nRefer to [Malcore's API documentation](https://malcore.readme.io/reference/) for more information about authenticating with the service.\n\nThis is a credential-only node. Refer to [Custom API operations](../../../custom-operations/) to learn more. View [example workflows and related content](https://n8n.io/integrations/malcore/) on n8n's website.\n\n## Using API key\n\nTo configure this credential, you'll need:\n\n- An **API Key**: Get an API Key from your **Account > API**.\n\nRefer to [Using the Malcore API](https://support.malcore.io/hc/en-au/articles/17711707070617-Using-the-Malcore-API) for more information.\n",
|
|
66637
|
+
"excerpt": "# Malcore credentials You can use these credentials to authenticate when using the [HTTP Request node](../../core-nodes/n8n-nodes-base.httprequest/) to make a [Custom API call](../../../custom-operations/). ## Prerequisites Create a [Malcore](https://app.malcore.io/register) account. ## Related resources Refer to [Malcore's API documentation](https://malcore.readme.io/reference/) for more information about authenticating with the service. This is a credential-only node. Refer to [Custom AP...",
|
|
66638
|
+
"sections": [
|
|
66639
|
+
{
|
|
66640
|
+
"title": "Malcore credentials",
|
|
66641
|
+
"level": 1,
|
|
66642
|
+
"content": "You can use these credentials to authenticate when using the [HTTP Request node](../../core-nodes/n8n-nodes-base.httprequest/) to make a [Custom API call](../../../custom-operations/)."
|
|
66643
|
+
}
|
|
66644
|
+
]
|
|
66645
|
+
},
|
|
66646
|
+
"metadata": {
|
|
66647
|
+
"keywords": [
|
|
66648
|
+
"malcore",
|
|
66649
|
+
"credentials",
|
|
66650
|
+
"prerequisites",
|
|
66651
|
+
"related",
|
|
66652
|
+
"resources",
|
|
66653
|
+
"using"
|
|
66654
|
+
],
|
|
66655
|
+
"useCases": [],
|
|
66656
|
+
"operations": [],
|
|
66657
|
+
"codeExamples": 0,
|
|
66658
|
+
"complexity": "beginner",
|
|
66659
|
+
"readingTime": "1 min",
|
|
66660
|
+
"contentLength": 923,
|
|
66661
|
+
"relatedPages": []
|
|
66662
|
+
},
|
|
66663
|
+
"searchIndex": {
|
|
66664
|
+
"fullText": "malcore credentials # malcore credentials\n\nyou can use these credentials to authenticate when using the [http request node](../../core-nodes/n8n-nodes-base.httprequest/) to make a [custom api call](../../../custom-operations/).\n\n## prerequisites\n\ncreate a [malcore](https://app.malcore.io/register) account.\n\n## related resources\n\nrefer to [malcore's api documentation](https://malcore.readme.io/reference/) for more information about authenticating with the service.\n\nthis is a credential-only node. refer to [custom api operations](../../../custom-operations/) to learn more. view [example workflows and related content](https://n8n.io/integrations/malcore/) on n8n's website.\n\n## using api key\n\nto configure this credential, you'll need:\n\n- an **api key**: get an api key from your **account > api**.\n\nrefer to [using the malcore api](https://support.malcore.io/hc/en-au/articles/17711707070617-using-the-malcore-api) for more information.\n malcore credentials",
|
|
66665
|
+
"importantTerms": [
|
|
66666
|
+
"malcore",
|
|
66667
|
+
"credentials",
|
|
66668
|
+
"using",
|
|
66669
|
+
"custom",
|
|
66670
|
+
"https",
|
|
66671
|
+
"operations",
|
|
66672
|
+
"refer",
|
|
66673
|
+
"more"
|
|
66674
|
+
]
|
|
66675
|
+
}
|
|
66676
|
+
},
|
|
66677
|
+
{
|
|
66678
|
+
"id": "page-0866",
|
|
66511
66679
|
"title": "Mandrill credentials",
|
|
66512
66680
|
"url": "https://docs.n8n.io/integrations/builtin/credentials/mandrill/index.md",
|
|
66513
66681
|
"urlPath": "integrations/builtin/credentials/mandrill/index.md",
|
|
@@ -66562,57 +66730,6 @@
|
|
|
66562
66730
|
]
|
|
66563
66731
|
}
|
|
66564
66732
|
},
|
|
66565
|
-
{
|
|
66566
|
-
"id": "page-0866",
|
|
66567
|
-
"title": "Malcore credentials",
|
|
66568
|
-
"url": "https://docs.n8n.io/integrations/builtin/credentials/malcore/index.md",
|
|
66569
|
-
"urlPath": "integrations/builtin/credentials/malcore/index.md",
|
|
66570
|
-
"category": "other",
|
|
66571
|
-
"subcategory": null,
|
|
66572
|
-
"nodeName": null,
|
|
66573
|
-
"nodeType": null,
|
|
66574
|
-
"content": {
|
|
66575
|
-
"markdown": "# Malcore credentials\n\nYou can use these credentials to authenticate when using the [HTTP Request node](../../core-nodes/n8n-nodes-base.httprequest/) to make a [Custom API call](../../../custom-operations/).\n\n## Prerequisites\n\nCreate a [Malcore](https://app.malcore.io/register) account.\n\n## Related resources\n\nRefer to [Malcore's API documentation](https://malcore.readme.io/reference/) for more information about authenticating with the service.\n\nThis is a credential-only node. Refer to [Custom API operations](../../../custom-operations/) to learn more. View [example workflows and related content](https://n8n.io/integrations/malcore/) on n8n's website.\n\n## Using API key\n\nTo configure this credential, you'll need:\n\n- An **API Key**: Get an API Key from your **Account > API**.\n\nRefer to [Using the Malcore API](https://support.malcore.io/hc/en-au/articles/17711707070617-Using-the-Malcore-API) for more information.\n",
|
|
66576
|
-
"excerpt": "# Malcore credentials You can use these credentials to authenticate when using the [HTTP Request node](../../core-nodes/n8n-nodes-base.httprequest/) to make a [Custom API call](../../../custom-operations/). ## Prerequisites Create a [Malcore](https://app.malcore.io/register) account. ## Related resources Refer to [Malcore's API documentation](https://malcore.readme.io/reference/) for more information about authenticating with the service. This is a credential-only node. Refer to [Custom AP...",
|
|
66577
|
-
"sections": [
|
|
66578
|
-
{
|
|
66579
|
-
"title": "Malcore credentials",
|
|
66580
|
-
"level": 1,
|
|
66581
|
-
"content": "You can use these credentials to authenticate when using the [HTTP Request node](../../core-nodes/n8n-nodes-base.httprequest/) to make a [Custom API call](../../../custom-operations/)."
|
|
66582
|
-
}
|
|
66583
|
-
]
|
|
66584
|
-
},
|
|
66585
|
-
"metadata": {
|
|
66586
|
-
"keywords": [
|
|
66587
|
-
"malcore",
|
|
66588
|
-
"credentials",
|
|
66589
|
-
"prerequisites",
|
|
66590
|
-
"related",
|
|
66591
|
-
"resources",
|
|
66592
|
-
"using"
|
|
66593
|
-
],
|
|
66594
|
-
"useCases": [],
|
|
66595
|
-
"operations": [],
|
|
66596
|
-
"codeExamples": 0,
|
|
66597
|
-
"complexity": "beginner",
|
|
66598
|
-
"readingTime": "1 min",
|
|
66599
|
-
"contentLength": 923,
|
|
66600
|
-
"relatedPages": []
|
|
66601
|
-
},
|
|
66602
|
-
"searchIndex": {
|
|
66603
|
-
"fullText": "malcore credentials # malcore credentials\n\nyou can use these credentials to authenticate when using the [http request node](../../core-nodes/n8n-nodes-base.httprequest/) to make a [custom api call](../../../custom-operations/).\n\n## prerequisites\n\ncreate a [malcore](https://app.malcore.io/register) account.\n\n## related resources\n\nrefer to [malcore's api documentation](https://malcore.readme.io/reference/) for more information about authenticating with the service.\n\nthis is a credential-only node. refer to [custom api operations](../../../custom-operations/) to learn more. view [example workflows and related content](https://n8n.io/integrations/malcore/) on n8n's website.\n\n## using api key\n\nto configure this credential, you'll need:\n\n- an **api key**: get an api key from your **account > api**.\n\nrefer to [using the malcore api](https://support.malcore.io/hc/en-au/articles/17711707070617-using-the-malcore-api) for more information.\n malcore credentials",
|
|
66604
|
-
"importantTerms": [
|
|
66605
|
-
"malcore",
|
|
66606
|
-
"credentials",
|
|
66607
|
-
"using",
|
|
66608
|
-
"custom",
|
|
66609
|
-
"https",
|
|
66610
|
-
"operations",
|
|
66611
|
-
"refer",
|
|
66612
|
-
"more"
|
|
66613
|
-
]
|
|
66614
|
-
}
|
|
66615
|
-
},
|
|
66616
66733
|
{
|
|
66617
66734
|
"id": "page-0867",
|
|
66618
66735
|
"title": "Marketstack credentials",
|
|
@@ -71398,215 +71515,6 @@
|
|
|
71398
71515
|
},
|
|
71399
71516
|
{
|
|
71400
71517
|
"id": "page-0941",
|
|
71401
|
-
"title": "S3 credentials",
|
|
71402
|
-
"url": "https://docs.n8n.io/integrations/builtin/credentials/s3/index.md",
|
|
71403
|
-
"urlPath": "integrations/builtin/credentials/s3/index.md",
|
|
71404
|
-
"category": "other",
|
|
71405
|
-
"subcategory": null,
|
|
71406
|
-
"nodeName": null,
|
|
71407
|
-
"nodeType": null,
|
|
71408
|
-
"content": {
|
|
71409
|
-
"markdown": "# S3 credentials\n\nYou can use these credentials to authenticate the following nodes:\n\n- [S3](../../app-nodes/n8n-nodes-base.s3/)\n\n## Prerequisites\n\nCreate an account on an S3-compatible server. Use the S3 node for generic or non-AWS S3 like:\n\n- [DigitalOcean Spaces](https://www.digitalocean.com/products/spaces)\n- [MinIO](https://min.io/)\n- [Wasabi](https://wasabi.com/)\n\n## Supported authentication methods\n\n- S3 endpoint\n\n## Related resources\n\nRefer to your S3-compatible provider's documentation for more information on the services. For example, refer to [Wasabi's REST API documentation](https://docs.wasabi.com/docs/rest-api-introduction) or [DigitalOcean's Spaces API Reference Documentation](https://docs.digitalocean.com/reference/api/spaces-api/).\n\n## Using S3 endpoint\n\nTo configure this credential, you'll need:\n\n- An **S3 Endpoint**: Enter the URL endpoint for the S3 storage backend.\n- A **Region**: Enter the region for your S3 storage. Some providers call this the \"region slug.\"\n- An **Access Key ID**: Enter the S3 access key your S3 provider uses to access the bucket or space. Some providers call this API keys.\n- A **Secret Access Key**: Enter the secret access key for the **Access Key ID**.\n- **Force Path Style**: When turned on, the connection uses path-style addressing for buckets.\n- **Ignore SSL Issues**: When turned on, n8n will connect even if SSL certificate validation fails.\n\nMore detailed instructions for DigitalOcean Spaces and Wasabi follow. If you're using a different provider, refer to their documentation for more information.\n\n### Using DigitalOcean Spaces\n\nTo configure the credential for use with DigitalOcean spaces:\n\n1. In DigitalOceans, go to the control panel and open **Settings**. Your endpoint should be listed there. Prepend `https://` to that endpoint and enter it as the **S3 Endpoint** in n8n.\n - Your DigitalOceans endpoint depends on the data center region your bucket's in.\n1. For the **Region**, enter the region your bucket's located in, for example, `nyc3`.\n - If you plan to use this credential to create new Spaces, enter `us-east-1` instead.\n1. From your DigitalOceans control panel, go to [**API**](https://cloud.digitalocean.com/account/api/spaces).\n1. Open the **Spaces Keys** tab.\n1. Select **Generate New Key**.\n1. Enter a **Name** for your key, like `n8n integration` and select the checkmark.\n1. Copy the **Key** displayed next to the name and enter this as the **Access Key ID** in n8n.\n1. Copy the **Secret** value and enter this as the **Secret Access Key** in n8n.\n - Refer to [Sharing Access to Buckets with Access Keys](https://docs.digitalocean.com/products/spaces/how-to/manage-access/#access-keys) for more information on generating the key and secret.\n1. Keep the **Force Path Style** toggle turned off unless you want to use subdomain/virtual calling format.\n1. Decide how you want the n8n credential to handle SSL:\n - To respect SSL certificate validation, keep the default of **Ignore SSL Issues** turned off.\n - To connect even if SSL certificate validation fails, turn on **Ignore SSL Issues**.\n\nRefer to DigitalOcean's [Spaces API Reference Documentation](https://docs.digitalocean.com/reference/api/spaces-api/) for more information.\n\n### Using Wasabi\n\nTo configure the credential for use with Wasabi:\n\n1. For the **S3 Endpoint**, enter the service URL for your bucket's region. Start it with `https://`.\n - Refer to [Service URLs for Wasabi's Storage Regions](https://docs.wasabi.com/v1/docs/service-urls-for-wasabis-storage-regions) to identify the correct URL.\n1. For the **Region**, enter the region slug portion of the service URL. For example, if you entered `https://s3.us-east-2.wasabisys.com` as the **S3 Endpoint**, `us-east-2` is the region.\n1. Log into you Wasabi Console as the root user.\n1. Open the **Menu** and select **Access Keys**.\n1. Select **CREATE NEW ACCESS KEY**.\n1. Select whether the key is for the **Root User** or a **Sub-User** and select **CREATE**.\n1. Copy the **Access Key** and enter it in n8n as the **Access Key ID**.\n1. Copy the **Secret Key** and enter it in n8n as the **Secret Access Key**.\n - Refer to [Creating a New Access Key](https://docs.wasabi.com/v1/docs/creating-a-new-access-key) for more information on generating the key and secret.\n1. Wasabi recommends turning on the **Force Path Style** toggle \"because the path-style offers the greatest flexibility in bucket names, avoiding domain name issues.\" Refer to the Wasabi [REST API Introduction](https://docs.wasabi.com/docs/rest-api-introduction) for more information.\n1. Decide how you want the n8n credential to handle SSL:\n - To respect SSL certificate validation, keep the default of **Ignore SSL Issues** turned off.\n - To connect even if SSL certificate validation fails, turn on **Ignore SSL Issues**.\n",
|
|
71410
|
-
"excerpt": "# S3 credentials You can use these credentials to authenticate the following nodes: - [S3](../../app-nodes/n8n-nodes-base.s3/) ## Prerequisites Create an account on an S3-compatible server. Use the S3 node for generic or non-AWS S3 like: - [DigitalOcean Spaces](https://www.digitalocean.com/products/spaces) - [MinIO](https://min.io/) - [Wasabi](https://wasabi.com/) ## Supported authentication methods - S3 endpoint ## Related resources Refer to your S3-compatible provider's documentation...",
|
|
71411
|
-
"sections": [
|
|
71412
|
-
{
|
|
71413
|
-
"title": "S3 credentials",
|
|
71414
|
-
"level": 1,
|
|
71415
|
-
"content": "You can use these credentials to authenticate the following nodes:\n\n- [S3](../../app-nodes/n8n-nodes-base.s3/)"
|
|
71416
|
-
}
|
|
71417
|
-
]
|
|
71418
|
-
},
|
|
71419
|
-
"metadata": {
|
|
71420
|
-
"keywords": [
|
|
71421
|
-
"credentials",
|
|
71422
|
-
"prerequisites",
|
|
71423
|
-
"supported",
|
|
71424
|
-
"authentication",
|
|
71425
|
-
"methods",
|
|
71426
|
-
"related",
|
|
71427
|
-
"resources",
|
|
71428
|
-
"using",
|
|
71429
|
-
"endpoint",
|
|
71430
|
-
"digitalocean",
|
|
71431
|
-
"spaces",
|
|
71432
|
-
"wasabi"
|
|
71433
|
-
],
|
|
71434
|
-
"useCases": [],
|
|
71435
|
-
"operations": [],
|
|
71436
|
-
"codeExamples": 0,
|
|
71437
|
-
"complexity": "beginner",
|
|
71438
|
-
"readingTime": "4 min",
|
|
71439
|
-
"contentLength": 4817,
|
|
71440
|
-
"relatedPages": []
|
|
71441
|
-
},
|
|
71442
|
-
"searchIndex": {
|
|
71443
|
-
"fullText": "s3 credentials # s3 credentials\n\nyou can use these credentials to authenticate the following nodes:\n\n- [s3](../../app-nodes/n8n-nodes-base.s3/)\n\n## prerequisites\n\ncreate an account on an s3-compatible server. use the s3 node for generic or non-aws s3 like:\n\n- [digitalocean spaces](https://www.digitalocean.com/products/spaces)\n- [minio](https://min.io/)\n- [wasabi](https://wasabi.com/)\n\n## supported authentication methods\n\n- s3 endpoint\n\n## related resources\n\nrefer to your s3-compatible provider's documentation for more information on the services. for example, refer to [wasabi's rest api documentation](https://docs.wasabi.com/docs/rest-api-introduction) or [digitalocean's spaces api reference documentation](https://docs.digitalocean.com/reference/api/spaces-api/).\n\n## using s3 endpoint\n\nto configure this credential, you'll need:\n\n- an **s3 endpoint**: enter the url endpoint for the s3 storage backend.\n- a **region**: enter the region for your s3 storage. some providers call this the \"region slug.\"\n- an **access key id**: enter the s3 access key your s3 provider uses to access the bucket or space. some providers call this api keys.\n- a **secret access key**: enter the secret access key for the **access key id**.\n- **force path style**: when turned on, the connection uses path-style addressing for buckets.\n- **ignore ssl issues**: when turned on, n8n will connect even if ssl certificate validation fails.\n\nmore detailed instructions for digitalocean spaces and wasabi follow. if you're using a different provider, refer to their documentation for more information.\n\n### using digitalocean spaces\n\nto configure the credential for use with digitalocean spaces:\n\n1. in digitaloceans, go to the control panel and open **settings**. your endpoint should be listed there. prepend `https://` to that endpoint and enter it as the **s3 endpoint** in n8n.\n - your digitaloceans endpoint depends on the data center region your bucket's in.\n1. for the **region**, enter the region your bucket's located in, for example, `nyc3`.\n - if you plan to use this credential to create new spaces, enter `us-east-1` instead.\n1. from your digitaloceans control panel, go to [**api**](https://cloud.digitalocean.com/account/api/spaces).\n1. open the **spaces keys** tab.\n1. select **generate new key**.\n1. enter a **name** for your key, like `n8n integration` and select the checkmark.\n1. copy the **key** displayed next to the name and enter this as the **access key id** in n8n.\n1. copy the **secret** value and enter this as the **secret access key** in n8n.\n - refer to [sharing access to buckets with access keys](https://docs.digitalocean.com/products/spaces/how-to/manage-access/#access-keys) for more information on generating the key and secret.\n1. keep the **force path style** toggle turned off unless you want to use subdomain/virtual calling format.\n1. decide how you want the n8n credential to handle ssl:\n - to respect ssl certificate validation, keep the default of **ignore ssl issues** turned off.\n - to connect even if ssl certificate validation fails, turn on **ignore ssl issues**.\n\nrefer to digitalocean's [spaces api reference documentation](https://docs.digitalocean.com/reference/api/spaces-api/) for more information.\n\n### using wasabi\n\nto configure the credential for use with wasabi:\n\n1. for the **s3 endpoint**, enter the service url for your bucket's region. start it with `https://`.\n - refer to [service urls for wasabi's storage regions](https://docs.wasabi.com/v1/docs/service-urls-for-wasabis-storage-regions) to identify the correct url.\n1. for the **region**, enter the region slug portion of the service url. for example, if you entered `https://s3.us-east-2.wasabisys.com` as the **s3 endpoint**, `us-east-2` is the region.\n1. log into you wasabi console as the root user.\n1. open the **menu** and select **access keys**.\n1. select **create new access key**.\n1. select whether the key is for the **root user** or a **sub-user** and select **create**.\n1. copy the **access key** and enter it in n8n as the **access key id**.\n1. copy the **secret key** and enter it in n8n as the **secret access key**.\n - refer to [creating a new access key](https://docs.wasabi.com/v1/docs/creating-a-new-access-key) for more information on generating the key and secret.\n1. wasabi recommends turning on the **force path style** toggle \"because the path-style offers the greatest flexibility in bucket names, avoiding domain name issues.\" refer to the wasabi [rest api introduction](https://docs.wasabi.com/docs/rest-api-introduction) for more information.\n1. decide how you want the n8n credential to handle ssl:\n - to respect ssl certificate validation, keep the default of **ignore ssl issues** turned off.\n - to connect even if ssl certificate validation fails, turn on **ignore ssl issues**.\n s3 credentials",
|
|
71444
|
-
"importantTerms": [
|
|
71445
|
-
"access",
|
|
71446
|
-
"https",
|
|
71447
|
-
"wasabi",
|
|
71448
|
-
"enter",
|
|
71449
|
-
"spaces",
|
|
71450
|
-
"digitalocean",
|
|
71451
|
-
"docs",
|
|
71452
|
-
"endpoint",
|
|
71453
|
-
"your",
|
|
71454
|
-
"region",
|
|
71455
|
-
"refer",
|
|
71456
|
-
"secret",
|
|
71457
|
-
"more",
|
|
71458
|
-
"information",
|
|
71459
|
-
"this",
|
|
71460
|
-
"credential",
|
|
71461
|
-
"issues",
|
|
71462
|
-
"select",
|
|
71463
|
-
"documentation",
|
|
71464
|
-
"bucket",
|
|
71465
|
-
"keys",
|
|
71466
|
-
"path",
|
|
71467
|
-
"style",
|
|
71468
|
-
"turned",
|
|
71469
|
-
"ignore",
|
|
71470
|
-
"certificate",
|
|
71471
|
-
"validation",
|
|
71472
|
-
"credentials",
|
|
71473
|
-
"create",
|
|
71474
|
-
"rest",
|
|
71475
|
-
"reference",
|
|
71476
|
-
"using",
|
|
71477
|
-
"storage",
|
|
71478
|
-
"with",
|
|
71479
|
-
"copy",
|
|
71480
|
-
"service",
|
|
71481
|
-
"nodes",
|
|
71482
|
-
"provider",
|
|
71483
|
-
"example",
|
|
71484
|
-
"introduction",
|
|
71485
|
-
"configure",
|
|
71486
|
-
"force",
|
|
71487
|
-
"connect",
|
|
71488
|
-
"even",
|
|
71489
|
-
"fails",
|
|
71490
|
-
"digitaloceans",
|
|
71491
|
-
"open",
|
|
71492
|
-
"east",
|
|
71493
|
-
"name",
|
|
71494
|
-
"keep"
|
|
71495
|
-
]
|
|
71496
|
-
}
|
|
71497
|
-
},
|
|
71498
|
-
{
|
|
71499
|
-
"id": "page-0942",
|
|
71500
|
-
"title": "Salesforce credentials",
|
|
71501
|
-
"url": "https://docs.n8n.io/integrations/builtin/credentials/salesforce/index.md",
|
|
71502
|
-
"urlPath": "integrations/builtin/credentials/salesforce/index.md",
|
|
71503
|
-
"category": "other",
|
|
71504
|
-
"subcategory": null,
|
|
71505
|
-
"nodeName": null,
|
|
71506
|
-
"nodeType": null,
|
|
71507
|
-
"content": {
|
|
71508
|
-
"markdown": "# Salesforce credentials\n\nYou can use these credentials to authenticate the following nodes:\n\n- [Salesforce](../../app-nodes/n8n-nodes-base.salesforce/)\n- [Salesforce trigger](../../trigger-nodes/n8n-nodes-base.salesforcetrigger/)\n\n## Supported authentication methods\n\n- JWT\n- OAuth2\n\n## Related resources\n\nRefer to [Salesforce's developer documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_intro.htm) for more information about the service.\n\nSalesforce External Client Apps\n\nSalesforce is deprecating Connected Apps in favor of External Client Apps. Both methods work with n8n. If you're creating a new integration, use External Client Apps. Existing Connected Apps will continue to work.\n\n## Using JWT\n\nTo configure this credential, you'll need a [Salesforce](https://www.salesforce.com/) account and:\n\n- Your **Environment Type** (Production or Sandbox)\n- A **Client ID**: Generated when you create an external client app or connected app.\n- Your Salesforce **Username**\n- A **Private Key** for a self-signed digital certificate\n\n### Create an External Client App (recommended)\n\nTo set things up, first you'll create a private key and certificate, then an external client app:\n\n1. In n8n, select the **Environment Type** for your connection. Choose the option that best describes your environment from **Production** or **Sandbox**.\n1. Enter your Salesforce **Username**.\n1. Log in to your org in Salesforce.\n1. You'll need a private key and certificate issued by a certification authority. Use your own key/cert or use OpenSSL to create a key and a self-signed digital certificate. Refer to the Salesforce [Create a Private Key and Self-Signed Digital Certificate documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_key_and_cert.htm) for instructions on creating your own key and certificate.\n1. From **Setup** in Salesforce, enter `App Manager` in the Quick Find box, then select **App Manager**.\n1. On the App Manager page, select **New External Client App**.\n1. Enter the required **Basic Info** for your external client app, including a **Name** and **Contact Email address**.\n1. Under **API (Enable OAuth Settings)**, select **Enable OAuth**.\n1. In the **Callback URL** box, add the callback URL: `http://localhost:1717/OauthRedirect` (or your n8n instance URL if self-hosting).\n1. In the **OAuth Scopes** section, select these scopes:\n - **Full access (full)**\n - **Perform requests at any time (refresh_token, offline_access)**\n1. In the **Flow Enablement** section, select **Enable JWT Bearer Flow**.\n1. Select **Upload Files** and upload the file that contains your digital certificate, such as `server.crt`.\n1. Under **OAuth Policies**, make sure the following settings are **unchecked**:\n - **Require Secret for Web Server Flow**\n - **Require Secret for Refresh Token Flow**\n - **Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows**\n1. Select **Save**, then **Continue**.\n1. Copy the **Consumer Key** and add it to your n8n credential as the **Client ID**.\n1. Enter the contents of the private key file in n8n as **Private Key**.\n - Use the multi-line editor in n8n.\n\n - Enter the private key in standard PEM key format:\n\n ```\n -----BEGIN PRIVATE KEY-----\n KEY DATA GOES HERE\n -----END PRIVATE KEY-----\n ```\n\nRefer to Salesforce's [External Client App Basics](https://help.salesforce.com/s/articleView?id=sf.external_client_app_about.htm&type=5) documentation for more information.\n\n### Create a Connected App (legacy)\n\nLegacy method\n\nSalesforce is deprecating Connected Apps. Use External Client Apps instead for new integrations.\n\nTo set things up, first you'll create a private key and certificate, then a connected app:\n\n1. In n8n, select the **Environment Type** for your connection. Choose the option that best describes your environment from **Production** or **Sandbox**.\n1. Enter your Salesforce **Username**.\n1. Log in to your org in Salesforce.\n1. You'll need a private key and certificate issued by a certification authority. Use your own key/cert or use OpenSSL to create a key and a self-signed digital certificate. Refer to the Salesforce [Create a Private Key and Self-Signed Digital Certificate documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_key_and_cert.htm) for instructions on creating your own key and certificate.\n1. From **Setup** in Salesforce, enter `App Manager` in the Quick Find box, then select **App Manager**.\n1. On the App Manager page, select **New Connected App**.\n1. Enter the required **Basic Info** for your connected app, including a **Name** and **Contact Email address**. Refer to Salesforce's [Configure Basic Connected App Settings](https://help.salesforce.com/s/articleView?id=sf.connected_app_create_basics.htm&type=5) documentation for more information.\n1. Check the box to **Enable OAuth Settings**.\n1. For the **Callback URL**, enter `http://localhost:1717/OauthRedirect`.\n1. Check the box to **Use digital signatures**.\n1. Select **Choose File** and upload the file that contains your digital certificate, such as `server.crt`.\n1. Add these **OAuth scopes**:\n - **Full access (full)**\n - **Perform requests at any time (refresh_token, offline_access)**\n1. Select **Save**, then **Continue**. The **Manage Connected Apps** page should open to the app you just created.\n1. In the **API (Enable OAuth Settings)** section, select **Manage Consumer Details**.\n1. Copy the **Consumer Key** and add it to your n8n credential as the **Client ID**.\n1. Enter the contents of the private key file in n8n as **Private Key**.\n - Use the multi-line editor in n8n.\n\n - Enter the private key in standard PEM key format:\n\n ```\n -----BEGIN PRIVATE KEY-----\n KEY DATA GOES HERE\n -----END PRIVATE KEY-----\n ```\n\nThese steps are what's required on the n8n side. Salesforce recommends setting refresh token policies, session policies, and OAuth policies too:\n\n17. In Salesforce, select **Back to Manage Connected Apps**.\n01. Select **Manage**.\n01. Select **Edit Policies**.\n01. Review the **Refresh Token Policy** field. Salesforce recommends using expire refresh token after 90 days.\n01. In the **Session Policies** section, Salesforce recommends setting **Timeout Value** to 15 minutes.\n01. In the **OAuth Policies** section, select **Admin approved users are pre-authorized for permitted users** for **Permitted Users**, and select **OK**.\n01. Select **Save**.\n01. Select **Manage Profiles**, select the profiles that are pre-authorized to use this connected app, and select **Save**.\n01. Select **Manage Permission Sets** to select the permission sets. Create permission sets if necessary.\n\nRefer to Salesforce's [Create a Connected App in Your Org](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_connected_app.htm) documentation for more information.\n\n## Using OAuth2\n\nTo configure this credential, you'll need a [Salesforce](https://www.salesforce.com/) account.\n\nYou will need to select your **Environment Type**. Choose between **Production** and **Sandbox**.\n\n### Create an External Client App (recommended)\n\nIf you're [self-hosting](../../../../hosting/) n8n, you'll need to configure OAuth2 from scratch by creating an external client app:\n\n1. In n8n, select the **Environment Type** for your connection. Choose the option that best describes your environment from **Production** or **Sandbox**.\n1. Enter your Salesforce **Username**.\n1. Log in to your org in Salesforce.\n1. From **Setup** in Salesforce, enter `App Manager` in the Quick Find box, then select **App Manager**.\n1. On the App Manager page, select **New External Client App**.\n1. Enter the required **Basic Info** for your external client app, including a **Name** and **Contact Email address**.\n1. Under **API (Enable OAuth Settings)**, select **Enable OAuth**.\n1. In the **Callback URL** box, add your n8n OAuth callback URL (for example, `https://your-n8n-instance.com/rest/oauth2-credential/callback`. For n8n Cloud, this will be `https://oauth.n8n.cloud/oauth2/callback`).\n1. In the **OAuth Scopes** section, select these scopes:\n - **Full access (full)**\n - **Perform requests at any time (refresh_token, offline_access)**\n1. In the **Flow Enablement** section, select **Enable Authorization Code and Credentials Flow**.\n1. Under **OAuth Policies**, make sure the following settings are **checked**:\n - **Require Secret for Web Server Flow**\n - **Require Secret for Refresh Token Flow**\n - **Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows**\n1. Select **Save**, then **Continue**.\n1. Copy the **Consumer Key** and add it to your n8n credential as the **Client ID**.\n1. Copy the **Consumer Secret** and add it to your n8n credential as the **Client Secret**.\n\nRefer to Salesforce's [External Client App Basics](https://help.salesforce.com/s/articleView?id=sf.external_client_app_about.htm&type=5) documentation for more information.\n\n### Create a Connected App (legacy)\n\nLegacy method\n\nSalesforce is deprecating Connected Apps. Use External Client Apps instead for new integrations.\n\nIf you're [self-hosting](../../../../hosting/) n8n, you can also configure OAuth2 by creating a connected app:\n\n1. In n8n, select the **Environment Type** for your connection. Choose the option that best describes your environment from **Production** or **Sandbox**.\n1. Enter your Salesforce **Username**.\n1. Log in to your org in Salesforce.\n1. From **Setup** in Salesforce, enter `App Manager` in the Quick Find box, then select **App Manager**.\n1. On the App Manager page, select **New Connected App**.\n1. Enter the required **Basic Info** for your connected app, including a **Name** and **Contact Email address**. Refer to Salesforce's [Configure Basic Connected App Settings](https://help.salesforce.com/s/articleView?id=sf.connected_app_create_basics.htm&type=5) documentation for more information.\n1. Check the box to **Enable OAuth Settings**.\n1. For the **Callback URL**, enter `http://localhost:1717/OauthRedirect`.\n1. Add these **OAuth scopes**:\n - **Full access (full)**\n - **Perform requests at any time (refresh_token, offline_access)**\n1. Make sure the following settings are unchecked:\n - **Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows**\n - **Require Secret for Web Server Flow**\n - **Require Secret for Refresh Token Flow**\n1. Select **Save**, then **Continue**. The **Manage Connected Apps** page should open to the app you just created.\n1. In the **API (Enable OAuth Settings)** section, select **Manage Consumer Details**.\n1. Copy the **Consumer Key** and add it to your n8n credential as the **Client ID**.\n1. Copy the **Consumer Secret** and add it to your n8n credential as the **Client Secret**.\n\nThese steps are what's required on the n8n side. Salesforce recommends setting refresh token policies and session policies, too:\n\n15. In Salesforce, select **Back to Manage Connected Apps**.\n01. Select **Manage**.\n01. Select **Edit Policies**.\n01. Review the **Refresh Token Policy** field. Salesforce recommends using expire refresh token after 90 days.\n01. In the **Session Policies** section, Salesforce recommends setting **Timeout Value** to 15 minutes.\n\nRefer to Salesforce's [Create a Connected App in Your Org](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_connected_app.htm) documentation for more information.\n\n## Common issues\n\n### Connection issues when authenticating with Salesforce from n8n Cloud\n\nIf you encounter connection issues when authenticating with Salesforce from n8n Cloud, you might need to enable a specific system permission in your Salesforce user profiles:\n\n1. In Salesforce, go to **Setup**.\n1. In the **Quick Find** box, search for `Profiles`.\n1. Select the profile used by the user connecting to n8n (for example, System Administrator or the relevant profile).\n1. Click **Edit** or use the new **Profile** interface if it's available.\n1. Locate the **Administrative Permissions** section.\n1. Enable the checkbox for **Approve Connected Apps for Non-Admins**. This checkbox might also appear as **Approve apps connected not installed** depending on your Salesforce language or translation.\n1. Click **Save**.\n\nThis permission isn't enabled by default, even for administrator profiles, and must be manually activated. Without this permission, you might experience authentication failures when trying to connect n8n to Salesforce.\n",
|
|
71509
|
-
"excerpt": "# Salesforce credentials You can use these credentials to authenticate the following nodes: - [Salesforce](../../app-nodes/n8n-nodes-base.salesforce/) - [Salesforce trigger](../../trigger-nodes/n8n-nodes-base.salesforcetrigger/) ## Supported authentication methods - JWT - OAuth2 ## Related resources Refer to [Salesforce's developer documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_intro.htm) for more information about the service. Salesforce...",
|
|
71510
|
-
"sections": [
|
|
71511
|
-
{
|
|
71512
|
-
"title": "Salesforce credentials",
|
|
71513
|
-
"level": 1,
|
|
71514
|
-
"content": "You can use these credentials to authenticate the following nodes:\n\n- [Salesforce](../../app-nodes/n8n-nodes-base.salesforce/)\n- [Salesforce trigger](../../trigger-nodes/n8n-nodes-base.salesforcetrigger/)"
|
|
71515
|
-
}
|
|
71516
|
-
]
|
|
71517
|
-
},
|
|
71518
|
-
"metadata": {
|
|
71519
|
-
"keywords": [
|
|
71520
|
-
"salesforce",
|
|
71521
|
-
"credentials",
|
|
71522
|
-
"supported",
|
|
71523
|
-
"authentication",
|
|
71524
|
-
"methods",
|
|
71525
|
-
"related",
|
|
71526
|
-
"resources",
|
|
71527
|
-
"using",
|
|
71528
|
-
"create",
|
|
71529
|
-
"external",
|
|
71530
|
-
"client",
|
|
71531
|
-
"(recommended)",
|
|
71532
|
-
"connected",
|
|
71533
|
-
"(legacy)",
|
|
71534
|
-
"oauth2",
|
|
71535
|
-
"common",
|
|
71536
|
-
"issues",
|
|
71537
|
-
"connection",
|
|
71538
|
-
"when",
|
|
71539
|
-
"authenticating",
|
|
71540
|
-
"with",
|
|
71541
|
-
"from",
|
|
71542
|
-
"cloud"
|
|
71543
|
-
],
|
|
71544
|
-
"useCases": [],
|
|
71545
|
-
"operations": [],
|
|
71546
|
-
"codeExamples": 2,
|
|
71547
|
-
"complexity": "intermediate",
|
|
71548
|
-
"readingTime": "9 min",
|
|
71549
|
-
"contentLength": 12620,
|
|
71550
|
-
"relatedPages": []
|
|
71551
|
-
},
|
|
71552
|
-
"searchIndex": {
|
|
71553
|
-
"fullText": "salesforce credentials # salesforce credentials\n\nyou can use these credentials to authenticate the following nodes:\n\n- [salesforce](../../app-nodes/n8n-nodes-base.salesforce/)\n- [salesforce trigger](../../trigger-nodes/n8n-nodes-base.salesforcetrigger/)\n\n## supported authentication methods\n\n- jwt\n- oauth2\n\n## related resources\n\nrefer to [salesforce's developer documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_intro.htm) for more information about the service.\n\nsalesforce external client apps\n\nsalesforce is deprecating connected apps in favor of external client apps. both methods work with n8n. if you're creating a new integration, use external client apps. existing connected apps will continue to work.\n\n## using jwt\n\nto configure this credential, you'll need a [salesforce](https://www.salesforce.com/) account and:\n\n- your **environment type** (production or sandbox)\n- a **client id**: generated when you create an external client app or connected app.\n- your salesforce **username**\n- a **private key** for a self-signed digital certificate\n\n### create an external client app (recommended)\n\nto set things up, first you'll create a private key and certificate, then an external client app:\n\n1. in n8n, select the **environment type** for your connection. choose the option that best describes your environment from **production** or **sandbox**.\n1. enter your salesforce **username**.\n1. log in to your org in salesforce.\n1. you'll need a private key and certificate issued by a certification authority. use your own key/cert or use openssl to create a key and a self-signed digital certificate. refer to the salesforce [create a private key and self-signed digital certificate documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_key_and_cert.htm) for instructions on creating your own key and certificate.\n1. from **setup** in salesforce, enter `app manager` in the quick find box, then select **app manager**.\n1. on the app manager page, select **new external client app**.\n1. enter the required **basic info** for your external client app, including a **name** and **contact email address**.\n1. under **api (enable oauth settings)**, select **enable oauth**.\n1. in the **callback url** box, add the callback url: `http://localhost:1717/oauthredirect` (or your n8n instance url if self-hosting).\n1. in the **oauth scopes** section, select these scopes:\n - **full access (full)**\n - **perform requests at any time (refresh_token, offline_access)**\n1. in the **flow enablement** section, select **enable jwt bearer flow**.\n1. select **upload files** and upload the file that contains your digital certificate, such as `server.crt`.\n1. under **oauth policies**, make sure the following settings are **unchecked**:\n - **require secret for web server flow**\n - **require secret for refresh token flow**\n - **require proof key for code exchange (pkce) extension for supported authorization flows**\n1. select **save**, then **continue**.\n1. copy the **consumer key** and add it to your n8n credential as the **client id**.\n1. enter the contents of the private key file in n8n as **private key**.\n - use the multi-line editor in n8n.\n\n - enter the private key in standard pem key format:\n\n ```\n -----begin private key-----\n key data goes here\n -----end private key-----\n ```\n\nrefer to salesforce's [external client app basics](https://help.salesforce.com/s/articleview?id=sf.external_client_app_about.htm&type=5) documentation for more information.\n\n### create a connected app (legacy)\n\nlegacy method\n\nsalesforce is deprecating connected apps. use external client apps instead for new integrations.\n\nto set things up, first you'll create a private key and certificate, then a connected app:\n\n1. in n8n, select the **environment type** for your connection. choose the option that best describes your environment from **production** or **sandbox**.\n1. enter your salesforce **username**.\n1. log in to your org in salesforce.\n1. you'll need a private key and certificate issued by a certification authority. use your own key/cert or use openssl to create a key and a self-signed digital certificate. refer to the salesforce [create a private key and self-signed digital certificate documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_key_and_cert.htm) for instructions on creating your own key and certificate.\n1. from **setup** in salesforce, enter `app manager` in the quick find box, then select **app manager**.\n1. on the app manager page, select **new connected app**.\n1. enter the required **basic info** for your connected app, including a **name** and **contact email address**. refer to salesforce's [configure basic connected app settings](https://help.salesforce.com/s/articleview?id=sf.connected_app_create_basics.htm&type=5) documentation for more information.\n1. check the box to **enable oauth settings**.\n1. for the **callback url**, enter `http://localhost:1717/oauthredirect`.\n1. check the box to **use digital signatures**.\n1. select **choose file** and upload the file that contains your digital certificate, such as `server.crt`.\n1. add these **oauth scopes**:\n - **full access (full)**\n - **perform requests at any time (refresh_token, offline_access)**\n1. select **save**, then **continue**. the **manage connected apps** page should open to the app you just created.\n1. in the **api (enable oauth settings)** section, select **manage consumer details**.\n1. copy the **consumer key** and add it to your n8n credential as the **client id**.\n1. enter the contents of the private key file in n8n as **private key**.\n - use the multi-line editor in n8n.\n\n - enter the private key in standard pem key format:\n\n ```\n -----begin private key-----\n key data goes here\n -----end private key-----\n ```\n\nthese steps are what's required on the n8n side. salesforce recommends setting refresh token policies, session policies, and oauth policies too:\n\n17. in salesforce, select **back to manage connected apps**.\n01. select **manage**.\n01. select **edit policies**.\n01. review the **refresh token policy** field. salesforce recommends using expire refresh token after 90 days.\n01. in the **session policies** section, salesforce recommends setting **timeout value** to 15 minutes.\n01. in the **oauth policies** section, select **admin approved users are pre-authorized for permitted users** for **permitted users**, and select **ok**.\n01. select **save**.\n01. select **manage profiles**, select the profiles that are pre-authorized to use this connected app, and select **save**.\n01. select **manage permission sets** to select the permission sets. create permission sets if necessary.\n\nrefer to salesforce's [create a connected app in your org](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_connected_app.htm) documentation for more information.\n\n## using oauth2\n\nto configure this credential, you'll need a [salesforce](https://www.salesforce.com/) account.\n\nyou will need to select your **environment type**. choose between **production** and **sandbox**.\n\n### create an external client app (recommended)\n\nif you're [self-hosting](../../../../hosting/) n8n, you'll need to configure oauth2 from scratch by creating an external client app:\n\n1. in n8n, select the **environment type** for your connection. choose the option that best describes your environment from **production** or **sandbox**.\n1. enter your salesforce **username**.\n1. log in to your org in salesforce.\n1. from **setup** in salesforce, enter `app manager` in the quick find box, then select **app manager**.\n1. on the app manager page, select **new external client app**.\n1. enter the required **basic info** for your external client app, including a **name** and **contact email address**.\n1. under **api (enable oauth settings)**, select **enable oauth**.\n1. in the **callback url** box, add your n8n oauth callback url (for example, `https://your-n8n-instance.com/rest/oauth2-credential/callback`. for n8n cloud, this will be `https://oauth.n8n.cloud/oauth2/callback`).\n1. in the **oauth scopes** section, select these scopes:\n - **full access (full)**\n - **perform requests at any time (refresh_token, offline_access)**\n1. in the **flow enablement** section, select **enable authorization code and credentials flow**.\n1. under **oauth policies**, make sure the following settings are **checked**:\n - **require secret for web server flow**\n - **require secret for refresh token flow**\n - **require proof key for code exchange (pkce) extension for supported authorization flows**\n1. select **save**, then **continue**.\n1. copy the **consumer key** and add it to your n8n credential as the **client id**.\n1. copy the **consumer secret** and add it to your n8n credential as the **client secret**.\n\nrefer to salesforce's [external client app basics](https://help.salesforce.com/s/articleview?id=sf.external_client_app_about.htm&type=5) documentation for more information.\n\n### create a connected app (legacy)\n\nlegacy method\n\nsalesforce is deprecating connected apps. use external client apps instead for new integrations.\n\nif you're [self-hosting](../../../../hosting/) n8n, you can also configure oauth2 by creating a connected app:\n\n1. in n8n, select the **environment type** for your connection. choose the option that best describes your environment from **production** or **sandbox**.\n1. enter your salesforce **username**.\n1. log in to your org in salesforce.\n1. from **setup** in salesforce, enter `app manager` in the quick find box, then select **app manager**.\n1. on the app manager page, select **new connected app**.\n1. enter the required **basic info** for your connected app, including a **name** and **contact email address**. refer to salesforce's [configure basic connected app settings](https://help.salesforce.com/s/articleview?id=sf.conn",
|
|
71554
|
-
"importantTerms": [
|
|
71555
|
-
"salesforce",
|
|
71556
|
-
"your",
|
|
71557
|
-
"select",
|
|
71558
|
-
"connected",
|
|
71559
|
-
"client",
|
|
71560
|
-
"enter",
|
|
71561
|
-
"oauth",
|
|
71562
|
-
"private",
|
|
71563
|
-
"external",
|
|
71564
|
-
"apps",
|
|
71565
|
-
"create",
|
|
71566
|
-
"https",
|
|
71567
|
-
"certificate",
|
|
71568
|
-
"manager",
|
|
71569
|
-
"enable",
|
|
71570
|
-
"policies",
|
|
71571
|
-
"from",
|
|
71572
|
-
"settings",
|
|
71573
|
-
"environment",
|
|
71574
|
-
"type",
|
|
71575
|
-
"then",
|
|
71576
|
-
"section",
|
|
71577
|
-
"flow",
|
|
71578
|
-
"secret",
|
|
71579
|
-
"manage",
|
|
71580
|
-
"refer",
|
|
71581
|
-
"documentation",
|
|
71582
|
-
"credential",
|
|
71583
|
-
"require",
|
|
71584
|
-
"refresh",
|
|
71585
|
-
"token",
|
|
71586
|
-
"self",
|
|
71587
|
-
"digital",
|
|
71588
|
-
"callback",
|
|
71589
|
-
"full",
|
|
71590
|
-
"consumer",
|
|
71591
|
-
"these",
|
|
71592
|
-
"more",
|
|
71593
|
-
"information",
|
|
71594
|
-
"this",
|
|
71595
|
-
"need",
|
|
71596
|
-
"that",
|
|
71597
|
-
"save",
|
|
71598
|
-
"developer",
|
|
71599
|
-
"configure",
|
|
71600
|
-
"production",
|
|
71601
|
-
"sandbox",
|
|
71602
|
-
"connection",
|
|
71603
|
-
"choose",
|
|
71604
|
-
"page"
|
|
71605
|
-
]
|
|
71606
|
-
}
|
|
71607
|
-
},
|
|
71608
|
-
{
|
|
71609
|
-
"id": "page-0943",
|
|
71610
71518
|
"title": "Rundeck credentials",
|
|
71611
71519
|
"url": "https://docs.n8n.io/integrations/builtin/credentials/rundeck/index.md",
|
|
71612
71520
|
"urlPath": "integrations/builtin/credentials/rundeck/index.md",
|
|
@@ -71664,6 +71572,215 @@
|
|
|
71664
71572
|
]
|
|
71665
71573
|
}
|
|
71666
71574
|
},
|
|
71575
|
+
{
|
|
71576
|
+
"id": "page-0942",
|
|
71577
|
+
"title": "S3 credentials",
|
|
71578
|
+
"url": "https://docs.n8n.io/integrations/builtin/credentials/s3/index.md",
|
|
71579
|
+
"urlPath": "integrations/builtin/credentials/s3/index.md",
|
|
71580
|
+
"category": "other",
|
|
71581
|
+
"subcategory": null,
|
|
71582
|
+
"nodeName": null,
|
|
71583
|
+
"nodeType": null,
|
|
71584
|
+
"content": {
|
|
71585
|
+
"markdown": "# S3 credentials\n\nYou can use these credentials to authenticate the following nodes:\n\n- [S3](../../app-nodes/n8n-nodes-base.s3/)\n\n## Prerequisites\n\nCreate an account on an S3-compatible server. Use the S3 node for generic or non-AWS S3 like:\n\n- [DigitalOcean Spaces](https://www.digitalocean.com/products/spaces)\n- [MinIO](https://min.io/)\n- [Wasabi](https://wasabi.com/)\n\n## Supported authentication methods\n\n- S3 endpoint\n\n## Related resources\n\nRefer to your S3-compatible provider's documentation for more information on the services. For example, refer to [Wasabi's REST API documentation](https://docs.wasabi.com/docs/rest-api-introduction) or [DigitalOcean's Spaces API Reference Documentation](https://docs.digitalocean.com/reference/api/spaces-api/).\n\n## Using S3 endpoint\n\nTo configure this credential, you'll need:\n\n- An **S3 Endpoint**: Enter the URL endpoint for the S3 storage backend.\n- A **Region**: Enter the region for your S3 storage. Some providers call this the \"region slug.\"\n- An **Access Key ID**: Enter the S3 access key your S3 provider uses to access the bucket or space. Some providers call this API keys.\n- A **Secret Access Key**: Enter the secret access key for the **Access Key ID**.\n- **Force Path Style**: When turned on, the connection uses path-style addressing for buckets.\n- **Ignore SSL Issues**: When turned on, n8n will connect even if SSL certificate validation fails.\n\nMore detailed instructions for DigitalOcean Spaces and Wasabi follow. If you're using a different provider, refer to their documentation for more information.\n\n### Using DigitalOcean Spaces\n\nTo configure the credential for use with DigitalOcean spaces:\n\n1. In DigitalOceans, go to the control panel and open **Settings**. Your endpoint should be listed there. Prepend `https://` to that endpoint and enter it as the **S3 Endpoint** in n8n.\n - Your DigitalOceans endpoint depends on the data center region your bucket's in.\n1. For the **Region**, enter the region your bucket's located in, for example, `nyc3`.\n - If you plan to use this credential to create new Spaces, enter `us-east-1` instead.\n1. From your DigitalOceans control panel, go to [**API**](https://cloud.digitalocean.com/account/api/spaces).\n1. Open the **Spaces Keys** tab.\n1. Select **Generate New Key**.\n1. Enter a **Name** for your key, like `n8n integration` and select the checkmark.\n1. Copy the **Key** displayed next to the name and enter this as the **Access Key ID** in n8n.\n1. Copy the **Secret** value and enter this as the **Secret Access Key** in n8n.\n - Refer to [Sharing Access to Buckets with Access Keys](https://docs.digitalocean.com/products/spaces/how-to/manage-access/#access-keys) for more information on generating the key and secret.\n1. Keep the **Force Path Style** toggle turned off unless you want to use subdomain/virtual calling format.\n1. Decide how you want the n8n credential to handle SSL:\n - To respect SSL certificate validation, keep the default of **Ignore SSL Issues** turned off.\n - To connect even if SSL certificate validation fails, turn on **Ignore SSL Issues**.\n\nRefer to DigitalOcean's [Spaces API Reference Documentation](https://docs.digitalocean.com/reference/api/spaces-api/) for more information.\n\n### Using Wasabi\n\nTo configure the credential for use with Wasabi:\n\n1. For the **S3 Endpoint**, enter the service URL for your bucket's region. Start it with `https://`.\n - Refer to [Service URLs for Wasabi's Storage Regions](https://docs.wasabi.com/v1/docs/service-urls-for-wasabis-storage-regions) to identify the correct URL.\n1. For the **Region**, enter the region slug portion of the service URL. For example, if you entered `https://s3.us-east-2.wasabisys.com` as the **S3 Endpoint**, `us-east-2` is the region.\n1. Log into you Wasabi Console as the root user.\n1. Open the **Menu** and select **Access Keys**.\n1. Select **CREATE NEW ACCESS KEY**.\n1. Select whether the key is for the **Root User** or a **Sub-User** and select **CREATE**.\n1. Copy the **Access Key** and enter it in n8n as the **Access Key ID**.\n1. Copy the **Secret Key** and enter it in n8n as the **Secret Access Key**.\n - Refer to [Creating a New Access Key](https://docs.wasabi.com/v1/docs/creating-a-new-access-key) for more information on generating the key and secret.\n1. Wasabi recommends turning on the **Force Path Style** toggle \"because the path-style offers the greatest flexibility in bucket names, avoiding domain name issues.\" Refer to the Wasabi [REST API Introduction](https://docs.wasabi.com/docs/rest-api-introduction) for more information.\n1. Decide how you want the n8n credential to handle SSL:\n - To respect SSL certificate validation, keep the default of **Ignore SSL Issues** turned off.\n - To connect even if SSL certificate validation fails, turn on **Ignore SSL Issues**.\n",
|
|
71586
|
+
"excerpt": "# S3 credentials You can use these credentials to authenticate the following nodes: - [S3](../../app-nodes/n8n-nodes-base.s3/) ## Prerequisites Create an account on an S3-compatible server. Use the S3 node for generic or non-AWS S3 like: - [DigitalOcean Spaces](https://www.digitalocean.com/products/spaces) - [MinIO](https://min.io/) - [Wasabi](https://wasabi.com/) ## Supported authentication methods - S3 endpoint ## Related resources Refer to your S3-compatible provider's documentation...",
|
|
71587
|
+
"sections": [
|
|
71588
|
+
{
|
|
71589
|
+
"title": "S3 credentials",
|
|
71590
|
+
"level": 1,
|
|
71591
|
+
"content": "You can use these credentials to authenticate the following nodes:\n\n- [S3](../../app-nodes/n8n-nodes-base.s3/)"
|
|
71592
|
+
}
|
|
71593
|
+
]
|
|
71594
|
+
},
|
|
71595
|
+
"metadata": {
|
|
71596
|
+
"keywords": [
|
|
71597
|
+
"credentials",
|
|
71598
|
+
"prerequisites",
|
|
71599
|
+
"supported",
|
|
71600
|
+
"authentication",
|
|
71601
|
+
"methods",
|
|
71602
|
+
"related",
|
|
71603
|
+
"resources",
|
|
71604
|
+
"using",
|
|
71605
|
+
"endpoint",
|
|
71606
|
+
"digitalocean",
|
|
71607
|
+
"spaces",
|
|
71608
|
+
"wasabi"
|
|
71609
|
+
],
|
|
71610
|
+
"useCases": [],
|
|
71611
|
+
"operations": [],
|
|
71612
|
+
"codeExamples": 0,
|
|
71613
|
+
"complexity": "beginner",
|
|
71614
|
+
"readingTime": "4 min",
|
|
71615
|
+
"contentLength": 4817,
|
|
71616
|
+
"relatedPages": []
|
|
71617
|
+
},
|
|
71618
|
+
"searchIndex": {
|
|
71619
|
+
"fullText": "s3 credentials # s3 credentials\n\nyou can use these credentials to authenticate the following nodes:\n\n- [s3](../../app-nodes/n8n-nodes-base.s3/)\n\n## prerequisites\n\ncreate an account on an s3-compatible server. use the s3 node for generic or non-aws s3 like:\n\n- [digitalocean spaces](https://www.digitalocean.com/products/spaces)\n- [minio](https://min.io/)\n- [wasabi](https://wasabi.com/)\n\n## supported authentication methods\n\n- s3 endpoint\n\n## related resources\n\nrefer to your s3-compatible provider's documentation for more information on the services. for example, refer to [wasabi's rest api documentation](https://docs.wasabi.com/docs/rest-api-introduction) or [digitalocean's spaces api reference documentation](https://docs.digitalocean.com/reference/api/spaces-api/).\n\n## using s3 endpoint\n\nto configure this credential, you'll need:\n\n- an **s3 endpoint**: enter the url endpoint for the s3 storage backend.\n- a **region**: enter the region for your s3 storage. some providers call this the \"region slug.\"\n- an **access key id**: enter the s3 access key your s3 provider uses to access the bucket or space. some providers call this api keys.\n- a **secret access key**: enter the secret access key for the **access key id**.\n- **force path style**: when turned on, the connection uses path-style addressing for buckets.\n- **ignore ssl issues**: when turned on, n8n will connect even if ssl certificate validation fails.\n\nmore detailed instructions for digitalocean spaces and wasabi follow. if you're using a different provider, refer to their documentation for more information.\n\n### using digitalocean spaces\n\nto configure the credential for use with digitalocean spaces:\n\n1. in digitaloceans, go to the control panel and open **settings**. your endpoint should be listed there. prepend `https://` to that endpoint and enter it as the **s3 endpoint** in n8n.\n - your digitaloceans endpoint depends on the data center region your bucket's in.\n1. for the **region**, enter the region your bucket's located in, for example, `nyc3`.\n - if you plan to use this credential to create new spaces, enter `us-east-1` instead.\n1. from your digitaloceans control panel, go to [**api**](https://cloud.digitalocean.com/account/api/spaces).\n1. open the **spaces keys** tab.\n1. select **generate new key**.\n1. enter a **name** for your key, like `n8n integration` and select the checkmark.\n1. copy the **key** displayed next to the name and enter this as the **access key id** in n8n.\n1. copy the **secret** value and enter this as the **secret access key** in n8n.\n - refer to [sharing access to buckets with access keys](https://docs.digitalocean.com/products/spaces/how-to/manage-access/#access-keys) for more information on generating the key and secret.\n1. keep the **force path style** toggle turned off unless you want to use subdomain/virtual calling format.\n1. decide how you want the n8n credential to handle ssl:\n - to respect ssl certificate validation, keep the default of **ignore ssl issues** turned off.\n - to connect even if ssl certificate validation fails, turn on **ignore ssl issues**.\n\nrefer to digitalocean's [spaces api reference documentation](https://docs.digitalocean.com/reference/api/spaces-api/) for more information.\n\n### using wasabi\n\nto configure the credential for use with wasabi:\n\n1. for the **s3 endpoint**, enter the service url for your bucket's region. start it with `https://`.\n - refer to [service urls for wasabi's storage regions](https://docs.wasabi.com/v1/docs/service-urls-for-wasabis-storage-regions) to identify the correct url.\n1. for the **region**, enter the region slug portion of the service url. for example, if you entered `https://s3.us-east-2.wasabisys.com` as the **s3 endpoint**, `us-east-2` is the region.\n1. log into you wasabi console as the root user.\n1. open the **menu** and select **access keys**.\n1. select **create new access key**.\n1. select whether the key is for the **root user** or a **sub-user** and select **create**.\n1. copy the **access key** and enter it in n8n as the **access key id**.\n1. copy the **secret key** and enter it in n8n as the **secret access key**.\n - refer to [creating a new access key](https://docs.wasabi.com/v1/docs/creating-a-new-access-key) for more information on generating the key and secret.\n1. wasabi recommends turning on the **force path style** toggle \"because the path-style offers the greatest flexibility in bucket names, avoiding domain name issues.\" refer to the wasabi [rest api introduction](https://docs.wasabi.com/docs/rest-api-introduction) for more information.\n1. decide how you want the n8n credential to handle ssl:\n - to respect ssl certificate validation, keep the default of **ignore ssl issues** turned off.\n - to connect even if ssl certificate validation fails, turn on **ignore ssl issues**.\n s3 credentials",
|
|
71620
|
+
"importantTerms": [
|
|
71621
|
+
"access",
|
|
71622
|
+
"https",
|
|
71623
|
+
"wasabi",
|
|
71624
|
+
"enter",
|
|
71625
|
+
"spaces",
|
|
71626
|
+
"digitalocean",
|
|
71627
|
+
"docs",
|
|
71628
|
+
"endpoint",
|
|
71629
|
+
"your",
|
|
71630
|
+
"region",
|
|
71631
|
+
"refer",
|
|
71632
|
+
"secret",
|
|
71633
|
+
"more",
|
|
71634
|
+
"information",
|
|
71635
|
+
"this",
|
|
71636
|
+
"credential",
|
|
71637
|
+
"issues",
|
|
71638
|
+
"select",
|
|
71639
|
+
"documentation",
|
|
71640
|
+
"bucket",
|
|
71641
|
+
"keys",
|
|
71642
|
+
"path",
|
|
71643
|
+
"style",
|
|
71644
|
+
"turned",
|
|
71645
|
+
"ignore",
|
|
71646
|
+
"certificate",
|
|
71647
|
+
"validation",
|
|
71648
|
+
"credentials",
|
|
71649
|
+
"create",
|
|
71650
|
+
"rest",
|
|
71651
|
+
"reference",
|
|
71652
|
+
"using",
|
|
71653
|
+
"storage",
|
|
71654
|
+
"with",
|
|
71655
|
+
"copy",
|
|
71656
|
+
"service",
|
|
71657
|
+
"nodes",
|
|
71658
|
+
"provider",
|
|
71659
|
+
"example",
|
|
71660
|
+
"introduction",
|
|
71661
|
+
"configure",
|
|
71662
|
+
"force",
|
|
71663
|
+
"connect",
|
|
71664
|
+
"even",
|
|
71665
|
+
"fails",
|
|
71666
|
+
"digitaloceans",
|
|
71667
|
+
"open",
|
|
71668
|
+
"east",
|
|
71669
|
+
"name",
|
|
71670
|
+
"keep"
|
|
71671
|
+
]
|
|
71672
|
+
}
|
|
71673
|
+
},
|
|
71674
|
+
{
|
|
71675
|
+
"id": "page-0943",
|
|
71676
|
+
"title": "Salesforce credentials",
|
|
71677
|
+
"url": "https://docs.n8n.io/integrations/builtin/credentials/salesforce/index.md",
|
|
71678
|
+
"urlPath": "integrations/builtin/credentials/salesforce/index.md",
|
|
71679
|
+
"category": "other",
|
|
71680
|
+
"subcategory": null,
|
|
71681
|
+
"nodeName": null,
|
|
71682
|
+
"nodeType": null,
|
|
71683
|
+
"content": {
|
|
71684
|
+
"markdown": "# Salesforce credentials\n\nYou can use these credentials to authenticate the following nodes:\n\n- [Salesforce](../../app-nodes/n8n-nodes-base.salesforce/)\n- [Salesforce trigger](../../trigger-nodes/n8n-nodes-base.salesforcetrigger/)\n\n## Supported authentication methods\n\n- JWT\n- OAuth2\n\n## Related resources\n\nRefer to [Salesforce's developer documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_intro.htm) for more information about the service.\n\nSalesforce External Client Apps\n\nSalesforce is deprecating Connected Apps in favor of External Client Apps. Both methods work with n8n. If you're creating a new integration, use External Client Apps. Existing Connected Apps will continue to work.\n\n## Using JWT\n\nTo configure this credential, you'll need a [Salesforce](https://www.salesforce.com/) account and:\n\n- Your **Environment Type** (Production or Sandbox)\n- A **Client ID**: Generated when you create an external client app or connected app.\n- Your Salesforce **Username**\n- A **Private Key** for a self-signed digital certificate\n\n### Create an External Client App (recommended)\n\nTo set things up, first you'll create a private key and certificate, then an external client app:\n\n1. In n8n, select the **Environment Type** for your connection. Choose the option that best describes your environment from **Production** or **Sandbox**.\n1. Enter your Salesforce **Username**.\n1. Log in to your org in Salesforce.\n1. You'll need a private key and certificate issued by a certification authority. Use your own key/cert or use OpenSSL to create a key and a self-signed digital certificate. Refer to the Salesforce [Create a Private Key and Self-Signed Digital Certificate documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_key_and_cert.htm) for instructions on creating your own key and certificate.\n1. From **Setup** in Salesforce, enter `App Manager` in the Quick Find box, then select **App Manager**.\n1. On the App Manager page, select **New External Client App**.\n1. Enter the required **Basic Info** for your external client app, including a **Name** and **Contact Email address**.\n1. Under **API (Enable OAuth Settings)**, select **Enable OAuth**.\n1. In the **Callback URL** box, add the callback URL: `http://localhost:1717/OauthRedirect` (or your n8n instance URL if self-hosting).\n1. In the **OAuth Scopes** section, select these scopes:\n - **Full access (full)**\n - **Perform requests at any time (refresh_token, offline_access)**\n1. In the **Flow Enablement** section, select **Enable JWT Bearer Flow**.\n1. Select **Upload Files** and upload the file that contains your digital certificate, such as `server.crt`.\n1. Under **OAuth Policies**, make sure the following settings are **unchecked**:\n - **Require Secret for Web Server Flow**\n - **Require Secret for Refresh Token Flow**\n - **Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows**\n1. Select **Save**, then **Continue**.\n1. Copy the **Consumer Key** and add it to your n8n credential as the **Client ID**.\n1. Enter the contents of the private key file in n8n as **Private Key**.\n - Use the multi-line editor in n8n.\n\n - Enter the private key in standard PEM key format:\n\n ```\n -----BEGIN PRIVATE KEY-----\n KEY DATA GOES HERE\n -----END PRIVATE KEY-----\n ```\n\nRefer to Salesforce's [External Client App Basics](https://help.salesforce.com/s/articleView?id=sf.external_client_app_about.htm&type=5) documentation for more information.\n\n### Create a Connected App (legacy)\n\nLegacy method\n\nSalesforce is deprecating Connected Apps. Use External Client Apps instead for new integrations.\n\nTo set things up, first you'll create a private key and certificate, then a connected app:\n\n1. In n8n, select the **Environment Type** for your connection. Choose the option that best describes your environment from **Production** or **Sandbox**.\n1. Enter your Salesforce **Username**.\n1. Log in to your org in Salesforce.\n1. You'll need a private key and certificate issued by a certification authority. Use your own key/cert or use OpenSSL to create a key and a self-signed digital certificate. Refer to the Salesforce [Create a Private Key and Self-Signed Digital Certificate documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_key_and_cert.htm) for instructions on creating your own key and certificate.\n1. From **Setup** in Salesforce, enter `App Manager` in the Quick Find box, then select **App Manager**.\n1. On the App Manager page, select **New Connected App**.\n1. Enter the required **Basic Info** for your connected app, including a **Name** and **Contact Email address**. Refer to Salesforce's [Configure Basic Connected App Settings](https://help.salesforce.com/s/articleView?id=sf.connected_app_create_basics.htm&type=5) documentation for more information.\n1. Check the box to **Enable OAuth Settings**.\n1. For the **Callback URL**, enter `http://localhost:1717/OauthRedirect`.\n1. Check the box to **Use digital signatures**.\n1. Select **Choose File** and upload the file that contains your digital certificate, such as `server.crt`.\n1. Add these **OAuth scopes**:\n - **Full access (full)**\n - **Perform requests at any time (refresh_token, offline_access)**\n1. Select **Save**, then **Continue**. The **Manage Connected Apps** page should open to the app you just created.\n1. In the **API (Enable OAuth Settings)** section, select **Manage Consumer Details**.\n1. Copy the **Consumer Key** and add it to your n8n credential as the **Client ID**.\n1. Enter the contents of the private key file in n8n as **Private Key**.\n - Use the multi-line editor in n8n.\n\n - Enter the private key in standard PEM key format:\n\n ```\n -----BEGIN PRIVATE KEY-----\n KEY DATA GOES HERE\n -----END PRIVATE KEY-----\n ```\n\nThese steps are what's required on the n8n side. Salesforce recommends setting refresh token policies, session policies, and OAuth policies too:\n\n17. In Salesforce, select **Back to Manage Connected Apps**.\n01. Select **Manage**.\n01. Select **Edit Policies**.\n01. Review the **Refresh Token Policy** field. Salesforce recommends using expire refresh token after 90 days.\n01. In the **Session Policies** section, Salesforce recommends setting **Timeout Value** to 15 minutes.\n01. In the **OAuth Policies** section, select **Admin approved users are pre-authorized for permitted users** for **Permitted Users**, and select **OK**.\n01. Select **Save**.\n01. Select **Manage Profiles**, select the profiles that are pre-authorized to use this connected app, and select **Save**.\n01. Select **Manage Permission Sets** to select the permission sets. Create permission sets if necessary.\n\nRefer to Salesforce's [Create a Connected App in Your Org](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_connected_app.htm) documentation for more information.\n\n## Using OAuth2\n\nTo configure this credential, you'll need a [Salesforce](https://www.salesforce.com/) account.\n\nYou will need to select your **Environment Type**. Choose between **Production** and **Sandbox**.\n\n### Create an External Client App (recommended)\n\nIf you're [self-hosting](../../../../hosting/) n8n, you'll need to configure OAuth2 from scratch by creating an external client app:\n\n1. In n8n, select the **Environment Type** for your connection. Choose the option that best describes your environment from **Production** or **Sandbox**.\n1. Enter your Salesforce **Username**.\n1. Log in to your org in Salesforce.\n1. From **Setup** in Salesforce, enter `App Manager` in the Quick Find box, then select **App Manager**.\n1. On the App Manager page, select **New External Client App**.\n1. Enter the required **Basic Info** for your external client app, including a **Name** and **Contact Email address**.\n1. Under **API (Enable OAuth Settings)**, select **Enable OAuth**.\n1. In the **Callback URL** box, add your n8n OAuth callback URL (for example, `https://your-n8n-instance.com/rest/oauth2-credential/callback`. For n8n Cloud, this will be `https://oauth.n8n.cloud/oauth2/callback`).\n1. In the **OAuth Scopes** section, select these scopes:\n - **Full access (full)**\n - **Perform requests at any time (refresh_token, offline_access)**\n1. In the **Flow Enablement** section, select **Enable Authorization Code and Credentials Flow**.\n1. Under **OAuth Policies**, make sure the following settings are **checked**:\n - **Require Secret for Web Server Flow**\n - **Require Secret for Refresh Token Flow**\n - **Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows**\n1. Select **Save**, then **Continue**.\n1. Copy the **Consumer Key** and add it to your n8n credential as the **Client ID**.\n1. Copy the **Consumer Secret** and add it to your n8n credential as the **Client Secret**.\n\nRefer to Salesforce's [External Client App Basics](https://help.salesforce.com/s/articleView?id=sf.external_client_app_about.htm&type=5) documentation for more information.\n\n### Create a Connected App (legacy)\n\nLegacy method\n\nSalesforce is deprecating Connected Apps. Use External Client Apps instead for new integrations.\n\nIf you're [self-hosting](../../../../hosting/) n8n, you can also configure OAuth2 by creating a connected app:\n\n1. In n8n, select the **Environment Type** for your connection. Choose the option that best describes your environment from **Production** or **Sandbox**.\n1. Enter your Salesforce **Username**.\n1. Log in to your org in Salesforce.\n1. From **Setup** in Salesforce, enter `App Manager` in the Quick Find box, then select **App Manager**.\n1. On the App Manager page, select **New Connected App**.\n1. Enter the required **Basic Info** for your connected app, including a **Name** and **Contact Email address**. Refer to Salesforce's [Configure Basic Connected App Settings](https://help.salesforce.com/s/articleView?id=sf.connected_app_create_basics.htm&type=5) documentation for more information.\n1. Check the box to **Enable OAuth Settings**.\n1. For the **Callback URL**, enter `http://localhost:1717/OauthRedirect`.\n1. Add these **OAuth scopes**:\n - **Full access (full)**\n - **Perform requests at any time (refresh_token, offline_access)**\n1. Make sure the following settings are unchecked:\n - **Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows**\n - **Require Secret for Web Server Flow**\n - **Require Secret for Refresh Token Flow**\n1. Select **Save**, then **Continue**. The **Manage Connected Apps** page should open to the app you just created.\n1. In the **API (Enable OAuth Settings)** section, select **Manage Consumer Details**.\n1. Copy the **Consumer Key** and add it to your n8n credential as the **Client ID**.\n1. Copy the **Consumer Secret** and add it to your n8n credential as the **Client Secret**.\n\nThese steps are what's required on the n8n side. Salesforce recommends setting refresh token policies and session policies, too:\n\n15. In Salesforce, select **Back to Manage Connected Apps**.\n01. Select **Manage**.\n01. Select **Edit Policies**.\n01. Review the **Refresh Token Policy** field. Salesforce recommends using expire refresh token after 90 days.\n01. In the **Session Policies** section, Salesforce recommends setting **Timeout Value** to 15 minutes.\n\nRefer to Salesforce's [Create a Connected App in Your Org](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_connected_app.htm) documentation for more information.\n\n## Common issues\n\n### Connection issues when authenticating with Salesforce from n8n Cloud\n\nIf you encounter connection issues when authenticating with Salesforce from n8n Cloud, you might need to enable a specific system permission in your Salesforce user profiles:\n\n1. In Salesforce, go to **Setup**.\n1. In the **Quick Find** box, search for `Profiles`.\n1. Select the profile used by the user connecting to n8n (for example, System Administrator or the relevant profile).\n1. Click **Edit** or use the new **Profile** interface if it's available.\n1. Locate the **Administrative Permissions** section.\n1. Enable the checkbox for **Approve Connected Apps for Non-Admins**. This checkbox might also appear as **Approve apps connected not installed** depending on your Salesforce language or translation.\n1. Click **Save**.\n\nThis permission isn't enabled by default, even for administrator profiles, and must be manually activated. Without this permission, you might experience authentication failures when trying to connect n8n to Salesforce.\n",
|
|
71685
|
+
"excerpt": "# Salesforce credentials You can use these credentials to authenticate the following nodes: - [Salesforce](../../app-nodes/n8n-nodes-base.salesforce/) - [Salesforce trigger](../../trigger-nodes/n8n-nodes-base.salesforcetrigger/) ## Supported authentication methods - JWT - OAuth2 ## Related resources Refer to [Salesforce's developer documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_intro.htm) for more information about the service. Salesforce...",
|
|
71686
|
+
"sections": [
|
|
71687
|
+
{
|
|
71688
|
+
"title": "Salesforce credentials",
|
|
71689
|
+
"level": 1,
|
|
71690
|
+
"content": "You can use these credentials to authenticate the following nodes:\n\n- [Salesforce](../../app-nodes/n8n-nodes-base.salesforce/)\n- [Salesforce trigger](../../trigger-nodes/n8n-nodes-base.salesforcetrigger/)"
|
|
71691
|
+
}
|
|
71692
|
+
]
|
|
71693
|
+
},
|
|
71694
|
+
"metadata": {
|
|
71695
|
+
"keywords": [
|
|
71696
|
+
"salesforce",
|
|
71697
|
+
"credentials",
|
|
71698
|
+
"supported",
|
|
71699
|
+
"authentication",
|
|
71700
|
+
"methods",
|
|
71701
|
+
"related",
|
|
71702
|
+
"resources",
|
|
71703
|
+
"using",
|
|
71704
|
+
"create",
|
|
71705
|
+
"external",
|
|
71706
|
+
"client",
|
|
71707
|
+
"(recommended)",
|
|
71708
|
+
"connected",
|
|
71709
|
+
"(legacy)",
|
|
71710
|
+
"oauth2",
|
|
71711
|
+
"common",
|
|
71712
|
+
"issues",
|
|
71713
|
+
"connection",
|
|
71714
|
+
"when",
|
|
71715
|
+
"authenticating",
|
|
71716
|
+
"with",
|
|
71717
|
+
"from",
|
|
71718
|
+
"cloud"
|
|
71719
|
+
],
|
|
71720
|
+
"useCases": [],
|
|
71721
|
+
"operations": [],
|
|
71722
|
+
"codeExamples": 2,
|
|
71723
|
+
"complexity": "intermediate",
|
|
71724
|
+
"readingTime": "9 min",
|
|
71725
|
+
"contentLength": 12620,
|
|
71726
|
+
"relatedPages": []
|
|
71727
|
+
},
|
|
71728
|
+
"searchIndex": {
|
|
71729
|
+
"fullText": "salesforce credentials # salesforce credentials\n\nyou can use these credentials to authenticate the following nodes:\n\n- [salesforce](../../app-nodes/n8n-nodes-base.salesforce/)\n- [salesforce trigger](../../trigger-nodes/n8n-nodes-base.salesforcetrigger/)\n\n## supported authentication methods\n\n- jwt\n- oauth2\n\n## related resources\n\nrefer to [salesforce's developer documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_intro.htm) for more information about the service.\n\nsalesforce external client apps\n\nsalesforce is deprecating connected apps in favor of external client apps. both methods work with n8n. if you're creating a new integration, use external client apps. existing connected apps will continue to work.\n\n## using jwt\n\nto configure this credential, you'll need a [salesforce](https://www.salesforce.com/) account and:\n\n- your **environment type** (production or sandbox)\n- a **client id**: generated when you create an external client app or connected app.\n- your salesforce **username**\n- a **private key** for a self-signed digital certificate\n\n### create an external client app (recommended)\n\nto set things up, first you'll create a private key and certificate, then an external client app:\n\n1. in n8n, select the **environment type** for your connection. choose the option that best describes your environment from **production** or **sandbox**.\n1. enter your salesforce **username**.\n1. log in to your org in salesforce.\n1. you'll need a private key and certificate issued by a certification authority. use your own key/cert or use openssl to create a key and a self-signed digital certificate. refer to the salesforce [create a private key and self-signed digital certificate documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_key_and_cert.htm) for instructions on creating your own key and certificate.\n1. from **setup** in salesforce, enter `app manager` in the quick find box, then select **app manager**.\n1. on the app manager page, select **new external client app**.\n1. enter the required **basic info** for your external client app, including a **name** and **contact email address**.\n1. under **api (enable oauth settings)**, select **enable oauth**.\n1. in the **callback url** box, add the callback url: `http://localhost:1717/oauthredirect` (or your n8n instance url if self-hosting).\n1. in the **oauth scopes** section, select these scopes:\n - **full access (full)**\n - **perform requests at any time (refresh_token, offline_access)**\n1. in the **flow enablement** section, select **enable jwt bearer flow**.\n1. select **upload files** and upload the file that contains your digital certificate, such as `server.crt`.\n1. under **oauth policies**, make sure the following settings are **unchecked**:\n - **require secret for web server flow**\n - **require secret for refresh token flow**\n - **require proof key for code exchange (pkce) extension for supported authorization flows**\n1. select **save**, then **continue**.\n1. copy the **consumer key** and add it to your n8n credential as the **client id**.\n1. enter the contents of the private key file in n8n as **private key**.\n - use the multi-line editor in n8n.\n\n - enter the private key in standard pem key format:\n\n ```\n -----begin private key-----\n key data goes here\n -----end private key-----\n ```\n\nrefer to salesforce's [external client app basics](https://help.salesforce.com/s/articleview?id=sf.external_client_app_about.htm&type=5) documentation for more information.\n\n### create a connected app (legacy)\n\nlegacy method\n\nsalesforce is deprecating connected apps. use external client apps instead for new integrations.\n\nto set things up, first you'll create a private key and certificate, then a connected app:\n\n1. in n8n, select the **environment type** for your connection. choose the option that best describes your environment from **production** or **sandbox**.\n1. enter your salesforce **username**.\n1. log in to your org in salesforce.\n1. you'll need a private key and certificate issued by a certification authority. use your own key/cert or use openssl to create a key and a self-signed digital certificate. refer to the salesforce [create a private key and self-signed digital certificate documentation](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_key_and_cert.htm) for instructions on creating your own key and certificate.\n1. from **setup** in salesforce, enter `app manager` in the quick find box, then select **app manager**.\n1. on the app manager page, select **new connected app**.\n1. enter the required **basic info** for your connected app, including a **name** and **contact email address**. refer to salesforce's [configure basic connected app settings](https://help.salesforce.com/s/articleview?id=sf.connected_app_create_basics.htm&type=5) documentation for more information.\n1. check the box to **enable oauth settings**.\n1. for the **callback url**, enter `http://localhost:1717/oauthredirect`.\n1. check the box to **use digital signatures**.\n1. select **choose file** and upload the file that contains your digital certificate, such as `server.crt`.\n1. add these **oauth scopes**:\n - **full access (full)**\n - **perform requests at any time (refresh_token, offline_access)**\n1. select **save**, then **continue**. the **manage connected apps** page should open to the app you just created.\n1. in the **api (enable oauth settings)** section, select **manage consumer details**.\n1. copy the **consumer key** and add it to your n8n credential as the **client id**.\n1. enter the contents of the private key file in n8n as **private key**.\n - use the multi-line editor in n8n.\n\n - enter the private key in standard pem key format:\n\n ```\n -----begin private key-----\n key data goes here\n -----end private key-----\n ```\n\nthese steps are what's required on the n8n side. salesforce recommends setting refresh token policies, session policies, and oauth policies too:\n\n17. in salesforce, select **back to manage connected apps**.\n01. select **manage**.\n01. select **edit policies**.\n01. review the **refresh token policy** field. salesforce recommends using expire refresh token after 90 days.\n01. in the **session policies** section, salesforce recommends setting **timeout value** to 15 minutes.\n01. in the **oauth policies** section, select **admin approved users are pre-authorized for permitted users** for **permitted users**, and select **ok**.\n01. select **save**.\n01. select **manage profiles**, select the profiles that are pre-authorized to use this connected app, and select **save**.\n01. select **manage permission sets** to select the permission sets. create permission sets if necessary.\n\nrefer to salesforce's [create a connected app in your org](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_connected_app.htm) documentation for more information.\n\n## using oauth2\n\nto configure this credential, you'll need a [salesforce](https://www.salesforce.com/) account.\n\nyou will need to select your **environment type**. choose between **production** and **sandbox**.\n\n### create an external client app (recommended)\n\nif you're [self-hosting](../../../../hosting/) n8n, you'll need to configure oauth2 from scratch by creating an external client app:\n\n1. in n8n, select the **environment type** for your connection. choose the option that best describes your environment from **production** or **sandbox**.\n1. enter your salesforce **username**.\n1. log in to your org in salesforce.\n1. from **setup** in salesforce, enter `app manager` in the quick find box, then select **app manager**.\n1. on the app manager page, select **new external client app**.\n1. enter the required **basic info** for your external client app, including a **name** and **contact email address**.\n1. under **api (enable oauth settings)**, select **enable oauth**.\n1. in the **callback url** box, add your n8n oauth callback url (for example, `https://your-n8n-instance.com/rest/oauth2-credential/callback`. for n8n cloud, this will be `https://oauth.n8n.cloud/oauth2/callback`).\n1. in the **oauth scopes** section, select these scopes:\n - **full access (full)**\n - **perform requests at any time (refresh_token, offline_access)**\n1. in the **flow enablement** section, select **enable authorization code and credentials flow**.\n1. under **oauth policies**, make sure the following settings are **checked**:\n - **require secret for web server flow**\n - **require secret for refresh token flow**\n - **require proof key for code exchange (pkce) extension for supported authorization flows**\n1. select **save**, then **continue**.\n1. copy the **consumer key** and add it to your n8n credential as the **client id**.\n1. copy the **consumer secret** and add it to your n8n credential as the **client secret**.\n\nrefer to salesforce's [external client app basics](https://help.salesforce.com/s/articleview?id=sf.external_client_app_about.htm&type=5) documentation for more information.\n\n### create a connected app (legacy)\n\nlegacy method\n\nsalesforce is deprecating connected apps. use external client apps instead for new integrations.\n\nif you're [self-hosting](../../../../hosting/) n8n, you can also configure oauth2 by creating a connected app:\n\n1. in n8n, select the **environment type** for your connection. choose the option that best describes your environment from **production** or **sandbox**.\n1. enter your salesforce **username**.\n1. log in to your org in salesforce.\n1. from **setup** in salesforce, enter `app manager` in the quick find box, then select **app manager**.\n1. on the app manager page, select **new connected app**.\n1. enter the required **basic info** for your connected app, including a **name** and **contact email address**. refer to salesforce's [configure basic connected app settings](https://help.salesforce.com/s/articleview?id=sf.conn",
|
|
71730
|
+
"importantTerms": [
|
|
71731
|
+
"salesforce",
|
|
71732
|
+
"your",
|
|
71733
|
+
"select",
|
|
71734
|
+
"connected",
|
|
71735
|
+
"client",
|
|
71736
|
+
"enter",
|
|
71737
|
+
"oauth",
|
|
71738
|
+
"private",
|
|
71739
|
+
"external",
|
|
71740
|
+
"apps",
|
|
71741
|
+
"create",
|
|
71742
|
+
"https",
|
|
71743
|
+
"certificate",
|
|
71744
|
+
"manager",
|
|
71745
|
+
"enable",
|
|
71746
|
+
"policies",
|
|
71747
|
+
"from",
|
|
71748
|
+
"settings",
|
|
71749
|
+
"environment",
|
|
71750
|
+
"type",
|
|
71751
|
+
"then",
|
|
71752
|
+
"section",
|
|
71753
|
+
"flow",
|
|
71754
|
+
"secret",
|
|
71755
|
+
"manage",
|
|
71756
|
+
"refer",
|
|
71757
|
+
"documentation",
|
|
71758
|
+
"credential",
|
|
71759
|
+
"require",
|
|
71760
|
+
"refresh",
|
|
71761
|
+
"token",
|
|
71762
|
+
"self",
|
|
71763
|
+
"digital",
|
|
71764
|
+
"callback",
|
|
71765
|
+
"full",
|
|
71766
|
+
"consumer",
|
|
71767
|
+
"these",
|
|
71768
|
+
"more",
|
|
71769
|
+
"information",
|
|
71770
|
+
"this",
|
|
71771
|
+
"need",
|
|
71772
|
+
"that",
|
|
71773
|
+
"save",
|
|
71774
|
+
"developer",
|
|
71775
|
+
"configure",
|
|
71776
|
+
"production",
|
|
71777
|
+
"sandbox",
|
|
71778
|
+
"connection",
|
|
71779
|
+
"choose",
|
|
71780
|
+
"page"
|
|
71781
|
+
]
|
|
71782
|
+
}
|
|
71783
|
+
},
|
|
71667
71784
|
{
|
|
71668
71785
|
"id": "page-0944",
|
|
71669
71786
|
"title": "Salesmate credentials",
|
|
@@ -87233,58 +87350,6 @@
|
|
|
87233
87350
|
},
|
|
87234
87351
|
{
|
|
87235
87352
|
"id": "page-1196",
|
|
87236
|
-
"title": "Download workflows",
|
|
87237
|
-
"url": "https://docs.n8n.io/manage-cloud/download-workflows/index.md",
|
|
87238
|
-
"urlPath": "manage-cloud/download-workflows/index.md",
|
|
87239
|
-
"category": "other",
|
|
87240
|
-
"subcategory": null,
|
|
87241
|
-
"nodeName": null,
|
|
87242
|
-
"nodeType": null,
|
|
87243
|
-
"content": {
|
|
87244
|
-
"markdown": "# Download workflows\n\nn8n Cloud instance owners can download workflows from the most recent backup.\n\nYou can do this with the [Cloud admin dashboard](../cloud-admin-dashboard/).\n\n## How to download workflows\n\n1. [Log in to n8n](https://app.n8n.cloud/magic-link).\n1. Select **Admin Dashboard** to open the dashboard.\n1. In the **Manage** section, select the **Export** tab.\n1. Select **Download Workflows**.\n\n## Accessing workflows after your free trial\n\nYou have **90 days** to download your workflows after your free trial ends. After that, all workflows will be **permanently deleted** and are unrecoverable.\n",
|
|
87245
|
-
"excerpt": "# Download workflows n8n Cloud instance owners can download workflows from the most recent backup. You can do this with the [Cloud admin dashboard](../cloud-admin-dashboard/). ## How to download workflows 1. [Log in to n8n](https://app.n8n.cloud/magic-link). 1. Select **Admin Dashboard** to open the dashboard. 1. In the **Manage** section, select the **Export** tab. 1. Select **Download Workflows**. ## Accessing workflows after your free trial You have **90 days** to download your workflow...",
|
|
87246
|
-
"sections": [
|
|
87247
|
-
{
|
|
87248
|
-
"title": "Download workflows",
|
|
87249
|
-
"level": 1,
|
|
87250
|
-
"content": "n8n Cloud instance owners can download workflows from the most recent backup.\n\nYou can do this with the [Cloud admin dashboard](../cloud-admin-dashboard/)."
|
|
87251
|
-
}
|
|
87252
|
-
]
|
|
87253
|
-
},
|
|
87254
|
-
"metadata": {
|
|
87255
|
-
"keywords": [
|
|
87256
|
-
"download",
|
|
87257
|
-
"workflows",
|
|
87258
|
-
"accessing",
|
|
87259
|
-
"after",
|
|
87260
|
-
"your",
|
|
87261
|
-
"free",
|
|
87262
|
-
"trial"
|
|
87263
|
-
],
|
|
87264
|
-
"useCases": [],
|
|
87265
|
-
"operations": [],
|
|
87266
|
-
"codeExamples": 0,
|
|
87267
|
-
"complexity": "beginner",
|
|
87268
|
-
"readingTime": "1 min",
|
|
87269
|
-
"contentLength": 611,
|
|
87270
|
-
"relatedPages": []
|
|
87271
|
-
},
|
|
87272
|
-
"searchIndex": {
|
|
87273
|
-
"fullText": "download workflows # download workflows\n\nn8n cloud instance owners can download workflows from the most recent backup.\n\nyou can do this with the [cloud admin dashboard](../cloud-admin-dashboard/).\n\n## how to download workflows\n\n1. [log in to n8n](https://app.n8n.cloud/magic-link).\n1. select **admin dashboard** to open the dashboard.\n1. in the **manage** section, select the **export** tab.\n1. select **download workflows**.\n\n## accessing workflows after your free trial\n\nyou have **90 days** to download your workflows after your free trial ends. after that, all workflows will be **permanently deleted** and are unrecoverable.\n download workflows",
|
|
87274
|
-
"importantTerms": [
|
|
87275
|
-
"workflows",
|
|
87276
|
-
"download",
|
|
87277
|
-
"cloud",
|
|
87278
|
-
"dashboard",
|
|
87279
|
-
"admin",
|
|
87280
|
-
"select",
|
|
87281
|
-
"after",
|
|
87282
|
-
"your"
|
|
87283
|
-
]
|
|
87284
|
-
}
|
|
87285
|
-
},
|
|
87286
|
-
{
|
|
87287
|
-
"id": "page-1197",
|
|
87288
87353
|
"title": "Overview",
|
|
87289
87354
|
"url": "https://docs.n8n.io/manage-cloud/overview/index.md",
|
|
87290
87355
|
"urlPath": "manage-cloud/overview/index.md",
|
|
@@ -87325,6 +87390,58 @@
|
|
|
87325
87390
|
]
|
|
87326
87391
|
}
|
|
87327
87392
|
},
|
|
87393
|
+
{
|
|
87394
|
+
"id": "page-1197",
|
|
87395
|
+
"title": "Download workflows",
|
|
87396
|
+
"url": "https://docs.n8n.io/manage-cloud/download-workflows/index.md",
|
|
87397
|
+
"urlPath": "manage-cloud/download-workflows/index.md",
|
|
87398
|
+
"category": "other",
|
|
87399
|
+
"subcategory": null,
|
|
87400
|
+
"nodeName": null,
|
|
87401
|
+
"nodeType": null,
|
|
87402
|
+
"content": {
|
|
87403
|
+
"markdown": "# Download workflows\n\nn8n Cloud instance owners can download workflows from the most recent backup.\n\nYou can do this with the [Cloud admin dashboard](../cloud-admin-dashboard/).\n\n## How to download workflows\n\n1. [Log in to n8n](https://app.n8n.cloud/magic-link).\n1. Select **Admin Dashboard** to open the dashboard.\n1. In the **Manage** section, select the **Export** tab.\n1. Select **Download Workflows**.\n\n## Accessing workflows after your free trial\n\nYou have **90 days** to download your workflows after your free trial ends. After that, all workflows will be **permanently deleted** and are unrecoverable.\n",
|
|
87404
|
+
"excerpt": "# Download workflows n8n Cloud instance owners can download workflows from the most recent backup. You can do this with the [Cloud admin dashboard](../cloud-admin-dashboard/). ## How to download workflows 1. [Log in to n8n](https://app.n8n.cloud/magic-link). 1. Select **Admin Dashboard** to open the dashboard. 1. In the **Manage** section, select the **Export** tab. 1. Select **Download Workflows**. ## Accessing workflows after your free trial You have **90 days** to download your workflow...",
|
|
87405
|
+
"sections": [
|
|
87406
|
+
{
|
|
87407
|
+
"title": "Download workflows",
|
|
87408
|
+
"level": 1,
|
|
87409
|
+
"content": "n8n Cloud instance owners can download workflows from the most recent backup.\n\nYou can do this with the [Cloud admin dashboard](../cloud-admin-dashboard/)."
|
|
87410
|
+
}
|
|
87411
|
+
]
|
|
87412
|
+
},
|
|
87413
|
+
"metadata": {
|
|
87414
|
+
"keywords": [
|
|
87415
|
+
"download",
|
|
87416
|
+
"workflows",
|
|
87417
|
+
"accessing",
|
|
87418
|
+
"after",
|
|
87419
|
+
"your",
|
|
87420
|
+
"free",
|
|
87421
|
+
"trial"
|
|
87422
|
+
],
|
|
87423
|
+
"useCases": [],
|
|
87424
|
+
"operations": [],
|
|
87425
|
+
"codeExamples": 0,
|
|
87426
|
+
"complexity": "beginner",
|
|
87427
|
+
"readingTime": "1 min",
|
|
87428
|
+
"contentLength": 611,
|
|
87429
|
+
"relatedPages": []
|
|
87430
|
+
},
|
|
87431
|
+
"searchIndex": {
|
|
87432
|
+
"fullText": "download workflows # download workflows\n\nn8n cloud instance owners can download workflows from the most recent backup.\n\nyou can do this with the [cloud admin dashboard](../cloud-admin-dashboard/).\n\n## how to download workflows\n\n1. [log in to n8n](https://app.n8n.cloud/magic-link).\n1. select **admin dashboard** to open the dashboard.\n1. in the **manage** section, select the **export** tab.\n1. select **download workflows**.\n\n## accessing workflows after your free trial\n\nyou have **90 days** to download your workflows after your free trial ends. after that, all workflows will be **permanently deleted** and are unrecoverable.\n download workflows",
|
|
87433
|
+
"importantTerms": [
|
|
87434
|
+
"workflows",
|
|
87435
|
+
"download",
|
|
87436
|
+
"cloud",
|
|
87437
|
+
"dashboard",
|
|
87438
|
+
"admin",
|
|
87439
|
+
"select",
|
|
87440
|
+
"after",
|
|
87441
|
+
"your"
|
|
87442
|
+
]
|
|
87443
|
+
}
|
|
87444
|
+
},
|
|
87328
87445
|
{
|
|
87329
87446
|
"id": "page-1198",
|
|
87330
87447
|
"title": "Set the timezone",
|
|
@@ -92311,7 +92428,7 @@
|
|
|
92311
92428
|
"page-0132"
|
|
92312
92429
|
],
|
|
92313
92430
|
"12345678": [
|
|
92314
|
-
"page-
|
|
92431
|
+
"page-0203"
|
|
92315
92432
|
],
|
|
92316
92433
|
"welcome": [
|
|
92317
92434
|
"page-0001",
|
|
@@ -92325,7 +92442,7 @@
|
|
|
92325
92442
|
"where": [
|
|
92326
92443
|
"page-0001",
|
|
92327
92444
|
"page-0149",
|
|
92328
|
-
"page-
|
|
92445
|
+
"page-0207",
|
|
92329
92446
|
"page-0230",
|
|
92330
92447
|
"page-0712"
|
|
92331
92448
|
],
|
|
@@ -92337,7 +92454,7 @@
|
|
|
92337
92454
|
"page-0196",
|
|
92338
92455
|
"page-0197",
|
|
92339
92456
|
"page-0202",
|
|
92340
|
-
"page-
|
|
92457
|
+
"page-0206",
|
|
92341
92458
|
"page-0207",
|
|
92342
92459
|
"page-0208",
|
|
92343
92460
|
"page-0218",
|
|
@@ -93144,7 +93261,7 @@
|
|
|
93144
93261
|
"page-0157",
|
|
93145
93262
|
"page-0168",
|
|
93146
93263
|
"page-0187",
|
|
93147
|
-
"page-
|
|
93264
|
+
"page-0203",
|
|
93148
93265
|
"page-0208",
|
|
93149
93266
|
"page-0211",
|
|
93150
93267
|
"page-0212",
|
|
@@ -93196,7 +93313,7 @@
|
|
|
93196
93313
|
"page-0166",
|
|
93197
93314
|
"page-0196",
|
|
93198
93315
|
"page-0202",
|
|
93199
|
-
"page-
|
|
93316
|
+
"page-0206",
|
|
93200
93317
|
"page-0207",
|
|
93201
93318
|
"page-0213",
|
|
93202
93319
|
"page-0515",
|
|
@@ -93361,7 +93478,7 @@
|
|
|
93361
93478
|
"account": [
|
|
93362
93479
|
"page-0002",
|
|
93363
93480
|
"page-0166",
|
|
93364
|
-
"page-
|
|
93481
|
+
"page-0203",
|
|
93365
93482
|
"page-0208",
|
|
93366
93483
|
"page-0223",
|
|
93367
93484
|
"page-0774",
|
|
@@ -93384,7 +93501,7 @@
|
|
|
93384
93501
|
"page-0002",
|
|
93385
93502
|
"page-0196",
|
|
93386
93503
|
"page-0202",
|
|
93387
|
-
"page-
|
|
93504
|
+
"page-0206",
|
|
93388
93505
|
"page-0207",
|
|
93389
93506
|
"page-1156",
|
|
93390
93507
|
"page-1159",
|
|
@@ -93459,7 +93576,7 @@
|
|
|
93459
93576
|
"page-0153",
|
|
93460
93577
|
"page-0162",
|
|
93461
93578
|
"page-0186",
|
|
93462
|
-
"page-
|
|
93579
|
+
"page-0207",
|
|
93463
93580
|
"page-0219",
|
|
93464
93581
|
"page-0224",
|
|
93465
93582
|
"page-0230",
|
|
@@ -93573,7 +93690,7 @@
|
|
|
93573
93690
|
"page-0155",
|
|
93574
93691
|
"page-0174",
|
|
93575
93692
|
"page-0180",
|
|
93576
|
-
"page-
|
|
93693
|
+
"page-0203",
|
|
93577
93694
|
"page-0211",
|
|
93578
93695
|
"page-0213",
|
|
93579
93696
|
"page-0214",
|
|
@@ -93693,7 +93810,7 @@
|
|
|
93693
93810
|
"page-0083",
|
|
93694
93811
|
"page-0196",
|
|
93695
93812
|
"page-0202",
|
|
93696
|
-
"page-
|
|
93813
|
+
"page-0206",
|
|
93697
93814
|
"page-0208",
|
|
93698
93815
|
"page-0496",
|
|
93699
93816
|
"page-0499",
|
|
@@ -93711,7 +93828,7 @@
|
|
|
93711
93828
|
"page-0197",
|
|
93712
93829
|
"page-0198",
|
|
93713
93830
|
"page-0202",
|
|
93714
|
-
"page-
|
|
93831
|
+
"page-0206",
|
|
93715
93832
|
"page-0208",
|
|
93716
93833
|
"page-0374",
|
|
93717
93834
|
"page-1199"
|
|
@@ -93808,7 +93925,7 @@
|
|
|
93808
93925
|
"page-0874",
|
|
93809
93926
|
"page-0877",
|
|
93810
93927
|
"page-0934",
|
|
93811
|
-
"page-
|
|
93928
|
+
"page-0943",
|
|
93812
93929
|
"page-0955",
|
|
93813
93930
|
"page-0958",
|
|
93814
93931
|
"page-1062",
|
|
@@ -93866,7 +93983,7 @@
|
|
|
93866
93983
|
"page-0686",
|
|
93867
93984
|
"page-0694",
|
|
93868
93985
|
"page-0703",
|
|
93869
|
-
"page-
|
|
93986
|
+
"page-0943",
|
|
93870
93987
|
"page-1147",
|
|
93871
93988
|
"page-1202",
|
|
93872
93989
|
"page-1214",
|
|
@@ -93889,7 +94006,7 @@
|
|
|
93889
94006
|
"page-0110",
|
|
93890
94007
|
"page-0132",
|
|
93891
94008
|
"page-0144",
|
|
93892
|
-
"page-
|
|
94009
|
+
"page-0207",
|
|
93893
94010
|
"page-0208",
|
|
93894
94011
|
"page-0492",
|
|
93895
94012
|
"page-0496",
|
|
@@ -93909,7 +94026,7 @@
|
|
|
93909
94026
|
"page-0710",
|
|
93910
94027
|
"page-0712",
|
|
93911
94028
|
"page-0719",
|
|
93912
|
-
"page-
|
|
94029
|
+
"page-0943",
|
|
93913
94030
|
"page-1151",
|
|
93914
94031
|
"page-1152",
|
|
93915
94032
|
"page-1191",
|
|
@@ -93985,7 +94102,7 @@
|
|
|
93985
94102
|
"page-0675",
|
|
93986
94103
|
"page-0714",
|
|
93987
94104
|
"page-0717",
|
|
93988
|
-
"page-
|
|
94105
|
+
"page-1197",
|
|
93989
94106
|
"page-1205",
|
|
93990
94107
|
"page-1216",
|
|
93991
94108
|
"page-1232",
|
|
@@ -94005,6 +94122,7 @@
|
|
|
94005
94122
|
"page-0196",
|
|
94006
94123
|
"page-0200",
|
|
94007
94124
|
"page-0201",
|
|
94125
|
+
"page-0203",
|
|
94008
94126
|
"page-0204",
|
|
94009
94127
|
"page-0208",
|
|
94010
94128
|
"page-0227",
|
|
@@ -94066,7 +94184,8 @@
|
|
|
94066
94184
|
"page-0195",
|
|
94067
94185
|
"page-0200",
|
|
94068
94186
|
"page-0201",
|
|
94069
|
-
"page-
|
|
94187
|
+
"page-0204",
|
|
94188
|
+
"page-0205",
|
|
94070
94189
|
"page-0208",
|
|
94071
94190
|
"page-0813",
|
|
94072
94191
|
"page-0989",
|
|
@@ -94089,7 +94208,7 @@
|
|
|
94089
94208
|
"page-0062",
|
|
94090
94209
|
"page-0160",
|
|
94091
94210
|
"page-0166",
|
|
94092
|
-
"page-
|
|
94211
|
+
"page-0207",
|
|
94093
94212
|
"page-0208",
|
|
94094
94213
|
"page-0219",
|
|
94095
94214
|
"page-0227",
|
|
@@ -94158,7 +94277,7 @@
|
|
|
94158
94277
|
"default": [
|
|
94159
94278
|
"page-0003",
|
|
94160
94279
|
"page-0202",
|
|
94161
|
-
"page-
|
|
94280
|
+
"page-0206",
|
|
94162
94281
|
"page-0207",
|
|
94163
94282
|
"page-0219",
|
|
94164
94283
|
"page-0227",
|
|
@@ -94196,7 +94315,8 @@
|
|
|
94196
94315
|
"page-0200",
|
|
94197
94316
|
"page-0201",
|
|
94198
94317
|
"page-0202",
|
|
94199
|
-
"page-
|
|
94318
|
+
"page-0204",
|
|
94319
|
+
"page-0206",
|
|
94200
94320
|
"page-0207",
|
|
94201
94321
|
"page-0208",
|
|
94202
94322
|
"page-0209",
|
|
@@ -94227,6 +94347,7 @@
|
|
|
94227
94347
|
"page-0068",
|
|
94228
94348
|
"page-0167",
|
|
94229
94349
|
"page-0168",
|
|
94350
|
+
"page-0203",
|
|
94230
94351
|
"page-0204",
|
|
94231
94352
|
"page-0210",
|
|
94232
94353
|
"page-0211",
|
|
@@ -94509,7 +94630,7 @@
|
|
|
94509
94630
|
"page-0862",
|
|
94510
94631
|
"page-0863",
|
|
94511
94632
|
"page-0864",
|
|
94512
|
-
"page-
|
|
94633
|
+
"page-0866",
|
|
94513
94634
|
"page-0867",
|
|
94514
94635
|
"page-0868",
|
|
94515
94636
|
"page-0869",
|
|
@@ -94704,7 +94825,7 @@
|
|
|
94704
94825
|
"value": [
|
|
94705
94826
|
"page-0003",
|
|
94706
94827
|
"page-0060",
|
|
94707
|
-
"page-
|
|
94828
|
+
"page-0207",
|
|
94708
94829
|
"page-0208",
|
|
94709
94830
|
"page-0561",
|
|
94710
94831
|
"page-0712",
|
|
@@ -94796,7 +94917,8 @@
|
|
|
94796
94917
|
"page-0200",
|
|
94797
94918
|
"page-0201",
|
|
94798
94919
|
"page-0202",
|
|
94799
|
-
"page-
|
|
94920
|
+
"page-0204",
|
|
94921
|
+
"page-0206",
|
|
94800
94922
|
"page-0544",
|
|
94801
94923
|
"page-0548",
|
|
94802
94924
|
"page-0550",
|
|
@@ -94874,7 +94996,7 @@
|
|
|
94874
94996
|
"page-0134",
|
|
94875
94997
|
"page-0155",
|
|
94876
94998
|
"page-0202",
|
|
94877
|
-
"page-
|
|
94999
|
+
"page-0206",
|
|
94878
95000
|
"page-0207",
|
|
94879
95001
|
"page-0209",
|
|
94880
95002
|
"page-0505",
|
|
@@ -94922,7 +95044,7 @@
|
|
|
94922
95044
|
"page-0221",
|
|
94923
95045
|
"page-0374",
|
|
94924
95046
|
"page-0701",
|
|
94925
|
-
"page-
|
|
95047
|
+
"page-0943",
|
|
94926
95048
|
"page-1171",
|
|
94927
95049
|
"page-1205",
|
|
94928
95050
|
"page-1232"
|
|
@@ -94985,7 +95107,7 @@
|
|
|
94985
95107
|
"page-0196",
|
|
94986
95108
|
"page-0202",
|
|
94987
95109
|
"page-0203",
|
|
94988
|
-
"page-
|
|
95110
|
+
"page-0206",
|
|
94989
95111
|
"page-0207",
|
|
94990
95112
|
"page-0208",
|
|
94991
95113
|
"page-0217",
|
|
@@ -95169,7 +95291,7 @@
|
|
|
95169
95291
|
"page-1187",
|
|
95170
95292
|
"page-1192",
|
|
95171
95293
|
"page-1193",
|
|
95172
|
-
"page-
|
|
95294
|
+
"page-1197",
|
|
95173
95295
|
"page-1199",
|
|
95174
95296
|
"page-1205",
|
|
95175
95297
|
"page-1207",
|
|
@@ -95201,7 +95323,7 @@
|
|
|
95201
95323
|
"page-0683",
|
|
95202
95324
|
"page-0697",
|
|
95203
95325
|
"page-1193",
|
|
95204
|
-
"page-
|
|
95326
|
+
"page-1197"
|
|
95205
95327
|
],
|
|
95206
95328
|
"versions": [
|
|
95207
95329
|
"page-0004",
|
|
@@ -95259,7 +95381,7 @@
|
|
|
95259
95381
|
"page-0006",
|
|
95260
95382
|
"page-0023",
|
|
95261
95383
|
"page-0161",
|
|
95262
|
-
"page-
|
|
95384
|
+
"page-0203",
|
|
95263
95385
|
"page-0548",
|
|
95264
95386
|
"page-0549",
|
|
95265
95387
|
"page-0550",
|
|
@@ -95283,7 +95405,7 @@
|
|
|
95283
95405
|
"manager": [
|
|
95284
95406
|
"page-0005",
|
|
95285
95407
|
"page-0166",
|
|
95286
|
-
"page-
|
|
95408
|
+
"page-0203",
|
|
95287
95409
|
"page-0245",
|
|
95288
95410
|
"page-0601",
|
|
95289
95411
|
"page-1204",
|
|
@@ -96095,7 +96217,7 @@
|
|
|
96095
96217
|
"page-0171",
|
|
96096
96218
|
"page-0196",
|
|
96097
96219
|
"page-0197",
|
|
96098
|
-
"page-
|
|
96220
|
+
"page-0207",
|
|
96099
96221
|
"page-0208",
|
|
96100
96222
|
"page-0218",
|
|
96101
96223
|
"page-0240",
|
|
@@ -96117,7 +96239,7 @@
|
|
|
96117
96239
|
"page-0700",
|
|
96118
96240
|
"page-0863",
|
|
96119
96241
|
"page-0898",
|
|
96120
|
-
"page-
|
|
96242
|
+
"page-0943",
|
|
96121
96243
|
"page-1149",
|
|
96122
96244
|
"page-1152",
|
|
96123
96245
|
"page-1170",
|
|
@@ -96151,8 +96273,9 @@
|
|
|
96151
96273
|
"page-0006",
|
|
96152
96274
|
"page-0013",
|
|
96153
96275
|
"page-0153",
|
|
96276
|
+
"page-0203",
|
|
96154
96277
|
"page-0204",
|
|
96155
|
-
"page-
|
|
96278
|
+
"page-0205",
|
|
96156
96279
|
"page-0208",
|
|
96157
96280
|
"page-0348",
|
|
96158
96281
|
"page-1027",
|
|
@@ -96180,7 +96303,7 @@
|
|
|
96180
96303
|
"page-0005",
|
|
96181
96304
|
"page-0018",
|
|
96182
96305
|
"page-0197",
|
|
96183
|
-
"page-
|
|
96306
|
+
"page-0203",
|
|
96184
96307
|
"page-0208",
|
|
96185
96308
|
"page-0548",
|
|
96186
96309
|
"page-0737",
|
|
@@ -96333,6 +96456,7 @@
|
|
|
96333
96456
|
"page-0166",
|
|
96334
96457
|
"page-0200",
|
|
96335
96458
|
"page-0201",
|
|
96459
|
+
"page-0204",
|
|
96336
96460
|
"page-0208",
|
|
96337
96461
|
"page-0232",
|
|
96338
96462
|
"page-0540"
|
|
@@ -96462,7 +96586,7 @@
|
|
|
96462
96586
|
"page-0041",
|
|
96463
96587
|
"page-0112",
|
|
96464
96588
|
"page-0127",
|
|
96465
|
-
"page-
|
|
96589
|
+
"page-0207",
|
|
96466
96590
|
"page-0221",
|
|
96467
96591
|
"page-0540",
|
|
96468
96592
|
"page-0541"
|
|
@@ -96470,7 +96594,7 @@
|
|
|
96470
96594
|
"template": [
|
|
96471
96595
|
"page-0006",
|
|
96472
96596
|
"page-0148",
|
|
96473
|
-
"page-
|
|
96597
|
+
"page-0205",
|
|
96474
96598
|
"page-0208",
|
|
96475
96599
|
"page-0564",
|
|
96476
96600
|
"page-0565",
|
|
@@ -96715,8 +96839,9 @@
|
|
|
96715
96839
|
"page-0200",
|
|
96716
96840
|
"page-0201",
|
|
96717
96841
|
"page-0202",
|
|
96842
|
+
"page-0204",
|
|
96843
|
+
"page-0205",
|
|
96718
96844
|
"page-0206",
|
|
96719
|
-
"page-0207",
|
|
96720
96845
|
"page-0208",
|
|
96721
96846
|
"page-0218",
|
|
96722
96847
|
"page-0221",
|
|
@@ -96760,7 +96885,7 @@
|
|
|
96760
96885
|
"which": [
|
|
96761
96886
|
"page-0007",
|
|
96762
96887
|
"page-0059",
|
|
96763
|
-
"page-
|
|
96888
|
+
"page-0207",
|
|
96764
96889
|
"page-0333"
|
|
96765
96890
|
],
|
|
96766
96891
|
"calculate": [
|
|
@@ -96798,7 +96923,7 @@
|
|
|
96798
96923
|
"page-0013",
|
|
96799
96924
|
"page-0196",
|
|
96800
96925
|
"page-0202",
|
|
96801
|
-
"page-
|
|
96926
|
+
"page-0206",
|
|
96802
96927
|
"page-0208",
|
|
96803
96928
|
"page-1151",
|
|
96804
96929
|
"page-1152",
|
|
@@ -96997,9 +97122,10 @@
|
|
|
96997
97122
|
"page-0200",
|
|
96998
97123
|
"page-0201",
|
|
96999
97124
|
"page-0202",
|
|
97125
|
+
"page-0203",
|
|
97000
97126
|
"page-0204",
|
|
97127
|
+
"page-0205",
|
|
97001
97128
|
"page-0206",
|
|
97002
|
-
"page-0207",
|
|
97003
97129
|
"page-0208"
|
|
97004
97130
|
],
|
|
97005
97131
|
"build": [
|
|
@@ -97068,7 +97194,8 @@
|
|
|
97068
97194
|
"page-0195",
|
|
97069
97195
|
"page-0200",
|
|
97070
97196
|
"page-0201",
|
|
97071
|
-
"page-
|
|
97197
|
+
"page-0204",
|
|
97198
|
+
"page-0205",
|
|
97072
97199
|
"page-0208",
|
|
97073
97200
|
"page-0701",
|
|
97074
97201
|
"page-0702",
|
|
@@ -97085,7 +97212,7 @@
|
|
|
97085
97212
|
"page-0010",
|
|
97086
97213
|
"page-0018",
|
|
97087
97214
|
"page-0199",
|
|
97088
|
-
"page-
|
|
97215
|
+
"page-0206",
|
|
97089
97216
|
"page-0218",
|
|
97090
97217
|
"page-0515",
|
|
97091
97218
|
"page-0700",
|
|
@@ -97175,7 +97302,7 @@
|
|
|
97175
97302
|
"page-0027",
|
|
97176
97303
|
"page-0059",
|
|
97177
97304
|
"page-0105",
|
|
97178
|
-
"page-
|
|
97305
|
+
"page-1197",
|
|
97179
97306
|
"page-1214"
|
|
97180
97307
|
],
|
|
97181
97308
|
"understanding": [
|
|
@@ -97287,7 +97414,7 @@
|
|
|
97287
97414
|
],
|
|
97288
97415
|
"address": [
|
|
97289
97416
|
"page-0012",
|
|
97290
|
-
"page-
|
|
97417
|
+
"page-0207"
|
|
97291
97418
|
],
|
|
97292
97419
|
"verify": [
|
|
97293
97420
|
"page-0012",
|
|
@@ -97428,7 +97555,7 @@
|
|
|
97428
97555
|
"page-0024",
|
|
97429
97556
|
"page-0196",
|
|
97430
97557
|
"page-0202",
|
|
97431
|
-
"page-
|
|
97558
|
+
"page-0206",
|
|
97432
97559
|
"page-0208",
|
|
97433
97560
|
"page-0664",
|
|
97434
97561
|
"page-1207",
|
|
@@ -97470,7 +97597,7 @@
|
|
|
97470
97597
|
"page-0187",
|
|
97471
97598
|
"page-0202",
|
|
97472
97599
|
"page-0203",
|
|
97473
|
-
"page-
|
|
97600
|
+
"page-0206",
|
|
97474
97601
|
"page-0207",
|
|
97475
97602
|
"page-0208",
|
|
97476
97603
|
"page-0209",
|
|
@@ -97500,8 +97627,8 @@
|
|
|
97500
97627
|
"page-0046",
|
|
97501
97628
|
"page-0047",
|
|
97502
97629
|
"page-0156",
|
|
97503
|
-
"page-
|
|
97504
|
-
"page-
|
|
97630
|
+
"page-0203",
|
|
97631
|
+
"page-0206",
|
|
97505
97632
|
"page-0319",
|
|
97506
97633
|
"page-0320",
|
|
97507
97634
|
"page-0321",
|
|
@@ -97516,7 +97643,7 @@
|
|
|
97516
97643
|
"page-0796",
|
|
97517
97644
|
"page-0843",
|
|
97518
97645
|
"page-0884",
|
|
97519
|
-
"page-
|
|
97646
|
+
"page-0943",
|
|
97520
97647
|
"page-0987",
|
|
97521
97648
|
"page-0997",
|
|
97522
97649
|
"page-1003",
|
|
@@ -97533,7 +97660,7 @@
|
|
|
97533
97660
|
"page-1193",
|
|
97534
97661
|
"page-1194",
|
|
97535
97662
|
"page-1195",
|
|
97536
|
-
"page-
|
|
97663
|
+
"page-1196",
|
|
97537
97664
|
"page-1198",
|
|
97538
97665
|
"page-1199",
|
|
97539
97666
|
"page-1202",
|
|
@@ -98003,7 +98130,7 @@
|
|
|
98003
98130
|
"page-0013",
|
|
98004
98131
|
"page-0079",
|
|
98005
98132
|
"page-0080",
|
|
98006
|
-
"page-
|
|
98133
|
+
"page-0203",
|
|
98007
98134
|
"page-0668"
|
|
98008
98135
|
],
|
|
98009
98136
|
"product": [
|
|
@@ -98231,6 +98358,7 @@
|
|
|
98231
98358
|
"context": [
|
|
98232
98359
|
"page-0015",
|
|
98233
98360
|
"page-0201",
|
|
98361
|
+
"page-0204",
|
|
98234
98362
|
"page-0570",
|
|
98235
98363
|
"page-1189",
|
|
98236
98364
|
"page-1205"
|
|
@@ -98278,7 +98406,7 @@
|
|
|
98278
98406
|
"page-0108",
|
|
98279
98407
|
"page-0109",
|
|
98280
98408
|
"page-0132",
|
|
98281
|
-
"page-
|
|
98409
|
+
"page-0207",
|
|
98282
98410
|
"page-0546",
|
|
98283
98411
|
"page-0626",
|
|
98284
98412
|
"page-0659",
|
|
@@ -98312,7 +98440,7 @@
|
|
|
98312
98440
|
],
|
|
98313
98441
|
"want": [
|
|
98314
98442
|
"page-0015",
|
|
98315
|
-
"page-
|
|
98443
|
+
"page-0203"
|
|
98316
98444
|
],
|
|
98317
98445
|
"something": [
|
|
98318
98446
|
"page-0015"
|
|
@@ -98328,7 +98456,7 @@
|
|
|
98328
98456
|
"page-0021",
|
|
98329
98457
|
"page-0201",
|
|
98330
98458
|
"page-0202",
|
|
98331
|
-
"page-
|
|
98459
|
+
"page-0206",
|
|
98332
98460
|
"page-0208",
|
|
98333
98461
|
"page-1021",
|
|
98334
98462
|
"page-1204",
|
|
@@ -98354,6 +98482,7 @@
|
|
|
98354
98482
|
"page-0202",
|
|
98355
98483
|
"page-0203",
|
|
98356
98484
|
"page-0204",
|
|
98485
|
+
"page-0205",
|
|
98357
98486
|
"page-0206",
|
|
98358
98487
|
"page-0207",
|
|
98359
98488
|
"page-0208",
|
|
@@ -98380,7 +98509,7 @@
|
|
|
98380
98509
|
"page-0778",
|
|
98381
98510
|
"page-0799",
|
|
98382
98511
|
"page-0800",
|
|
98383
|
-
"page-
|
|
98512
|
+
"page-0943",
|
|
98384
98513
|
"page-0968",
|
|
98385
98514
|
"page-1011",
|
|
98386
98515
|
"page-1027",
|
|
@@ -99095,6 +99224,7 @@
|
|
|
99095
99224
|
"page-0067",
|
|
99096
99225
|
"page-0200",
|
|
99097
99226
|
"page-0201",
|
|
99227
|
+
"page-0204",
|
|
99098
99228
|
"page-0219",
|
|
99099
99229
|
"page-0220",
|
|
99100
99230
|
"page-0227",
|
|
@@ -100067,7 +100197,7 @@
|
|
|
100067
100197
|
"page-0018",
|
|
100068
100198
|
"page-0070",
|
|
100069
100199
|
"page-0085",
|
|
100070
|
-
"page-
|
|
100200
|
+
"page-0207",
|
|
100071
100201
|
"page-0209",
|
|
100072
100202
|
"page-0702",
|
|
100073
100203
|
"page-1205",
|
|
@@ -100083,7 +100213,7 @@
|
|
|
100083
100213
|
],
|
|
100084
100214
|
"enabling": [
|
|
100085
100215
|
"page-0018",
|
|
100086
|
-
"page-
|
|
100216
|
+
"page-0203",
|
|
100087
100217
|
"page-1228"
|
|
100088
100218
|
],
|
|
100089
100219
|
"hosted": [
|
|
@@ -100181,7 +100311,7 @@
|
|
|
100181
100311
|
"page-0925",
|
|
100182
100312
|
"page-0933",
|
|
100183
100313
|
"page-0938",
|
|
100184
|
-
"page-
|
|
100314
|
+
"page-0943",
|
|
100185
100315
|
"page-0954",
|
|
100186
100316
|
"page-0955",
|
|
100187
100317
|
"page-0958",
|
|
@@ -100217,7 +100347,7 @@
|
|
|
100217
100347
|
"page-0874",
|
|
100218
100348
|
"page-0877",
|
|
100219
100349
|
"page-0913",
|
|
100220
|
-
"page-
|
|
100350
|
+
"page-0943",
|
|
100221
100351
|
"page-1027",
|
|
100222
100352
|
"page-1028",
|
|
100223
100353
|
"page-1205"
|
|
@@ -100283,7 +100413,7 @@
|
|
|
100283
100413
|
"page-0924",
|
|
100284
100414
|
"page-0937",
|
|
100285
100415
|
"page-0940",
|
|
100286
|
-
"page-
|
|
100416
|
+
"page-0941",
|
|
100287
100417
|
"page-0944",
|
|
100288
100418
|
"page-0952",
|
|
100289
100419
|
"page-0955",
|
|
@@ -100311,7 +100441,7 @@
|
|
|
100311
100441
|
],
|
|
100312
100442
|
"exposing": [
|
|
100313
100443
|
"page-0018",
|
|
100314
|
-
"page-
|
|
100444
|
+
"page-0205"
|
|
100315
100445
|
],
|
|
100316
100446
|
"clients": [
|
|
100317
100447
|
"page-0018"
|
|
@@ -100378,7 +100508,7 @@
|
|
|
100378
100508
|
"page-0021",
|
|
100379
100509
|
"page-0036",
|
|
100380
100510
|
"page-0041",
|
|
100381
|
-
"page-
|
|
100511
|
+
"page-0203",
|
|
100382
100512
|
"page-0208",
|
|
100383
100513
|
"page-0531",
|
|
100384
100514
|
"page-0538",
|
|
@@ -100407,7 +100537,7 @@
|
|
|
100407
100537
|
],
|
|
100408
100538
|
"creation": [
|
|
100409
100539
|
"page-0018",
|
|
100410
|
-
"page-
|
|
100540
|
+
"page-0207"
|
|
100411
100541
|
],
|
|
100412
100542
|
"introspection": [
|
|
100413
100543
|
"page-0018"
|
|
@@ -100424,7 +100554,7 @@
|
|
|
100424
100554
|
"folders": [
|
|
100425
100555
|
"page-0018",
|
|
100426
100556
|
"page-0202",
|
|
100427
|
-
"page-
|
|
100557
|
+
"page-0206",
|
|
100428
100558
|
"page-0506",
|
|
100429
100559
|
"page-1205"
|
|
100430
100560
|
],
|
|
@@ -100874,6 +101004,7 @@
|
|
|
100874
101004
|
"page-0018",
|
|
100875
101005
|
"page-0030",
|
|
100876
101006
|
"page-0166",
|
|
101007
|
+
"page-0203",
|
|
100877
101008
|
"page-0204",
|
|
100878
101009
|
"page-0313",
|
|
100879
101010
|
"page-0314",
|
|
@@ -100983,7 +101114,7 @@
|
|
|
100983
101114
|
"page-0222",
|
|
100984
101115
|
"page-1154",
|
|
100985
101116
|
"page-1157",
|
|
100986
|
-
"page-
|
|
101117
|
+
"page-1196",
|
|
100987
101118
|
"page-1211"
|
|
100988
101119
|
],
|
|
100989
101120
|
"creating": [
|
|
@@ -101022,7 +101153,7 @@
|
|
|
101022
101153
|
"page-0170",
|
|
101023
101154
|
"page-0193",
|
|
101024
101155
|
"page-0202",
|
|
101025
|
-
"page-
|
|
101156
|
+
"page-0207",
|
|
101026
101157
|
"page-0208",
|
|
101027
101158
|
"page-0221",
|
|
101028
101159
|
"page-0333",
|
|
@@ -101187,13 +101318,13 @@
|
|
|
101187
101318
|
"page-0022",
|
|
101188
101319
|
"page-0070",
|
|
101189
101320
|
"page-0085",
|
|
101190
|
-
"page-
|
|
101321
|
+
"page-0207"
|
|
101191
101322
|
],
|
|
101192
101323
|
"need": [
|
|
101193
101324
|
"page-0022",
|
|
101194
101325
|
"page-0070",
|
|
101195
101326
|
"page-0085",
|
|
101196
|
-
"page-
|
|
101327
|
+
"page-0203",
|
|
101197
101328
|
"page-0710",
|
|
101198
101329
|
"page-0738",
|
|
101199
101330
|
"page-0740",
|
|
@@ -101225,7 +101356,7 @@
|
|
|
101225
101356
|
"page-0078",
|
|
101226
101357
|
"page-0090",
|
|
101227
101358
|
"page-0202",
|
|
101228
|
-
"page-
|
|
101359
|
+
"page-0206",
|
|
101229
101360
|
"page-0661",
|
|
101230
101361
|
"page-0662",
|
|
101231
101362
|
"page-0716",
|
|
@@ -101238,8 +101369,8 @@
|
|
|
101238
101369
|
],
|
|
101239
101370
|
"changing": [
|
|
101240
101371
|
"page-0022",
|
|
101241
|
-
"page-
|
|
101242
|
-
"page-
|
|
101372
|
+
"page-0205",
|
|
101373
|
+
"page-0207",
|
|
101243
101374
|
"page-0714"
|
|
101244
101375
|
],
|
|
101245
101376
|
"adding": [
|
|
@@ -101265,7 +101396,8 @@
|
|
|
101265
101396
|
"page-0200",
|
|
101266
101397
|
"page-0201",
|
|
101267
101398
|
"page-0202",
|
|
101268
|
-
"page-
|
|
101399
|
+
"page-0204",
|
|
101400
|
+
"page-0205",
|
|
101269
101401
|
"page-0206",
|
|
101270
101402
|
"page-0207",
|
|
101271
101403
|
"page-0208",
|
|
@@ -101283,7 +101415,8 @@
|
|
|
101283
101415
|
"page-0200",
|
|
101284
101416
|
"page-0201",
|
|
101285
101417
|
"page-0202",
|
|
101286
|
-
"page-
|
|
101418
|
+
"page-0204",
|
|
101419
|
+
"page-0205",
|
|
101287
101420
|
"page-0206",
|
|
101288
101421
|
"page-0207",
|
|
101289
101422
|
"page-0208",
|
|
@@ -101532,7 +101665,7 @@
|
|
|
101532
101665
|
"page-0799",
|
|
101533
101666
|
"page-0874",
|
|
101534
101667
|
"page-0877",
|
|
101535
|
-
"page-
|
|
101668
|
+
"page-0943",
|
|
101536
101669
|
"page-0955",
|
|
101537
101670
|
"page-0958",
|
|
101538
101671
|
"page-0960",
|
|
@@ -101644,7 +101777,7 @@
|
|
|
101644
101777
|
"have": [
|
|
101645
101778
|
"page-0031",
|
|
101646
101779
|
"page-0132",
|
|
101647
|
-
"page-
|
|
101780
|
+
"page-0203"
|
|
101648
101781
|
],
|
|
101649
101782
|
"introduction": [
|
|
101650
101783
|
"page-0032",
|
|
@@ -101923,7 +102056,7 @@
|
|
|
101923
102056
|
"page-0153",
|
|
101924
102057
|
"page-0156",
|
|
101925
102058
|
"page-0176",
|
|
101926
|
-
"page-
|
|
102059
|
+
"page-0203",
|
|
101927
102060
|
"page-0208",
|
|
101928
102061
|
"page-0224",
|
|
101929
102062
|
"page-0321",
|
|
@@ -102024,7 +102157,7 @@
|
|
|
102024
102157
|
"apis": [
|
|
102025
102158
|
"page-0044",
|
|
102026
102159
|
"page-0134",
|
|
102027
|
-
"page-
|
|
102160
|
+
"page-0203",
|
|
102028
102161
|
"page-1027",
|
|
102029
102162
|
"page-1028",
|
|
102030
102163
|
"page-1029"
|
|
@@ -102050,6 +102183,7 @@
|
|
|
102050
102183
|
"page-0061",
|
|
102051
102184
|
"page-0200",
|
|
102052
102185
|
"page-0201",
|
|
102186
|
+
"page-0204",
|
|
102053
102187
|
"page-0497",
|
|
102054
102188
|
"page-0498",
|
|
102055
102189
|
"page-0499",
|
|
@@ -102105,7 +102239,7 @@
|
|
|
102105
102239
|
"page-0049",
|
|
102106
102240
|
"page-0101",
|
|
102107
102241
|
"page-0106",
|
|
102108
|
-
"page-
|
|
102242
|
+
"page-0207",
|
|
102109
102243
|
"page-1170",
|
|
102110
102244
|
"page-1204",
|
|
102111
102245
|
"page-1205",
|
|
@@ -102538,7 +102672,7 @@
|
|
|
102538
102672
|
"page-0862",
|
|
102539
102673
|
"page-0863",
|
|
102540
102674
|
"page-0864",
|
|
102541
|
-
"page-
|
|
102675
|
+
"page-0866",
|
|
102542
102676
|
"page-0867",
|
|
102543
102677
|
"page-0868",
|
|
102544
102678
|
"page-0869",
|
|
@@ -102856,7 +102990,7 @@
|
|
|
102856
102990
|
"page-0862",
|
|
102857
102991
|
"page-0863",
|
|
102858
102992
|
"page-0864",
|
|
102859
|
-
"page-
|
|
102993
|
+
"page-0866",
|
|
102860
102994
|
"page-0867",
|
|
102861
102995
|
"page-0868",
|
|
102862
102996
|
"page-0869",
|
|
@@ -103171,7 +103305,7 @@
|
|
|
103171
103305
|
"page-0106",
|
|
103172
103306
|
"page-0132",
|
|
103173
103307
|
"page-0168",
|
|
103174
|
-
"page-
|
|
103308
|
+
"page-0207",
|
|
103175
103309
|
"page-0649",
|
|
103176
103310
|
"page-0686",
|
|
103177
103311
|
"page-0711",
|
|
@@ -103208,7 +103342,7 @@
|
|
|
103208
103342
|
],
|
|
103209
103343
|
"first": [
|
|
103210
103344
|
"page-0059",
|
|
103211
|
-
"page-
|
|
103345
|
+
"page-0203",
|
|
103212
103346
|
"page-1219"
|
|
103213
103347
|
],
|
|
103214
103348
|
"item": [
|
|
@@ -103338,7 +103472,7 @@
|
|
|
103338
103472
|
],
|
|
103339
103473
|
"vars": [
|
|
103340
103474
|
"page-0062",
|
|
103341
|
-
"page-
|
|
103475
|
+
"page-0203"
|
|
103342
103476
|
],
|
|
103343
103477
|
"`vars`": [
|
|
103344
103478
|
"page-0062"
|
|
@@ -103451,7 +103585,7 @@
|
|
|
103451
103585
|
"page-0068",
|
|
103452
103586
|
"page-0196",
|
|
103453
103587
|
"page-0202",
|
|
103454
|
-
"page-
|
|
103588
|
+
"page-0206"
|
|
103455
103589
|
],
|
|
103456
103590
|
"body": [
|
|
103457
103591
|
"page-0068",
|
|
@@ -103684,7 +103818,7 @@
|
|
|
103684
103818
|
],
|
|
103685
103819
|
"scheduling": [
|
|
103686
103820
|
"page-0083",
|
|
103687
|
-
"page-
|
|
103821
|
+
"page-0207",
|
|
103688
103822
|
"page-0723",
|
|
103689
103823
|
"page-1040"
|
|
103690
103824
|
],
|
|
@@ -103842,6 +103976,7 @@
|
|
|
103842
103976
|
"page-0196",
|
|
103843
103977
|
"page-0200",
|
|
103844
103978
|
"page-0201",
|
|
103979
|
+
"page-0204",
|
|
103845
103980
|
"page-0208",
|
|
103846
103981
|
"page-0223",
|
|
103847
103982
|
"page-0548",
|
|
@@ -104026,7 +104161,7 @@
|
|
|
104026
104161
|
"page-0938",
|
|
104027
104162
|
"page-0940",
|
|
104028
104163
|
"page-0941",
|
|
104029
|
-
"page-
|
|
104164
|
+
"page-0942",
|
|
104030
104165
|
"page-0944",
|
|
104031
104166
|
"page-0946",
|
|
104032
104167
|
"page-0947",
|
|
@@ -104288,7 +104423,7 @@
|
|
|
104288
104423
|
"page-0099",
|
|
104289
104424
|
"page-0665",
|
|
104290
104425
|
"page-0759",
|
|
104291
|
-
"page-
|
|
104426
|
+
"page-0942"
|
|
104292
104427
|
],
|
|
104293
104428
|
"versus": [
|
|
104294
104429
|
"page-0099",
|
|
@@ -105103,7 +105238,7 @@
|
|
|
105103
105238
|
"page-0132",
|
|
105104
105239
|
"page-0169",
|
|
105105
105240
|
"page-0192",
|
|
105106
|
-
"page-
|
|
105241
|
+
"page-0207",
|
|
105107
105242
|
"page-0714",
|
|
105108
105243
|
"page-1198",
|
|
105109
105244
|
"page-1245"
|
|
@@ -105228,7 +105363,7 @@
|
|
|
105228
105363
|
"deployment": [
|
|
105229
105364
|
"page-0135",
|
|
105230
105365
|
"page-0177",
|
|
105231
|
-
"page-
|
|
105366
|
+
"page-0205",
|
|
105232
105367
|
"page-0208"
|
|
105233
105368
|
],
|
|
105234
105369
|
"backups": [
|
|
@@ -105356,7 +105491,7 @@
|
|
|
105356
105491
|
"page-0141",
|
|
105357
105492
|
"page-0196",
|
|
105358
105493
|
"page-0202",
|
|
105359
|
-
"page-
|
|
105494
|
+
"page-0206",
|
|
105360
105495
|
"page-0208",
|
|
105361
105496
|
"page-0593",
|
|
105362
105497
|
"page-0599",
|
|
@@ -105470,7 +105605,7 @@
|
|
|
105470
105605
|
],
|
|
105471
105606
|
"email": [
|
|
105472
105607
|
"page-0149",
|
|
105473
|
-
"page-
|
|
105608
|
+
"page-0207",
|
|
105474
105609
|
"page-0223",
|
|
105475
105610
|
"page-0652",
|
|
105476
105611
|
"page-0683",
|
|
@@ -105683,7 +105818,7 @@
|
|
|
105683
105818
|
"page-0166",
|
|
105684
105819
|
"page-0196",
|
|
105685
105820
|
"page-0202",
|
|
105686
|
-
"page-
|
|
105821
|
+
"page-0206",
|
|
105687
105822
|
"page-0207",
|
|
105688
105823
|
"page-0213"
|
|
105689
105824
|
],
|
|
@@ -105692,7 +105827,7 @@
|
|
|
105692
105827
|
],
|
|
105693
105828
|
"sensitive": [
|
|
105694
105829
|
"page-0155",
|
|
105695
|
-
"page-
|
|
105830
|
+
"page-0203"
|
|
105696
105831
|
],
|
|
105697
105832
|
"databases": [
|
|
105698
105833
|
"page-0156"
|
|
@@ -105737,7 +105872,8 @@
|
|
|
105737
105872
|
"page-0156",
|
|
105738
105873
|
"page-0200",
|
|
105739
105874
|
"page-0201",
|
|
105740
|
-
"page-
|
|
105875
|
+
"page-0204",
|
|
105876
|
+
"page-0207",
|
|
105741
105877
|
"page-0799",
|
|
105742
105878
|
"page-1207"
|
|
105743
105879
|
],
|
|
@@ -105770,7 +105906,7 @@
|
|
|
105770
105906
|
],
|
|
105771
105907
|
"configuring": [
|
|
105772
105908
|
"page-0157",
|
|
105773
|
-
"page-
|
|
105909
|
+
"page-0205",
|
|
105774
105910
|
"page-0218",
|
|
105775
105911
|
"page-0700",
|
|
105776
105912
|
"page-0745",
|
|
@@ -105781,7 +105917,7 @@
|
|
|
105781
105917
|
"page-0157",
|
|
105782
105918
|
"page-0196",
|
|
105783
105919
|
"page-0202",
|
|
105784
|
-
"page-
|
|
105920
|
+
"page-0206",
|
|
105785
105921
|
"page-0515",
|
|
105786
105922
|
"page-0632",
|
|
105787
105923
|
"page-0636"
|
|
@@ -105854,7 +105990,7 @@
|
|
|
105854
105990
|
],
|
|
105855
105991
|
"certificate": [
|
|
105856
105992
|
"page-0161",
|
|
105857
|
-
"page-
|
|
105993
|
+
"page-0207",
|
|
105858
105994
|
"page-0245",
|
|
105859
105995
|
"page-0831",
|
|
105860
105996
|
"page-1127",
|
|
@@ -105933,6 +106069,7 @@
|
|
|
105933
106069
|
"page-0166",
|
|
105934
106070
|
"page-0200",
|
|
105935
106071
|
"page-0201",
|
|
106072
|
+
"page-0204",
|
|
105936
106073
|
"page-0208"
|
|
105937
106074
|
],
|
|
105938
106075
|
"plain": [
|
|
@@ -105940,7 +106077,7 @@
|
|
|
105940
106077
|
],
|
|
105941
106078
|
"secret": [
|
|
105942
106079
|
"page-0166",
|
|
105943
|
-
"page-
|
|
106080
|
+
"page-0203",
|
|
105944
106081
|
"page-0208",
|
|
105945
106082
|
"page-0734",
|
|
105946
106083
|
"page-0739",
|
|
@@ -106000,7 +106137,7 @@
|
|
|
106000
106137
|
"page-0196",
|
|
106001
106138
|
"page-0197",
|
|
106002
106139
|
"page-0201",
|
|
106003
|
-
"page-
|
|
106140
|
+
"page-0203",
|
|
106004
106141
|
"page-0208",
|
|
106005
106142
|
"page-0492",
|
|
106006
106143
|
"page-0534",
|
|
@@ -106021,7 +106158,7 @@
|
|
|
106021
106158
|
"install": [
|
|
106022
106159
|
"page-0166",
|
|
106023
106160
|
"page-0197",
|
|
106024
|
-
"page-
|
|
106161
|
+
"page-0206",
|
|
106025
106162
|
"page-0207",
|
|
106026
106163
|
"page-0208",
|
|
106027
106164
|
"page-1150",
|
|
@@ -106147,6 +106284,7 @@
|
|
|
106147
106284
|
"page-0180",
|
|
106148
106285
|
"page-0200",
|
|
106149
106286
|
"page-0201",
|
|
106287
|
+
"page-0204",
|
|
106150
106288
|
"page-0208",
|
|
106151
106289
|
"page-0214",
|
|
106152
106290
|
"page-0260",
|
|
@@ -106197,7 +106335,7 @@
|
|
|
106197
106335
|
"latest": [
|
|
106198
106336
|
"page-0196",
|
|
106199
106337
|
"page-0202",
|
|
106200
|
-
"page-
|
|
106338
|
+
"page-0206",
|
|
106201
106339
|
"page-1151",
|
|
106202
106340
|
"page-1152"
|
|
106203
106341
|
],
|
|
@@ -106216,12 +106354,12 @@
|
|
|
106216
106354
|
"containing": [
|
|
106217
106355
|
"page-0196",
|
|
106218
106356
|
"page-0202",
|
|
106219
|
-
"page-
|
|
106357
|
+
"page-0206"
|
|
106220
106358
|
],
|
|
106221
106359
|
"older": [
|
|
106222
106360
|
"page-0196",
|
|
106223
106361
|
"page-0202",
|
|
106224
|
-
"page-
|
|
106362
|
+
"page-0206"
|
|
106225
106363
|
],
|
|
106226
106364
|
"stack": [
|
|
106227
106365
|
"page-0196"
|
|
@@ -106389,14 +106527,16 @@
|
|
|
106389
106527
|
"page-0200",
|
|
106390
106528
|
"page-0201",
|
|
106391
106529
|
"page-0202",
|
|
106392
|
-
"page-
|
|
106530
|
+
"page-0204",
|
|
106531
|
+
"page-0206",
|
|
106393
106532
|
"page-0664"
|
|
106394
106533
|
],
|
|
106395
106534
|
"repository": [
|
|
106396
106535
|
"page-0200",
|
|
106397
106536
|
"page-0201",
|
|
106398
106537
|
"page-0202",
|
|
106399
|
-
"page-
|
|
106538
|
+
"page-0204",
|
|
106539
|
+
"page-0206",
|
|
106400
106540
|
"page-1204",
|
|
106401
106541
|
"page-1207",
|
|
106402
106542
|
"page-1208"
|
|
@@ -106404,6 +106544,7 @@
|
|
|
106404
106544
|
"postgres": [
|
|
106405
106545
|
"page-0200",
|
|
106406
106546
|
"page-0201",
|
|
106547
|
+
"page-0203",
|
|
106407
106548
|
"page-0204",
|
|
106408
106549
|
"page-0519",
|
|
106409
106550
|
"page-0520",
|
|
@@ -106416,20 +106557,24 @@
|
|
|
106416
106557
|
"volume": [
|
|
106417
106558
|
"page-0200",
|
|
106418
106559
|
"page-0201",
|
|
106419
|
-
"page-
|
|
106560
|
+
"page-0204",
|
|
106561
|
+
"page-0206"
|
|
106420
106562
|
],
|
|
106421
106563
|
"persistent": [
|
|
106422
106564
|
"page-0200",
|
|
106423
106565
|
"page-0201",
|
|
106566
|
+
"page-0204",
|
|
106424
106567
|
"page-0550"
|
|
106425
106568
|
],
|
|
106426
106569
|
"deployments": [
|
|
106427
106570
|
"page-0200",
|
|
106428
|
-
"page-0201"
|
|
106571
|
+
"page-0201",
|
|
106572
|
+
"page-0204"
|
|
106429
106573
|
],
|
|
106430
106574
|
"send": [
|
|
106431
106575
|
"page-0200",
|
|
106432
106576
|
"page-0201",
|
|
106577
|
+
"page-0204",
|
|
106433
106578
|
"page-0415",
|
|
106434
106579
|
"page-0499",
|
|
106435
106580
|
"page-0526",
|
|
@@ -106445,7 +106590,8 @@
|
|
|
106445
106590
|
"page-1216"
|
|
106446
106591
|
],
|
|
106447
106592
|
"kubectl": [
|
|
106448
|
-
"page-0201"
|
|
106593
|
+
"page-0201",
|
|
106594
|
+
"page-0204"
|
|
106449
106595
|
],
|
|
106450
106596
|
"digital": [
|
|
106451
106597
|
"page-0202"
|
|
@@ -106455,62 +106601,145 @@
|
|
|
106455
106601
|
],
|
|
106456
106602
|
"digitalocean": [
|
|
106457
106603
|
"page-0202",
|
|
106458
|
-
"page-
|
|
106604
|
+
"page-0942"
|
|
106459
106605
|
],
|
|
106460
106606
|
"droplet": [
|
|
106461
106607
|
"page-0202"
|
|
106462
106608
|
],
|
|
106463
106609
|
"ports": [
|
|
106464
106610
|
"page-0202",
|
|
106465
|
-
"page-
|
|
106466
|
-
"page-
|
|
106611
|
+
"page-0205",
|
|
106612
|
+
"page-0206"
|
|
106467
106613
|
],
|
|
106468
106614
|
"caddy": [
|
|
106469
106615
|
"page-0202",
|
|
106616
|
+
"page-0206"
|
|
106617
|
+
],
|
|
106618
|
+
"begin:": [
|
|
106619
|
+
"page-0203"
|
|
106620
|
+
],
|
|
106621
|
+
"easy": [
|
|
106622
|
+
"page-0203"
|
|
106623
|
+
],
|
|
106624
|
+
"durable": [
|
|
106625
|
+
"page-0203"
|
|
106626
|
+
],
|
|
106627
|
+
"login": [
|
|
106628
|
+
"page-0203",
|
|
106629
|
+
"page-0798"
|
|
106630
|
+
],
|
|
106631
|
+
"deploy": [
|
|
106632
|
+
"page-0203",
|
|
106633
|
+
"page-0205",
|
|
106634
|
+
"page-0208",
|
|
106635
|
+
"page-1178",
|
|
106636
|
+
"page-1207",
|
|
106637
|
+
"page-1208"
|
|
106638
|
+
],
|
|
106639
|
+
"(optional)": [
|
|
106640
|
+
"page-0203",
|
|
106641
|
+
"page-0218"
|
|
106642
|
+
],
|
|
106643
|
+
"workspace": [
|
|
106644
|
+
"page-0203",
|
|
106645
|
+
"page-0333"
|
|
106646
|
+
],
|
|
106647
|
+
"whichever": [
|
|
106648
|
+
"page-0203"
|
|
106649
|
+
],
|
|
106650
|
+
"note:": [
|
|
106651
|
+
"page-0203"
|
|
106652
|
+
],
|
|
106653
|
+
"sheets/docs,": [
|
|
106654
|
+
"page-0203"
|
|
106655
|
+
],
|
|
106656
|
+
"it's": [
|
|
106657
|
+
"page-0203",
|
|
106658
|
+
"page-1188"
|
|
106659
|
+
],
|
|
106660
|
+
"enough": [
|
|
106661
|
+
"page-0203"
|
|
106662
|
+
],
|
|
106663
|
+
"just": [
|
|
106664
|
+
"page-0203"
|
|
106665
|
+
],
|
|
106666
|
+
"drive;": [
|
|
106667
|
+
"page-0203"
|
|
106668
|
+
],
|
|
106669
|
+
"these": [
|
|
106670
|
+
"page-0203"
|
|
106671
|
+
],
|
|
106672
|
+
"each": [
|
|
106673
|
+
"page-0203",
|
|
106674
|
+
"page-0209",
|
|
106675
|
+
"page-0213",
|
|
106676
|
+
"page-1192",
|
|
106677
|
+
"page-1214"
|
|
106678
|
+
],
|
|
106679
|
+
"their": [
|
|
106680
|
+
"page-0203"
|
|
106681
|
+
],
|
|
106682
|
+
"https://n8n": [
|
|
106683
|
+
"page-0203",
|
|
106470
106684
|
"page-0207"
|
|
106471
106685
|
],
|
|
106686
|
+
"west1": [
|
|
106687
|
+
"page-0203"
|
|
106688
|
+
],
|
|
106689
|
+
"engine": [
|
|
106690
|
+
"page-0204"
|
|
106691
|
+
],
|
|
106692
|
+
"heroku": [
|
|
106693
|
+
"page-0205"
|
|
106694
|
+
],
|
|
106695
|
+
"dockerfile": [
|
|
106696
|
+
"page-0205"
|
|
106697
|
+
],
|
|
106698
|
+
"hetzner": [
|
|
106699
|
+
"page-0206"
|
|
106700
|
+
],
|
|
106472
106701
|
"register": [
|
|
106473
|
-
"page-
|
|
106702
|
+
"page-0207",
|
|
106474
106703
|
"page-0739",
|
|
106475
106704
|
"page-0740",
|
|
106476
106705
|
"page-0874",
|
|
106477
106706
|
"page-0877"
|
|
106478
106707
|
],
|
|
106479
106708
|
"`docker`": [
|
|
106480
|
-
"page-
|
|
106709
|
+
"page-0207"
|
|
106481
106710
|
],
|
|
106482
106711
|
"group": [
|
|
106483
|
-
"page-
|
|
106712
|
+
"page-0207",
|
|
106484
106713
|
"page-0528",
|
|
106485
106714
|
"page-0691",
|
|
106486
106715
|
"page-1128"
|
|
106487
106716
|
],
|
|
106488
106717
|
"membership": [
|
|
106489
|
-
"page-
|
|
106718
|
+
"page-0207"
|
|
106490
106719
|
],
|
|
106491
106720
|
"session": [
|
|
106492
|
-
"page-
|
|
106721
|
+
"page-0207",
|
|
106493
106722
|
"page-0240",
|
|
106494
106723
|
"page-0638",
|
|
106495
106724
|
"page-0718"
|
|
106496
106725
|
],
|
|
106497
106726
|
"without": [
|
|
106498
|
-
"page-
|
|
106727
|
+
"page-0207",
|
|
106499
106728
|
"page-0691",
|
|
106500
106729
|
"page-1157"
|
|
106501
106730
|
],
|
|
106502
106731
|
"primary": [
|
|
106503
|
-
"page-
|
|
106732
|
+
"page-0207"
|
|
106504
106733
|
],
|
|
106505
106734
|
"env`": [
|
|
106506
|
-
"page-
|
|
106735
|
+
"page-0207"
|
|
106507
106736
|
],
|
|
106508
106737
|
"domain": [
|
|
106509
|
-
"page-
|
|
106738
|
+
"page-0207",
|
|
106510
106739
|
"page-1029"
|
|
106511
106740
|
],
|
|
106512
106741
|
"name": [
|
|
106513
|
-
"page-
|
|
106742
|
+
"page-0207",
|
|
106514
106743
|
"page-0557",
|
|
106515
106744
|
"page-0558",
|
|
106516
106745
|
"page-0652",
|
|
@@ -106521,31 +106750,27 @@
|
|
|
106521
106750
|
"page-1205"
|
|
106522
106751
|
],
|
|
106523
106752
|
"subdomain": [
|
|
106524
|
-
"page-
|
|
106753
|
+
"page-0207",
|
|
106525
106754
|
"page-0796"
|
|
106526
106755
|
],
|
|
106527
106756
|
"together": [
|
|
106528
|
-
"page-
|
|
106757
|
+
"page-0207"
|
|
106529
106758
|
],
|
|
106530
106759
|
"determine": [
|
|
106531
|
-
"page-
|
|
106760
|
+
"page-0207"
|
|
106532
106761
|
],
|
|
106533
106762
|
"reachable": [
|
|
106534
|
-
"page-
|
|
106763
|
+
"page-0207"
|
|
106535
106764
|
],
|
|
106536
106765
|
"serve": [
|
|
106537
|
-
"page-
|
|
106766
|
+
"page-0207"
|
|
106538
106767
|
],
|
|
106539
106768
|
"above": [
|
|
106540
|
-
"page-
|
|
106769
|
+
"page-0207",
|
|
106541
106770
|
"page-0208"
|
|
106542
106771
|
],
|
|
106543
|
-
"https://n8n": [
|
|
106544
|
-
"page-0203",
|
|
106545
|
-
"page-0204"
|
|
106546
|
-
],
|
|
106547
106772
|
"optional": [
|
|
106548
|
-
"page-
|
|
106773
|
+
"page-0207",
|
|
106549
106774
|
"page-0736",
|
|
106550
106775
|
"page-1156",
|
|
106551
106776
|
"page-1159",
|
|
@@ -106553,27 +106778,27 @@
|
|
|
106553
106778
|
"page-1205"
|
|
106554
106779
|
],
|
|
106555
106780
|
"gets": [
|
|
106556
|
-
"page-
|
|
106781
|
+
"page-0207",
|
|
106557
106782
|
"page-1216"
|
|
106558
106783
|
],
|
|
106559
106784
|
"used": [
|
|
106560
|
-
"page-
|
|
106785
|
+
"page-0207"
|
|
106561
106786
|
],
|
|
106562
106787
|
"cron": [
|
|
106563
|
-
"page-
|
|
106788
|
+
"page-0207",
|
|
106564
106789
|
"page-0682",
|
|
106565
106790
|
"page-0713",
|
|
106566
106791
|
"page-0714",
|
|
106567
106792
|
"page-1138"
|
|
106568
106793
|
],
|
|
106569
106794
|
"york": [
|
|
106570
|
-
"page-
|
|
106795
|
+
"page-0207"
|
|
106571
106796
|
],
|
|
106572
106797
|
"tls/ssl": [
|
|
106573
|
-
"page-
|
|
106798
|
+
"page-0207"
|
|
106574
106799
|
],
|
|
106575
106800
|
"local": [
|
|
106576
|
-
"page-
|
|
106801
|
+
"page-0207",
|
|
106577
106802
|
"page-0208",
|
|
106578
106803
|
"page-0515",
|
|
106579
106804
|
"page-0522",
|
|
@@ -106585,82 +106810,6 @@
|
|
|
106585
106810
|
"page-1211"
|
|
106586
106811
|
],
|
|
106587
106812
|
"done": [
|
|
106588
|
-
"page-0203"
|
|
106589
|
-
],
|
|
106590
|
-
"begin:": [
|
|
106591
|
-
"page-0204"
|
|
106592
|
-
],
|
|
106593
|
-
"easy": [
|
|
106594
|
-
"page-0204"
|
|
106595
|
-
],
|
|
106596
|
-
"durable": [
|
|
106597
|
-
"page-0204"
|
|
106598
|
-
],
|
|
106599
|
-
"login": [
|
|
106600
|
-
"page-0204",
|
|
106601
|
-
"page-0798"
|
|
106602
|
-
],
|
|
106603
|
-
"deploy": [
|
|
106604
|
-
"page-0204",
|
|
106605
|
-
"page-0206",
|
|
106606
|
-
"page-0208",
|
|
106607
|
-
"page-1178",
|
|
106608
|
-
"page-1207",
|
|
106609
|
-
"page-1208"
|
|
106610
|
-
],
|
|
106611
|
-
"(optional)": [
|
|
106612
|
-
"page-0204",
|
|
106613
|
-
"page-0218"
|
|
106614
|
-
],
|
|
106615
|
-
"workspace": [
|
|
106616
|
-
"page-0204",
|
|
106617
|
-
"page-0333"
|
|
106618
|
-
],
|
|
106619
|
-
"whichever": [
|
|
106620
|
-
"page-0204"
|
|
106621
|
-
],
|
|
106622
|
-
"note:": [
|
|
106623
|
-
"page-0204"
|
|
106624
|
-
],
|
|
106625
|
-
"sheets/docs,": [
|
|
106626
|
-
"page-0204"
|
|
106627
|
-
],
|
|
106628
|
-
"it's": [
|
|
106629
|
-
"page-0204",
|
|
106630
|
-
"page-1188"
|
|
106631
|
-
],
|
|
106632
|
-
"enough": [
|
|
106633
|
-
"page-0204"
|
|
106634
|
-
],
|
|
106635
|
-
"just": [
|
|
106636
|
-
"page-0204"
|
|
106637
|
-
],
|
|
106638
|
-
"drive;": [
|
|
106639
|
-
"page-0204"
|
|
106640
|
-
],
|
|
106641
|
-
"these": [
|
|
106642
|
-
"page-0204"
|
|
106643
|
-
],
|
|
106644
|
-
"each": [
|
|
106645
|
-
"page-0204",
|
|
106646
|
-
"page-0209",
|
|
106647
|
-
"page-0213",
|
|
106648
|
-
"page-1192",
|
|
106649
|
-
"page-1214"
|
|
106650
|
-
],
|
|
106651
|
-
"their": [
|
|
106652
|
-
"page-0204"
|
|
106653
|
-
],
|
|
106654
|
-
"west1": [
|
|
106655
|
-
"page-0204"
|
|
106656
|
-
],
|
|
106657
|
-
"heroku": [
|
|
106658
|
-
"page-0206"
|
|
106659
|
-
],
|
|
106660
|
-
"dockerfile": [
|
|
106661
|
-
"page-0206"
|
|
106662
|
-
],
|
|
106663
|
-
"hetzner": [
|
|
106664
106813
|
"page-0207"
|
|
106665
106814
|
],
|
|
106666
106815
|
"openshift": [
|
|
@@ -107075,7 +107224,7 @@
|
|
|
107075
107224
|
"page-0208",
|
|
107076
107225
|
"page-0511",
|
|
107077
107226
|
"page-0694",
|
|
107078
|
-
"page-
|
|
107227
|
+
"page-1197"
|
|
107079
107228
|
],
|
|
107080
107229
|
"reopening": [
|
|
107081
107230
|
"page-0208"
|
|
@@ -107295,7 +107444,7 @@
|
|
|
107295
107444
|
],
|
|
107296
107445
|
"(recommended)": [
|
|
107297
107446
|
"page-0225",
|
|
107298
|
-
"page-
|
|
107447
|
+
"page-0943"
|
|
107299
107448
|
],
|
|
107300
107449
|
"pass": [
|
|
107301
107450
|
"page-0225",
|
|
@@ -107346,7 +107495,7 @@
|
|
|
107346
107495
|
"page-0931",
|
|
107347
107496
|
"page-0934",
|
|
107348
107497
|
"page-0939",
|
|
107349
|
-
"page-
|
|
107498
|
+
"page-0943",
|
|
107350
107499
|
"page-0980",
|
|
107351
107500
|
"page-1003",
|
|
107352
107501
|
"page-1009",
|
|
@@ -108522,7 +108671,7 @@
|
|
|
108522
108671
|
],
|
|
108523
108672
|
"mandrill": [
|
|
108524
108673
|
"page-0365",
|
|
108525
|
-
"page-
|
|
108674
|
+
"page-0866"
|
|
108526
108675
|
],
|
|
108527
108676
|
"marketstack": [
|
|
108528
108677
|
"page-0366",
|
|
@@ -108773,13 +108922,13 @@
|
|
|
108773
108922
|
"bins": [
|
|
108774
108923
|
"page-0415"
|
|
108775
108924
|
],
|
|
108776
|
-
"
|
|
108925
|
+
"profitwell": [
|
|
108777
108926
|
"page-0416",
|
|
108778
|
-
"page-
|
|
108927
|
+
"page-0924"
|
|
108779
108928
|
],
|
|
108780
|
-
"
|
|
108929
|
+
"posthog": [
|
|
108781
108930
|
"page-0417",
|
|
108782
|
-
"page-
|
|
108931
|
+
"page-0922"
|
|
108783
108932
|
],
|
|
108784
108933
|
"pushbullet": [
|
|
108785
108934
|
"page-0418",
|
|
@@ -108827,15 +108976,15 @@
|
|
|
108827
108976
|
],
|
|
108828
108977
|
"rundeck": [
|
|
108829
108978
|
"page-0430",
|
|
108830
|
-
"page-
|
|
108979
|
+
"page-0941"
|
|
108831
108980
|
],
|
|
108832
108981
|
"wasabi": [
|
|
108833
108982
|
"page-0431",
|
|
108834
|
-
"page-
|
|
108983
|
+
"page-0942"
|
|
108835
108984
|
],
|
|
108836
108985
|
"salesforce": [
|
|
108837
108986
|
"page-0432",
|
|
108838
|
-
"page-
|
|
108987
|
+
"page-0943",
|
|
108839
108988
|
"page-1102",
|
|
108840
108989
|
"page-1205"
|
|
108841
108990
|
],
|
|
@@ -109282,7 +109431,7 @@
|
|
|
109282
109431
|
"page-0663",
|
|
109283
109432
|
"page-0689",
|
|
109284
109433
|
"page-1042",
|
|
109285
|
-
"page-
|
|
109434
|
+
"page-1197"
|
|
109286
109435
|
],
|
|
109287
109436
|
"upload": [
|
|
109288
109437
|
"page-0507",
|
|
@@ -109966,7 +110115,7 @@
|
|
|
109966
110115
|
"connected": [
|
|
109967
110116
|
"page-0561",
|
|
109968
110117
|
"page-0569",
|
|
109969
|
-
"page-
|
|
110118
|
+
"page-0943"
|
|
109970
110119
|
],
|
|
109971
110120
|
"conversational": [
|
|
109972
110121
|
"page-0562"
|
|
@@ -111114,7 +111263,7 @@
|
|
|
111114
111263
|
"page-0863"
|
|
111115
111264
|
],
|
|
111116
111265
|
"malcore": [
|
|
111117
|
-
"page-
|
|
111266
|
+
"page-0865"
|
|
111118
111267
|
],
|
|
111119
111268
|
"(general)": [
|
|
111120
111269
|
"page-0874"
|
|
@@ -111196,13 +111345,13 @@
|
|
|
111196
111345
|
"page-0937"
|
|
111197
111346
|
],
|
|
111198
111347
|
"spaces": [
|
|
111199
|
-
"page-
|
|
111348
|
+
"page-0942"
|
|
111200
111349
|
],
|
|
111201
111350
|
"(legacy)": [
|
|
111202
|
-
"page-
|
|
111351
|
+
"page-0943"
|
|
111203
111352
|
],
|
|
111204
111353
|
"authenticating": [
|
|
111205
|
-
"page-
|
|
111354
|
+
"page-0943"
|
|
111206
111355
|
],
|
|
111207
111356
|
"sekoia": [
|
|
111208
111357
|
"page-0949"
|
|
@@ -111834,7 +111983,7 @@
|
|
|
111834
111983
|
],
|
|
111835
111984
|
"trial": [
|
|
111836
111985
|
"page-1193",
|
|
111837
|
-
"page-
|
|
111986
|
+
"page-1197",
|
|
111838
111987
|
"page-1205"
|
|
111839
111988
|
],
|
|
111840
111989
|
"expiration": [
|
|
@@ -113049,6 +113198,7 @@
|
|
|
113049
113198
|
"page-0202",
|
|
113050
113199
|
"page-0203",
|
|
113051
113200
|
"page-0204",
|
|
113201
|
+
"page-0205",
|
|
113052
113202
|
"page-0206",
|
|
113053
113203
|
"page-0207",
|
|
113054
113204
|
"page-0208",
|
|
@@ -114169,10 +114319,10 @@
|
|
|
114169
114319
|
"postbin": [
|
|
114170
114320
|
"page-0415"
|
|
114171
114321
|
],
|
|
114172
|
-
"
|
|
114322
|
+
"profitwell": [
|
|
114173
114323
|
"page-0416"
|
|
114174
114324
|
],
|
|
114175
|
-
"
|
|
114325
|
+
"posthog": [
|
|
114176
114326
|
"page-0417"
|
|
114177
114327
|
],
|
|
114178
114328
|
"pushbullet": [
|