An easy step-by-step guide on how to self-host n8n

Hello, n8n fans!

Name’s Georgy, and I’m a UX/UI designer and no-code developer building websites and apps on Webflow, Squarespace, Readymag, Bubble, and many others!

A few weeks ago I found out about n8n and, frankly speaking, was blown away by its features and the fact that it is free — the UI/UX seems to be slick as heck, so that’s a huge plus!

However, as a person who doesn’t have that much coding experience, I was quite upset by the fact that n8n has a steep learning curve — mainly due to the fact that there are no easy step-by-step guides on how to self-host n8n on the cloud or even local machine (though, I need a cloud-based solution because my laptop doesn’t always have the internet connection!) cheap and easy.

I’ve tried to Google and search on the forum but I didn’t find any easy-to-understand tutorials. I did find a relatively simple guide but it started with something like “use Docker to host n8n — now I’ll show you how to do it!”, though there was no explanation on how to host Docker itself in the first place.

So, here I am, asking for your help: I will be really glad if you can send me links for the tutorials or explain here in the comment section how to self-host n8n easily on the cloud by using, for example, DigitalOcean, Heroku, or AWS. It will be really cool if the guide will be as easy to comprehend as this one — Hosting Webflow Sites for Free: The Definitive Guide | by Robin Granqvist | Waveshape Collective | Medium.

I do believe that n8n is an amazing piece of software, and many no-coders might enjoy it a lot — they just don’t know about it or cannot find any easy guides on how to deploy/host it.

So I’m going to help the community too by making a simple yet comprehensive guide or video tutorial if I understand how to it myself, of course. haha!

Thank y’all for the replies!

P.S: Also, I’m going to promote n8n amongst the Webflow community afterward — I think Webflow users will be hyped about n8n!

Super-duper secret info

ahem, feel free to check out my website.

2 Likes

Great to hear that you are an n8n fan and you want to install it on a server. We already have a step-by-step guide which can be found here:

The last time I did it around 2 months ago, it did it take around 10-15 minutes to have n8n running on its own server with its own domain.

Hi, @jan!

Thank you for the reply!

That being said, I guess you’ve missed the main point of my post — I, as a person with a little coding and hosting experience, am looking for an easy step-by-step guide. The current guide is not easy at all — it is a step-by-step tutorial indeed, but by no means it’s easy to comprehend.

To be honest, I’m a little bit disappointed that the founder of n8n didn’t check my message thoroughly :frowning:

No offense, it’s just I stated that I don’t even know how to host Docker (moreover, why do we need Docker? What is Docker? Not asking to babysit, but it’s quite complicated ngl) itself, but you redirect me to a guide where there are mostly just code snippets without that much explanation. I’m sure it’s not that difficult to set up a server and host n8n, but I think even a person with lots of coding experience can understand how overwhelming it might be for a person with little to no coding experience.

Also, I asked @harshil1712 on the Discord and he did send the same guide. When I clarified what I want to get, he said that he is making a video tutorial how to host n8n on DigitalOcean, so I’m looking forward for that video (hope it wasn’t a secret, heh).

Hi @Georgy !
I feel you man!
annnnd… I think that you are asking for a lot.
either you want to stay as someone who doesn’t…

OR
you want to learn how to become a competent enough server admin to understand docker and docker compose (and operate a VPS node securely).

I can make a docker-compose template that you could cut and paste, or we could add vercel and or netlify configs to the n8n repo… but actually i think that n8n.cloud is perfect for folks who don’t actually want to be server admins…

Hey, @gotjoshua!

Do I really ask for a lot though? I’m trying to ease the street learning curve to make n8n as accessible is possible. If there are no tutorials regarding the master, then I’ll figure out how to host it myself anyway — afterwards I’ll create a guide how to do it so people with little to zero no coding experience could do it too.

Do I want to become a server admin? I guess not — because what I want is to understand and learn how to get my hands on n8n, host it start start using it.

Is it a bad thing to promote n8n amongst no-code folks? I do not think so

Ah yes, I saw that part but to be honest do I feel the guide is a step-by-step guide that somebody with some decent computer knowledge can follow. If you prefer a video you can also go to YouTube and search for “install n8n”. Some already exist there and also one that follows that tutorial:
https://www.youtube.com/results?search_query=install+n8n

I am actually not sure if explaining each line would really make it easier or just more complicated. The point is that you do not have to understand what Docker exactly is and how it works (there are special tutorials about it). If you simply copy the lines one by one and execute them it will work.

