Installing N8N locally¶
What is n8n or an integration hub?¶
Don't know yet what n8n is or what an integration hub does? Find more information on that on our blog.
Basic (LOCAL) install¶
Simple local install¶
To install n8n globally using npm:
npm install n8n -g
After the installation, start n8n running the following command:
n8n
# or
n8n start
Local install from clone (to change)¶
Clone the repository:
npm install -g npm@6
npm install
lerna bootstrap --hoist
npm run build
npm run dev
Detailed instructions¶
Docker compose install¶
I’m still working on this docker-compose file:
This is the preferred way. Given you have an existing docker-compose file.
n8n:
image: n8nio/n8n
restart: always
domainname: n8n
ports:
- "127.0.0.1:80:5678"
networks:
- default
- traefik
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER
- N8N_BASIC_AUTH_PASSWORD
- N8N_HOST=${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=http
- NODE_ENV=production
- WEBHOOK_TUNNEL_URL=http://${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
volumes:
- ${DATA_FOLDER}/.n8n:/home/node/.n8n
extra_hosts:
- "n8n_mautic.docker.localhost:host-gateway"
#links:
# - "mautic:floristacoddmmerce.docker.localhost"
My .env file:
# Folder where data should be saved
DATA_FOLDER=<LOCAL_FOLDER>/n8n/data
# The top level domain to serve from
DOMAIN_NAME=127.0.0.1
#DOMAIN_NAME=host.docker.internal
# The subdomain to serve from
SUBDOMAIN=
# DOMAIN_NAME and SUBDOMAIN combined decide where n8n will be reachable from
# above example would result in: https://n8n.example.com
# The user name to use for autentication - IMPORTANT ALWAYS CHANGE!
N8N_BASIC_AUTH_USER=user
# The password to use for autentication - IMPORTANT ALWAYS CHANGE!
N8N_BASIC_AUTH_PASSWORD=password
# Optional timezone to set which gets used by Cron-Node by default
# If not set New York time will be used
GENERIC_TIMEZONE=Europe/Berlin
# The email address to use for the SSL certificate creation
SSL_EMAIL=user@example.com
Follow the logs wit this command:
docker-compose logs -f -t
The n8n interface will be accessible via
projectname.docker.localhost:5678
In my case: http://floristacommerce.docker.localhost:5678/workflow/2
Logging stuff¶
Create a Drupal endpoint¶
See code in florista example
Create the n8n node¶
Add a http request Node
- authentication none
- request method POST
- ignore SSL issues (for now)
- response format JSON
- run 'execute node'
Triggering from Drupal¶
Create n8n Webhook node¶
Create the node (do not link yet)
Create a Drupal Webhook¶
-
Get the webhook details visible in n8n
-
Create new webhook in Drupal
Test Webhook node¶
Create the node (do not link yet)
-
Trigger event in Drupal
-
Show in Drupal watchdog Log
-
Show output in n8n
Triggering from Mautic¶
Install Mautic (SKIP for PRES)¶
Add Mautic Database to Docker compose
mauticdb:
image: percona/percona-server:5.7
container_name: mauticdb
volumes:
- mysql_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=mysecret
command:
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
networks:
- default
Add Mautic to docker compose
mautic:
image: mautic/mautic:latest
container_name: mautic
domainname: mautic
links:
- mauticdb:mysql
depends_on:
- mauticdb
ports:
- 8080:80
networks:
- default
- traefik
volumes:
- mautic_data:/var/www/html
environment:
- MAUTIC_DB_HOST=mauticdb
- MYSQL_PORT_3306_TCP=3306
- MAUTIC_DB_USER=root
- MAUTIC_DB_PASSWORD=mysecret
- MAUTIC_DB_NAME=mautic
- MAUTIC_RUN_CRON_JOBS=true
labels:
- "traefik.docker.network=traefik"
- "traefik.enable=true"
- "traefik.port=8080"
- "traefik.frontend.priority=1000"
- traefik.http.routers.n8n.rule=Host(`mautic`)
I personally added them to /etc/hosts too
127.0.0.1 mautic
127.0.0.1 n8
docker-compose up -d
To spin the instance up, surf to Mautic and go trough the installation.
Inspiration¶
Put the site in offline mode if temperature rises above 20 degrees (GO OUTSIDE!)
-
Drupal to Mautic to Microsoft dynamics (Over flow)
-
Gmail to Drupal
-
Google Calendar to Drupal (or vice versa)
-
Reddit to Drupal
-
Weather to Drupal
-
hacker news to Drupal
-
Mailchimp to Drupal
-
Drupal to Dropbox
-
What is your crazy requirement?
Example:
1 |
|