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:
Choose main menu -> all services -> compute -> EC2 (or put “ec2” into search field)
Click “Launch instance” button
Name = n8n (or your company's name, no spaces, please)
Application and OS Images = Debian
Key pair (login) - click “Create new key pair”
Key pair name = n8n
Leave RSA and .pem selected by default
Click “Create key pair” - this will download .pem file to your computer's Downloads folder
Mark checkbox “Allow HTTPS traffic from the internet”
Mark checkbox “Allow HTTP traffic from the internet” (required to get Let's Encrypt SSL certificate)
Configure storage: correct 8 to 30 GiB (this will give you 30 Gb space on your hard disk)
Click “Launch instance” (BTW: instance = server)
Open your newly created instance
Click on instance ID in this message — “Successfully initiated launch of instance (i-absndhfjeu39saiuy)”
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.
Open your domain DNS settings.
Create A record for your domain with name = n8n and value = [IP address] you’ve just copied
Wait 5 minutes
Open terminal on Mac or PowerShell on Windows (command line tool)
Check that you have ssh installed, copy and paste this line and press enter: ssh -V
If you see “command not found” message, please install ssh first (google “install ssh on mac/windows”)
Open the folder where you downloaded .pem file (should be “Downloads”) - copy/paste this and press enter: cd ~/Downloads
ONLY ON MAC: Copy/paste this and press enter: chmod 600 ./n8n.pem
Copy/paste this and press enter: ssh -i ./n8n.pem admin@n8n.mycompany.com
Type “yes” and press enter. You are logged in to the server now.
Server setup & installing N8N
Copy/paste this and press enter:
*******************
Set up owner account and answer some marketing questions.
Skip sending free license key, you don't need it.
You're done, enjoy!
Set a reminder in your Google Calendar (6 month – 1 week = Feb 01, 2026)
Option 1: In 6 months delete your EC2 instance and 30 Gb volume. Close your AWS account. You're not paying anything.
Option 2: Start paying AWS: it's approx. $13 / month for this setup (t3.micro instance, 30Gb storage, public IP).
Option 3: Backup you data and migrate to another hosting.
Option 4: Don't know which hosting to choose? Contact Andrew, he'll propose you some options.
Troubleshooting
Could not resolve hostname error — please, wait 5 minutes after you created the A record. Check IP address, wait and try again.
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.
Any other issues? Contact Andrew (scroll down to the bottom of the page).
[optional] Protection, backup, multi-user access
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.
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.
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.
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
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
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: