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

Ukrainian | English

Self-host multi-user N8N on AWS Free Tier in 20 minutes

Domain, SSL, backups, updates, 30 GB storage. Optional fast one-line €5 installer

No subscription Backups to your computer 24/7 accessible N8N Free subdomain on request

Step-by-step guide to deploy N8N on AWS Free Tier. No special knowledge required. Here’s what it looks like (clickable):

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

I propose to use AWS EC2 instance, which is free for 6 months, according to AWS documentation.

Basic setup: t3.micro instance, 30 Gb storage, custom subdomain + Let’s Encrypt SSL (HTTPS), basic security, Nginx, Docker.

What will happen

You sign up for AWS → Create an instance → Get the IP address → Configure the subdomain → Run the setup script for N8N → ✅ Done!

Requirements

- Gmail account
- A credit/debit card with €1 on account (AWS will return it right away)
- A domain and access to its DNS settings. If you don't have one, continue reading, we've got a solution.
- Google Calendar to set a reminder to cancel the plan in 6 months OR see options below

1. 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)
  8. Pay €1, AWS will make a refund shortly

2. Create EC2 instance in AWS console

This part could be a little bit tricky, so I've recorded this video to help you:

  1. Open AWS console
  2. Choose region (at the top right dropdown menu) = Europe (Stockholm), eu-north-1 - select this exact region not the one where you're located
  3. Choose main menu -> all services -> compute -> EC2 (or search for “EC2” in the top bar)
  4. Click “Launch instance” button
  5. Name = n8n (or your company's name, no spaces, please)
  6. Application and OS Images = Debian (please pay attention, it's easy to miss this one)
  7. Key pair (login) - click “Create new key pair
  8. Key pair name = n8n (please, use this exact name)
  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. Check the box “Allow HTTPS traffic from the internet
  12. Check the box “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” and wait a couple of seconds
  15. When it's finished, you'll see the message “Successfully initiated launch of instance (i-absndhfjeu39saiuy)” — click on instance ID in this message
  16. Find section “Public IPv4 address” and copy IP address (it looks like 92.80.123.115)

3. Open your domain registrar website (like, godaddy.com or namecheap.com)

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 a random subdomain (smth like xyz.empathic.solutions) and will send it to you. Then just skip this step.

  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

4. Put your N8N subdomain here to update the followings steps

Before continuing, please enter N8N subdomain you're planning to use (no www, no https), something like "n8n.mycompany.com" — this affects the scripts below:

5. Open command line tool on you computer

  1. On Mac: open Spotlight (Cmd+Space) and type "terminal". On Windows: hit Ctrl+R and type "cmd", then hit Enter.
  2. ONLY ON WINDOWS: Check that SSH is installed, copy and paste this line and press enter: ssh -V If you see “command not found” message, please install SSH client first: install SSH for windows.
  3. ONLY ON MAC: Copy/paste this and press enter: chmod 600 Downloads/n8n.pem
  4. Copy/paste this and press enter to log in to your instance: ssh -i Downloads/n8n.pem admin@n8n.mycompany.com
  5. Type “yes” and press enter. You’re now logged in to your instance now.

6. Set up instance & install N8N

Now you will have to run some command line scripts to setup instance, obtain an SSL certificate and run N8N.

You have 2 options:

When you're done, hit Cmd+D or Ctrl+D to log out of the instance and close terminal.

7. Log in to your N8N

  1. Open n8n.mycompany.com (this link is not active because you haven't input subdomain earlier).
  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! It's up and running 24/7. You can invite your co-workers. For more see "Protection, ..." section.

8. Set a reminder in Google Calendar: one week before the 6 months mark — Mar 29, 2026

Here are your options in 6 months:

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

Troubleshooting

  1. Could not resolve hostname error — wait 5 minutes after you created the A record. Check IP address, wait and try again.
  2. Can't log in to instance (Identity file Downloads/n8n.pem not accessible: No such file or directory): check than you have n8n.pem file in your Downloads folder, that you've downloaded from AWS.
  3. Some thing went wrong and you want to start over? Terminate instance. Get back to point 2.
  4. Any other issues? Contact Andrew (scroll down to the bottom of the page).

[optional] Protection, updates, backups, multi-user access

  1. Protect your instance. 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 instance. When you need it later, just add it again.
  2. Update N8N version periodically, if you need access to the new features. Please, remember to backup first. Here's the line to update: ssh -i Downloads/n8n.pem admin@n8n.mycompany.com "cd /var/www/default && sudo docker compose stop && sudo docker pull docker.n8n.io/n8nio/n8n:latest && sudo docker compose up -d"
  3. Backup "the easy way": open your 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.
  4. 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 node.
  5. Backup "the pro way": this will create n8n_data_backup.tar.gz file with all your N8N data (including SQLite database): ssh -i Downloads/n8n.pem admin@n8n.mycompany.com "sudo tar -czf - -C /var/lib/docker/volumes/n8n_data/_data ." > Downloads/n8n_data_backup.tar.gz
  6. For multi-user access, invite users to your n8n. You can do it in "Settings" -> "Users" -> "Invite user". Wait till they accept the invitations. Then run this command from your terminal: ssh -i Downloads/n8n.pem admin@n8n.mycompany.com "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 instance

  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 instance): cat Downloads/n8n_data_backup.tar.gz | ssh -i Downloads/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 code

You will receive unlock code to your email (please, check the Spam folder).

×

Contact

For questions or consultations, don't hesitate to contact me. I can set up a domain for you (please send me Public IP address) or give you consultation.

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