# n8n: fair-code source, Docker-only quick start, and a dev script that was removed

> n8n is a TypeScript workflow automation platform with a visual canvas, custom code nodes and AI agents, published as a monorepo whose front page installs it two ways and both require Docker. It calls itself fair-code rather than open source, which is the first thing to settle before you build on it.

**n8n-io/n8n** — A fair-code workflow automation platform with native AI capabilities.

- Repository: https://github.com/n8n-io/n8n
- Website: https://n8n.io
- Stars: 205,953 · Forks: 60,891
- Language: TypeScript
- License: not declared
- Published: 2026-08-08 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/n8n-io-n8n

## Two quick start paths, and both of them need Docker

The front page offers a script first and Docker second. The script is one line, and it assumes you already have Docker installed:

```sh
curl -fsSL https://get.n8n.io | sh
```

That pipes a remote script straight into your shell, so nothing on your machine shows you what it does before it runs. If your environment will not allow that, the manual path is spelled out, and it is only three lines. It creates a named volume, then runs the published image with the port published and that volume mounted at the container's home directory:

```sh
docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
```

The editor answers on http://localhost:5678. Neither route mentions a package manager, so a host without a container runtime gets nothing from this page, and the npm distribution that the monorepo builds is not described here.

## The container runs with --rm, so the named volume is the only state

Look closely at the flags in that run command, because they decide what you keep. `--rm` deletes the container when it exits, so the filesystem layer holding your instance disappears with it. Everything you want to survive has to sit on the volume, and the single mount point is `/home/node/.n8n`. Credentials, workflow data and encryption keys are therefore only as durable as that volume, and `docker volume create n8n_data` is the step people skip when they retype the command from memory.

The port is published as 5678 to 5678 with no flags for TLS, a host name, or an authentication setting, and the README does not document how to put the editor behind a proxy. The consequence for a reader planning a rollout: this command is a local start, not a deployment, and the gap between the two is yours to close before anything sensitive runs on it.

## fair-code is not open source, and the two license files say so

The license field in the repository metadata reads NOASSERTION, while the root carries LICENSE.md and LICENSE_EE.md. The front page describes the arrangement as fair-code: source available, self-hostable, extensible, distributed under the Sustainable Use License and the n8n Enterprise License, with enterprise licenses sold for additional features and support. Extensible in the sense of adding your own nodes is stated plainly; the conditions attached to running the product commercially are not restated anywhere on the page.

So the honest answer to the common question is that n8n is not an open source project in the sense most people mean when they self-host something. The source is on your disk and you can change it, but reading is not the same as being free to do what you like with it. Contributors are covered separately by CONTRIBUTOR_LICENSE_AGREEMENT.md. Before you build a business process on it, read both license files, and treat faircode.io and the license documentation as the authority rather than a summary of them.

## The dev script exists only to tell you it was removed

In the root package.json, the script a contributor reaches for first is a notice:

```json
{
  "name": "n8n-monorepo",
  "version": "2.42.0",
  "engines": {
    "node": ">=24.0.0",
    "pnpm": ">=12.4.2"
  },
  "packageManager": "pnpm@12.4.2"
}
```

The `dev` entry points at scripts/dev-command-removed-notice.mjs, so running it explains that the command is gone instead of starting anything. The real work is spread across filtered turbo targets: `dev:be` filters to n8n, `dev:fe:editor` to n8n-editor-ui, `dev:ai` to the langchain node package plus n8n and n8n-core, and `dev:e2e` opens the playwright runner with `--ui`. Consequence for a new contributor: the fastest way to be useful is to learn the filter names, because the documented command no longer does what its name suggests.

## A preinstall hook blocks npm, so the wrong install fails on purpose

The same file pins the toolchain twice, in `engines` and in `packageManager`, and adds a `preinstall` entry that runs scripts/block-npm-install.js. The intent is clear from the filename: npm is not the supported installer here, and pnpm is, with pnpm-lock.yaml and pnpm-workspace.yaml at the root backing that up. Node must be at or above 24.0.0.

That is a good decision for a monorepo with patches/ and a turbo pipeline, and it is a real cost for anyone arriving from an npm background or a Node 20 image. Consequence: a CI runner or a base image on an older Node release fails at install time, and the error names the version rather than the reason, so the fix is visible once you know to look at `engines`.