But honestly is self-hosting n8n simply not for everybody. You are right we could for sure create more tutorials and one tutorial for every possible knowledge level. In the end do we however also have to think about how we invest the little resources we have. To be honest do I not think that it would be the best use of our time. Because people that have already problems with installing n8n, will have at least as many problems getting all the credentials set up or keeping it up and running long-term.

That is exactly the reason why we created n8n.cloud that even people without technical knowledge can run n8n easily.

Generally is the concept comparable with changing a tire on a car. It is generally not super complicated to do it. So you have one of two options:

  1. Do it yourself. If you know how to do it will be super fast and cheap. If not you potentially spend a lot of time on it and in the worst case do you do it wrong and the car crashes on you (in the n8n case would it be that it goes down, your workflows do not run, you lose them or expose your passwords and API keys to everybody)
  2. You get somebody else to do it for you. It will be the simplest solution, you know it has been done right and you do not have to worry, but you pay for that.

Both are viable options but definitely is Option 1 not for everybody.

Hope that makes sense.

4 Likes

It indeed does make sense if you don’t want to scale your business on a larger audience. Not everyone can afford n8n cloud. Currently, I reside in Russia and I’m just starting out as a web designer and developer — I cannot afford nin cloud, so what should I do if I want to use it? Right, I need to find a guide to understand and learn how to host it myself.

The guide is not aimed for those who have quite some knowledge about computers because I am a person who loves IT and can do lots of stuff, but those who know coding and how to use console to get what they want — by no means it’s an average common knowledge.

Well, anyway, thanks for the replies. Not gonna lie, I don’t know how to feel about it that the founder basically told me that I cannot use the service if I’m not computer proficient enough.

Still, I think that n8n is a great tool even though the creators have no intentions to ease the steep learning curve for no-code folks like me.

Please do not understand me wrong. I am not saying at all that you can not use the service. At least it is not what I wanted to say. I just want to make clear that installing something on a server is only the first step and very often the easiest. Having it run long term stable, updating it and keeping it secure something totally else and much more complicated. Because as soon as something changes the whole service can go down and it will be very hard to get it up again. Writing an initial setup guide is still rather simple as a new system can be assumed with a certain setup. As time goes by and stuff changes some very simple thing as updating the system packages can bring the everything down and it will then be very hard for anybody without some deeper IT knowledge to bring it up again because also outside people have then a hard time helping.

It is one thing to use a no-code/low-code tool, but self-hosting it is something else. They are after all complicated pieces of software that have to be configured and maintained. Again similar like with a car. Driving one is rather simple, maintaining it (if you are not a mechanic, as here if you are not a DevOps person) more complicated.

To make it clear. I think it is great what you want to do and great to hear that you want to promote n8n. Thanks a lot for that! Great to have people like you in the community but still think it is important to not make people believe that self-hosting a no-code tool is the same as using it. I simply want to be honest and want to make sure that people are aware of that and are not surprised if there are problems. I could for sure simply say “uh yes will be super simple, no worries” but that simply does not feel right. After all are people running important workflows, making false claims will not be helpful for anybody.

3 Likes

Thank you for sharing another perspective with me — I did not think about it this way. To be honest, I quite forgot how complicated it might be too setup your own server — I did launch a few servers for WoW, Minecraft and CS 1.6, and yeah that was a bit tough sometimes, especially in the beginning.

Still, I’m gonna find out how to self-host n8n and if I’m lucky and I learn how to do it, then I’ll make a tutorial — maybe someone will be so in love with setting up servers that they will decide to do it for a living haha. Also, while we are talking here, do you provide any discounts for n8n cloud? Or maybe you have an affiliate program?

Sorry if I sounded a bit aggressive — I did not wish anything bad, it’s just I was upset that I couldn’t access the tool I want easily.

Glad to hear that we are on the same page.

Cool, looking forward to the tutorial!

Yes we have an affiliate program which you can find here: n8n.cloud Affiliate Program

Sure, all good, I neither. Have fun!

1 Like

thanks guys for working through this with clarity and civility!

also I have a single button on my fork of n8n that allows you to open a full instance of n8n via gitpod
Screenshot 2021-06-28 at 22.39.19

and n8n.cloud has a free trial

so you have good options to get started

3 Likes

@jan i think n8n.cloud ought to have a cheap enough option that self-hosting will be basically silly…

@Georgy should still go through the exercise of trying, but in the end it will be tough to find a hosting solution that is performant and cheaper than $20/mo

i suggest ssdnodes if you really want to try to do it cheaply.
(yes that is a referral link)

