← Andrew Sergeyev | CTO of ISD Group | Creative Digital Agency

N8N Free Self Hosting Manual (€5 for 6 months, 20 minutes of your time)

This is a manual for self hosting publicly available N8N on your own AWS account. It will take up to 20 minutes to completes. No special knowledge required. The this is how the result looks like:

Login: test@isd-group.com, password: NNNN8888

I propose to use AWS EC2 instance, which is free for 6 months (starting from July 15, 2025, "Free Tier lasts for 6 months from the date you created your account", according to AWS documentation).

Basic setup: t3.micro instance, 30 Gb storage, publicly available custom subdomain with SSL (https), basic server security, nginx, docker, letsencrypt.

This manual is NOT based on the official documentation but on the author's experience.

Requirements

- Gmail account
- A credit/debit card with 1 euro on account (AWS will return it right away)
- A domain. If you don't have one, please register any free domain, like pp.ua from nic.ua registrator (Don't want to bother? Continue reading, we've got a solution)
- Google Calendar to set a reminder to cancel the plan in 6 months OR see options below
- Access to your domain DNS control panel. I recommend creating n8n subdomain for your company's main domain (like, n8n.mycompany.com)
- Before continue, please, input n8n subdomain you're planning to use (no www, no https) — this affects ths scripts below:

Registration

  1. Create a free gmail account or use your own @gmail.com address
  2. Create a free AWS account
  3. Look into SPAM for confirmation email and click the link
  4. Create a strong password (letters, numbers, special symbols)
  5. Choose Free plan
  6. Choose “Personal - for your own projects
  7. Input billing information (your card number, expiration date, cvv code and billing address)

Inside AWS console

  1. Open AWS console
  2. Choose region (at the top right dropdown menu) = Europe (Stockholm)
  3. Choose main menu -> all services -> compute -> EC2 (or put “ec2” into search field)
  4. Click “Launch instance” button
  5. Name = n8n (or your company's name, no spaces, please)
  6. Application and OS Images = Debian
  7. Key pair (login) - click “Create new key pair
  8. Key pair name = n8n
  9. Leave RSA and .pem selected by default
  10. Click “Create key pair” - this will download .pem file to your computer's Downloads folder
  11. Mark checkbox “Allow HTTPS traffic from the internet
  12. Mark checkbox “Allow HTTP traffic from the internet” (required to get Let's Encrypt SSL certificate)
  13. Configure storage: correct 8 to 30 GiB (this will give you 30 Gb space on your hard disk)
  14. Click “Launch instance” (BTW: instance = server)

Open your newly created instance

  1. Click on instance ID in this message — “Successfully initiated launch of instance (i-absndhfjeu39saiuy)”
  2. Find section “Public IPv4 address” and copy IP address (it looks like 92.80.123.115)

Open your domain registration website (like, godaddy.com or nic.ua)

If you don't have a domain and don't want to bother, please, contact Andrew and send him "Public IPv4 address", you've just copied. He'll create you a random subdomain for you.

  1. Open your domain DNS settings.
  2. Create A record for your domain with name = n8n and value = [IP address] you’ve just copied
  3. Wait 5 minutes

Open terminal on Mac or PowerShell on Windows (command line tool)

  1. Check that you have ssh installed, copy and paste this line and press enter: ssh -V
  2. If you see “command not found” message, please install ssh first (google “install ssh on mac/windows”)
  3. Open the folder where you downloaded .pem file (should be “Downloads”) - copy/paste this and press enter: cd ~/Downloads
  4. ONLY ON MAC: Copy/paste this and press enter: chmod 600 ./n8n.pem
  5. Copy/paste this and press enter: ssh -i ./n8n.pem admin@n8n.mycompany.com
  6. Type “yes” and press enter. You are logged in to the server now.

Server setup & installing N8N

  1. Copy/paste this and press enter: *******************
  2. The process will take up to 4 min
  3. Hit Cmd+D or Ctrl+D to log out from server.

Try N8N

  1. Open n8n.mycompany.com (this link is not active because you haven't input subdomain at the top of this page).
  2. Set up owner account and answer some marketing questions.
  3. Skip sending free license key, you don't need it.
  4. You're done, enjoy!

Set a reminder in your Google Calendar (6 month – 1 week = Feb 01, 2026)

  1. Option 1: In 6 months delete your EC2 instance and 30 Gb volume. Close your AWS account. You're not paying anything.
  2. Option 2: Start paying AWS: it's approx. $13 / month for this setup (t3.micro instance, 30Gb storage, public IP).
  3. Option 3: Backup you data and migrate to another hosting.
  4. Option 4: Don't know which hosting to choose? Contact Andrew, he'll propose you some options.

Troubleshooting

  1. Could not resolve hostname error — please, wait 5 minutes after you created the A record. Check IP address, wait and try again.
  2. Can't log in to server: a) check your internet connection; b) don't forget to do cd ~/Downloads; c) check your .pem file is there.
  3. Any other issues? Contact Andrew (scroll down to the bottom of the page).

[optional] Protection, backup, multi-user access

  1. Protect your server. When you're done with setup and users invitations, open AWS EC2, select Security Groups -> enter "launch-wizard-1" group -> Edit inbound rules -> Remove rule with Type = SSH. This will disable SSH access to your server. When you need it later, just add it again.
  2. Backup "the easy way": open you workflow, click on "...", select "Download". This will download your workflow as a .json file. You can upload it back to any other N8N later. Note: this won't backup your credentials, you need to backup them separately.
  3. TIP: In order to quickly restore credentials, just create the credential again and click on each node in the workflow that uses it. Then just click "Back". Repeat for each workflow, each credential.
  4. Backup "the pro way": this will create n8n_data_backup.tar.gz file with all your N8N data (including sqlite database): ssh -i ./n8n.pem admin@n8n.mycompany.com "sudo tar -czf - -C /var/lib/docker/volumes/n8n_data/_data ." > ~/Downloads/n8n_data_backup.tar.gz
  5. For multi-user access, invite users to your. You can do it in "Settings" -> "Users" -> "Invite user". Wait till they accept the invitations. Then log in to your server and run this command: cd /var/www/default && sudo docker compose stop && sudo sqlite3 /var/lib/docker/volumes/n8n_data/_data/database.sqlite "UPDATE user SET role = 'global:owner';" && sudo docker compose up -d

[optional] Transferring your data to the new server

  1. If you have "the pro way" backup file in your Downloads folder, just execute this to restore all your data (WARNING: this will erase all the existing data in the new server): cat ~/Downloads/n8n_data_backup.tar.gz | ssh -i ./n8n.pem admin@n8n.mycompany.com 'cd /var/www/default && docker compose stop && sudo tar -xzvf - -C /var/lib/docker/volumes/n8n_data/_data && docker compose up -d'

Unlock the final script

This script will obtain SSL certificate, install N8N and put it under your subdomain.

×

Contact

For project inquiries or consultations, please reach out through the following channels:

Email: andy@isd-group.com
Signal: andyjam.27
LinkedIn: andrew-sergyeyev
Youtube: @andrewsergeyev