## Building means picking one package out of a filtered pipeline

The scripts describe a monorepo where no single command builds everything you might want. `build` runs turbo across the workspace, `build:n8n` and `build:deploy` both call scripts/build-n8n.mjs, and the Docker variants chain further steps: build:docker adds dockerize-n8n.mjs, build:docker:scan adds scan-n8n-image.mjs, build:docker:smoke calls smoke-n8n-image.mjs, and build:docker:test filters a container test run to n8n-playwright. Type checking is `turbo typecheck`.

The package names in those filters show the split: n8n for the backend, n8n-editor-ui for the canvas, n8n-core, @n8n/n8n-nodes-langchain for the AI nodes, @n8n/design-system, and n8n-playwright. What you cannot do from the front page is produce a single artifact in one step. A reader who wants a custom node has to decide first whether to build the workspace, build the Docker image, or consume the published image as the quick start does.

## The release feed moved a version tag, beta and stable in one morning

Three tags were published on 2026-09-29: n8n@2.42.0 at 07:22, a tag named beta seconds later, and a tag named stable at 07:31. The version field in the root package.json matches at 2.42.0, and the last push to the repository was on 2026-09-25, so the release followed the branch by a few days.

Moving tags named beta and stable are convenient for a quick trial and dangerous for reproducibility, because the same reference resolves to different commits next week. The consequence is a deployment rule: pin the versioned tag, and treat beta and stable as a moving pointer you can only use when you intend to track the tip. CHANGELOG.md at the root is where a reader checks what changed between those points.

## The production claims on the front page have no definition attached

The capability list promises a lot in compressed phrases: model flexibility with no lock-in across OpenAI, Anthropic, Google or open source models, design from prototype to production with logic, tool use, human approvals and full observability, enterprise-ready deployment with role-based access and audit trails, and 1500+ integrations with 9,000+ workflow templates. Each of those is a headline, and none is defined on the page. Nothing states what full observability collects, and nothing marks which items belong to the paid enterprise tier.

That is the gap to price in. You can self-host the container and connect the models today, but whether the audit trail and the approval steps you were sold exist in the build you just started is a question the front page will not answer, and the boundary between the Sustainable Use License and the enterprise license decides it. Take a trial against the documentation before you commit a team to it.

## Conclusion

Use n8n when you want a visual canvas over APIs you already pay for, and can run containers. Do not treat it as open source software: it ships under the Sustainable Use License and the n8n Enterprise License, with enterprise licenses sold separately. Before you build on it, read LICENSE.md and LICENSE_EE.md for what you may not do, then confirm in docs.n8n.io which capabilities sit behind the enterprise tier.

## FAQ

### What do you use n8n for?

Workflow automation built on a visual canvas, with JavaScript, Python and npm packages available inside the workflow when a node is not enough. The project advertises 1500+ integrations and 9,000+ workflow templates, and it runs self-hosted or in the cloud at app.n8n.cloud.

### What does n8n stand for?

Nodematation: node- for the Node-View and for Node.js, and -mation for automation, shortened because the long form was awkward to type in a CLI. It is pronounced n-eight-n.

### Is n8n free and open source?

It calls itself fair-code, distributed under the Sustainable Use License and the n8n Enterprise License, and the front page lists source available, self-hostable and extensible. Enterprise licenses are sold separately for additional features and support, so source visibility is not the same as an open source license.

### What can n8n AI do?

It builds and operates AI workflows and multi-step agents using your own data, models and tools, and connects to OpenAI, Anthropic, Google or open source models. The front page also names logic, tool use, human approvals and observability as part of moving a workflow to production.

### What is the docker.n8n.io/n8nio/n8n image?

It is the image the manual Docker install runs, named n8n, with port 5678 published and the n8n_data volume mounted at /home/node/.n8n. The container is started with --rm, so that volume holds whatever you want to keep.

## Sources

- [Official documentation](https://n8n.io)
- [Official README](https://github.com/n8n-io/n8n#readme)
- [Project repository](https://github.com/n8n-io/n8n)
- [Release notes](https://github.com/n8n-io/n8n/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/n8n-io-n8n
