📚 Improve documentation about how to contribute to n8n

This commit is contained in:
Jan Oberhauser 2019-08-14 08:30:54 +02:00
parent a66235cadb
commit 7cd563183a
2 changed files with 108 additions and 5 deletions

107
CONTRIBUTING.md Normal file
View 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
```

View file

@ -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)