n8n/packages/cli/src/modules/source-control.ee
2026-01-23 14:30:42 +00:00
..
__tests__ perf(core): Make source control push deletions async (#24784) 2026-01-23 14:30:42 +00:00
middleware refactor: Migrate source control feature to modules (#22453) 2026-01-06 15:59:11 +00:00
types fix(core): Workflow tag removal syncing (#24557) 2026-01-22 09:44:59 +00:00
constants.ts refactor: Migrate source control feature to modules (#22453) 2026-01-06 15:59:11 +00:00
README.md docs: Add source control setup demo to SourceControl module README.md (#23964) 2026-01-07 11:03:46 +00:00
source-control-export.service.ee.ts perf(core): Make source control push deletions async (#24784) 2026-01-23 14:30:42 +00:00
source-control-git.service.ee.ts fix(core): Improve SSH host key verification for source control (#24408) 2026-01-16 10:57:17 +00:00
source-control-helper.ee.ts refactor: Migrate source control feature to modules (#22453) 2026-01-06 15:59:11 +00:00
source-control-import.service.ee.ts fix(core): Workflow tag removal syncing (#24557) 2026-01-22 09:44:59 +00:00
source-control-preferences.service.ee.ts fix(core): Improve SSH host key verification for source control (#24408) 2026-01-16 10:57:17 +00:00
source-control-resource-helper.ts refactor: Migrate source control feature to modules (#22453) 2026-01-06 15:59:11 +00:00
source-control-scoped.service.ts refactor: Migrate source control feature to modules (#22453) 2026-01-06 15:59:11 +00:00
source-control-status.service.ee.ts fix(core): Workflow tag removal syncing (#24557) 2026-01-22 09:44:59 +00:00
source-control.config.ts refactor: Migrate source control feature to modules (#22453) 2026-01-06 15:59:11 +00:00
source-control.controller.ee.ts fix(core): Put source control preferences behind auth (#24113) 2026-01-13 12:30:24 +00:00
source-control.module.ts perf(core): Disable unused modules on workers (#24449) 2026-01-16 12:34:22 +00:00
source-control.service.ee.ts perf(core): Make source control push deletions async (#24784) 2026-01-23 14:30:42 +00:00

Source Control - Environments

Environments enable enterprise users of n8n to effectively manage multiple deployments of n8n by synchronizing them using a shared git repostiory.

Link to docs

Local development

When using the "usual" pnpm run dev scripts to start a local n8n instance, your local git settings and credentials will be picked up by the git repository that is cloned within n8n.

This is why you should start n8n in a docker container when doing any kind of manual testing of this feature.

Building a local docker image from your local checkout: pnpm build:docker

Starting a local container using that image: pnpm --filter n8n-containers stack:enterprise

The development experience of running n8n from source in a docker container still leaves a lot to be desired (lots of waiting for building and running the container). We should improve on this in the future.

Setup Demo

Video Demo

  • create a github repo
    • copy the ssh repository url
  • In n8n
    • go to settings/Environments
    • paste the ssh repository url
    • copy the ssh
  • Back in github
    • go to Settings/Deploy Keys
    • Click Add deploy key
    • Pate the ssh
    • important Tick "Allow write access"
  • Back in n8n
    • Click Connect