3 Likes

Thanks a lot, I’m gonna check it out!

Woah, that is amazing! Though, I cannot find a link for your instance.

ooooooops. my bad

i edited the post above to add the link

1 Like

Hey @Georgy!

To get started quickly you can sign-up on n8n.cloud where you get a free one-month trial period! However, if you’re still interested in deploying and trying it out here are the steps you can follow (these are the steps for hosting n8n on DigitalOcean. The initial steps might defer based on the cloud provider you use):

  1. Once you create an account on DigitalOcean, create a droplet. If you’re using AWS create an EC2 instance, on GCP this would be a VM.
  2. Use Ubuntu 20.04 (I prefer Ubuntu. It works well with the commands mentioned in the documentation) with 1 GB RAM (the more memory, the better performance!)
  3. Once your droplet is created, the next step is to configure your DNS. For GCP there are additional steps to configure the Public IP Address. With DigitalOcean, once you’re droplet is created you can copy the displayed IP address.
  4. Go to your Domain provider and set the A record. You can find a DNS setting option. Enter the subdomain (you can use n8n) in the Name field and the IP address in the Value field.
    Note: It might take 24 to 48 hours for this configuration to take place.
  5. Access your server (droplet). You need access to the server to install and update packages that we will use to host n8n.
  6. Run the commands mentioned here: Server Setup | Docs. Since we are running Ubuntu 20.04 make sure you run the relevant command.
    These commands update the packages on our server and fetch and install docker.
  7. The next step is to install docker-compose. Use the commands mentioned here: Server Setup | Docs
  8. We already have configured our DNS in Step 4. So the next would be to create a docker-compose file. Use the command vi docker-compose.yml. This will create an empty docker-compose file.
  9. Paste the content from here: Server Setup | Docs.
  10. To save and exit vim (the text editor), press ESC. Then enter :wq
    You don’t have to change anything in the above file. You can use it as it is!
  11. In the above file we are setting some variables. In this step, we will configure these variables. Run the command vi .env.
# Folder where data should be saved [CHANGING THIS IS NOT NECESSARY]
DATA_FOLDER=/root/n8n/

# The top-level domain to serve from [CHANGE THIS TO YOUR DOMAIN]
DOMAIN_NAME=example.com

# The subdomain to serve from [YOU CAN USE N8N AS SUBDOMAIN OR SOMETHING ELSE]
SUBDOMAIN=n8n

# 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 authentication - IMPORTANT ALWAYS CHANGE! [THIS WILL BE THE USERNAME YOU WILL USE TO SIGN-IN]
N8N_BASIC_AUTH_USER=user

# The password to use for authentication - IMPORTANT ALWAYS CHANGE! [THIS WILL BE THE PASSWORD YOU WILL USE TO SIGN-IN]
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 [GOOD TO CHANGE IF YOU'RE GOING TO USE CRON NODE]
GENERIC_TIMEZONE=Europe/Berlin

# The email address to use for the SSL certificate creation [YOUR EMAIL ADDRESS]
[email protected]
  1. Once the file is created, the next step is to create the folder that we specified for DATA_FOLDER. Use the following command:
mkdir /root/n8n/

NOTE: The value has to be the same as you set for DATA_FOLDER.
13. Start docker using the command sudo docker-compose up -d

You can now navigate to [SUBDOMAIN].[DOMAIN] (eg. n8n.example.com) and use the username and password to access it!

Feel free to let me know if you get stuck at any step. I hope this helps.

P.S The video is completed and will be out soon!

1 Like

Hi, @harshil1712!

Huge thanks for this quite understandable step-by-step guide! I’m gonna try it out — though I can already great the complexity of servers setup process, heh.

Waiting for the video too! Please, add a link to the video in this post.

Ah, one question:

Is it okay to use my domain that I use for the personal website? Won’t additional DigitalOcean records interfere with the stability of accessing the website? Or it is just better to use another domain?

The exact same domain would be a problem (like “example.com”). For that reason does the default guide use subdomains (like "n8n.example.com). If you choose a subdomain that is currently not in use will there be no problem with your existing website. They are treated totally separately. At least if you also use a different server. If you have a website hosted on a server and you also want to add n8n, then everything becomes again much more complicated.

1 Like

Yeah, you are right — I was talking about a subdomain. Thanks for the reply!

Here’s the link to the video: https://youtu.be/8K-5fFWEpBc

I’ve added all the steps and commands that I’ve used in the description. Let me know what you think :slight_smile: