Install n8n - Open Source Workflow Automation - on Linux

What is n8n?

n8n is an extendable workflow automation tool. With a fair-code distribution model, n8n will always have visible source code, be available to self-host, and allow you to add your own custom functions, logic and apps. n8n's node-based approach makes it highly versatile, enabling you to connect anything to everything. -https://github.com/n8n-io/n8n

Installing n8n

  1. Log into the Linux device
  2. Run the following commands in a terminal window
    # update software repositories
    sudo apt update
    # install available software updates
    sudo apt upgrade -y
    # add nodejs software repository
    curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
    # install nodejs
    sudo apt install nodejs -y
    # install mariadb
    sudo apt install mariadb-server mariadb-client -y
    # configure the MySQL database
    sudo su
    mysql_secure_installation
  3. Press Enter to login as root
  4. Type N and press Enter to not switch to unix socket authentication
  5. Type Y and press Enter to set a root password, type the password twice to confirm
  6. Type Y and press Enter to remove anonymous users
  7. Type Y and press Enter to disallow root login remotely
  8. Type Y and press Enter to remove the test database
  9. Type Y and press Enter to reload privilege tables
  10. Run the following command to login into MySQL:
    mysql -u root -p
  11. Authenticate with the root password set earlier
  12. Run the following commands to create the n8n database and database user
    CREATE DATABASE n8n;
    GRANT ALL ON n8n.* to 'n8n_rw'@'localhost' IDENTIFIED BY 'n8n_N8N!';
    FLUSH PRIVILEGES;
    EXIT;
    exit
  13. Continue with the following commands:
    # set environmental variables
    export DB_TYPE="mysqldb"
    export DB_MYSQLDB_DATABASE="n8n"
    export DB_MYSQLDB_HOST="localhost"
    export DB_MYSQLDB_USER="n8n_rw"
    export DB_MYSQLDB_PASSWORD="n8n_N8N!"
    export GENERIC_TIMEZONE="America/New_York"
    # install n8n
    sudo npm install n8n --location=global
    # audit and fix vulnerabilities
    sudo npm audit fix
    # run n8n
    n8n
  14. Open a web browser and navigate to http://DNSorIP:5678
  15. Complete the form with an email, first name, last name and password > Click next
  16. Complete the questionnaire > Click continue
  17. Click Get started
  18. Welcome to n8n

Running n8n as a Service

  1. Press CTRL+C to end the running n8n process
  2. Continue with the following commands
    # create n8n service file
    sudo nano /etc/systemd/system/n8n.service
  3. Paste the following configuration into n8n.service

    [Unit]
    Description=n8n
    After=mariadb.service

    [Service]
    User=root
    Group=root
    Environment=DB_TYPE=mysqldb
    Environment=DB_MYSQLDB_DATABASE=n8n
    Environment=DB_MYSQLDB_HOST=localhost
    Environment=DB_MYSQLDB_USER=n8n_rw
    Environment=DB_MYSQLDB_PASSWORD=n8n_N8N!
    Environment=GENERIC_TIMEZONE=America/New_York
    ExecStart=n8n
    WorkingDirectory=/usr/bin

    [Install]
    WantedBy=multi-user.target

  4. Press CTRL+O, Enter, CTRL+X to write the changes
  5. Continue with the following commands
    # reload systemd services
    sudo systemctl daemon-reload
    # start n8n service on boot and now
    sudo systemctl enable n8n --now
  6. Back in the web browser, refresh n8n to verify it is now running a service
  7. Log in using the email address and password setup earlier

Source: https://docs.n8n.io/hosting/installation/npm/