mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-24 20:24:05 -08:00
📚 Improve documentation about how to contribute to n8n
This commit is contained in:
parent
a66235cadb
commit
7cd563183a
107
CONTRIBUTING.md
Normal file
107
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,107 @@
|
|||
# Contributing to n8n
|
||||
|
||||
Great that you are here and you want to contribute to n8n
|
||||
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
This project and everyone participating in it are governed by the Code of
|
||||
Conduct which can be found in the file [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
|
||||
By participating, you are expected to uphold this code. Please report
|
||||
unacceptable behavior to jan@n8n.io.
|
||||
|
||||
|
||||
## Directory Structure
|
||||
|
||||
n8n is split up in different modules which are all in a single mono repository.
|
||||
|
||||
The most important directories:
|
||||
|
||||
- [/docker/image](/docker/image) - Dockerfiles to create n8n containers
|
||||
- [/docker/compose](/docker/compose) - Examples Docker Setups
|
||||
- [/packages](/packages) - The different n8n modules
|
||||
- [/packages/cli](/packages/cli) - CLI code to run front- & backend
|
||||
- [/packages/core](/packages/core) - Core code which handles workflow
|
||||
execution, active webhooks and
|
||||
workflows
|
||||
- [/packages/editor-ui](/packages/editor-ui) - Vue frontend workflow editor
|
||||
- [/packages/node-dev](/packages/node-dev) - Simple CLI to create new n8n-nodes
|
||||
- [/packages/nodes-base](/packages/nodes-base) - Base n8n nodes
|
||||
- [/packages/worflow](/packages/worflow) - Workflow code with interfaces which
|
||||
get used by front- & backend
|
||||
|
||||
|
||||
## Development Setup
|
||||
|
||||
If you want to change or extend n8n you have to make sure that all needed
|
||||
dependencies are installed and the packages get linked correctly. Here a short guide on how that can be done:
|
||||
|
||||
|
||||
### Requirements
|
||||
|
||||
|
||||
#### Build Tools
|
||||
|
||||
That all the packages which n8n uses can be installed and compiled correctly
|
||||
the essential build tools must be installed. This is probably already the case
|
||||
for the most people but if you are totally new to development or just setting
|
||||
up a new computer it is probably still missing.
|
||||
|
||||
Linux:
|
||||
```
|
||||
apt-get install -y build-essential python
|
||||
```
|
||||
|
||||
Windows:
|
||||
```
|
||||
npm install -g windows-build-tools
|
||||
```
|
||||
|
||||
#### lerna
|
||||
|
||||
n8n is split up in different modules which are all in a single mono repository.
|
||||
To make development as easy as possible does [lerna](https://lerna.js.org) get
|
||||
used. It automatically sets up file-links between modules which depend on each
|
||||
other.
|
||||
|
||||
So for the setup to work correctly lerna has to be installed globally like this:
|
||||
|
||||
```
|
||||
npm install -g lerna
|
||||
```
|
||||
|
||||
|
||||
### Actual n8n setup
|
||||
|
||||
Now that everything n8n requires to run is installed the actual n8n code can be
|
||||
checked out and set up:
|
||||
|
||||
1. Clone the repository
|
||||
```
|
||||
git clone https://github.com/n8n-io/n8n.git
|
||||
```
|
||||
|
||||
2. Go into repository folder
|
||||
```
|
||||
cd n8n
|
||||
```
|
||||
|
||||
3. Install all dependencies of all modules and link them together:
|
||||
```
|
||||
lerna bootstrap --hoist
|
||||
```
|
||||
|
||||
4. Build all the code:
|
||||
```
|
||||
npm run build
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Start
|
||||
|
||||
To start n8n execute:
|
||||
|
||||
```
|
||||
npm run start
|
||||
```
|
|
@ -33,11 +33,7 @@ And information about how to run it in Docker [here](https://github.com/n8n-io/n
|
|||
|
||||
## Development Setup
|
||||
|
||||
1. Clone the repository
|
||||
2. Go into repository folder
|
||||
3. Run: `npm install`
|
||||
4. Run: `npx lerna bootstrap --hoist`
|
||||
5. Run: `npm run build` or `npx lerna exec npm run build` (if lerna is not installed)
|
||||
A guide how to set everything up can be found in the file [CONTRIBUTING.md](CONTRIBUTING.md)
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue