n8n/packages/cli/src/modules/source-control.ee
2026-04-28 09:24:01 +00:00
..
__tests__ refactor: Migrate all cipher call sites to encryptV2/decryptV2 (#29096) 2026-04-28 09:24:01 +00:00
middleware refactor: Migrate source control feature to modules (#22453) 2026-01-06 15:59:11 +00:00
types fix(core): Improve performance of the push/pull modal getStatus (#27188) 2026-04-07 15:19:50 +00:00
constants.ts feat(core): Add data tables to env features (#23828) 2026-02-09 14:35:47 +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-context.factory.ts fix(core): Improve performance of the push/pull modal getStatus (#27188) 2026-04-07 15:19:50 +00:00
source-control-export.service.ee.ts refactor: Migrate all cipher call sites to encryptV2/decryptV2 (#29096) 2026-04-28 09:24:01 +00:00
source-control-git.service.ee.ts fix(core): Implement data tables name collision detection on pull (#26416) 2026-04-15 09:38:08 +00:00
source-control-helper.ee.ts fix(core): Prevent OAuth token wipe during source control pull (#26566) 2026-03-10 14:05:25 +00:00
source-control-import.service.ee.ts refactor: Migrate all cipher call sites to encryptV2/decryptV2 (#29096) 2026-04-28 09:24:01 +00:00
source-control-preferences.service.ee.ts refactor: Migrate all cipher call sites to encryptV2/decryptV2 (#29096) 2026-04-28 09:24:01 +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 fix(core): Improve performance of the push/pull modal getStatus (#27188) 2026-04-07 15:19:50 +00:00
source-control-status.service.ee.ts fix(core): Implement data tables name collision detection on pull (#26416) 2026-04-15 09:38:08 +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 fix(core): Improve performance of the push/pull modal getStatus (#27188) 2026-04-07 15:19:50 +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