How does n8n determine my external IP address?

When i am visting the webhook URL of my webhook which i have setup i get the error 404.
the URL is https://1nyott9un1532oyatudh9ehv.hooks.n8n.cloud/webhook-test/307d12f3-840a-42bf-b4aa-add0bac622ed

The n8n workspace is setup on a dedicated web server which is connected directly to the Internet.
When i send a request from Postman to the specific URL i get 404 as a response. is this because the n8n URL can not connect to our webserver? How does the URL know where to find the webhook which i have setup? Does it know the external IP address of our webserver?

Please share the workflow

I am running the local n8n.io server

Hey @Melvin,

Welcome to the community :tada:

That looks like a tunnel URL, I suspect what has happened is the URL has changed and you need to restart the service so it can get a new one. The downside though is we don’t tend to recommend using the tunnel option as this can happen, Are you are on a dedicated web server it might be better to use your own domain and make sure the ports are forwarded that way you will be unlikely to hit this issue in the future.

Hey @Jon

Thanks for your reply.
Which service do you mean with restarting? is this located in services.msc?
How can i setup a URL with our own domain? is it maybe better to use another installation for us?

Hey @Melvin,

By service it would be n8n, So the docker container or the npm service. By the mention of servcices.msc though… Are you running the Desktop version of n8n on a Windows Server as that would change things slightly.

I am running the desktop version of n8n, is it better to use a different installation? or can this work also?

Hey @Melvin,

Desktop can work but it is a few versions behind and not really designed as a server side thing. So what you will need to do is forward your domain or subdomain to the Windows server on port 5679 (unless you are using a reverse proxy), Then pop open the ~/.n8n/n8n-desktop.env file and set WEBHOOK_TUNNEL_URL to your domain then give it a restart and you should be good to go.

The other option would be to use something like Docker to run n8n which you may be more comfortable with it also gets more updates so you can use all the cool new features sooner.

Can i change the N8N_PORT to 443 instead of 5679?

The installation of N8N is now installed in the userprofile i see. This is not what we want. We want an installation on the local C:\Program Files. Is this possible?

@Jon Could you please reply to my questions?

Hello Melvin,
the desktop app of n8n has some caveats if you want to run it as a production server.

The desktop app of n8n installs in the user profile. That strategy became pretty common on windows, e.g. the google chrome browser also install in the user profile. I am not aware how that could be changed.

In your $HOME/.n8n folder you’ll find a file called n8n-desktop.env where you can set environment variables for the desktop version. Mine looks like this by default

image

The Desktop app is using a custom tunnel service to forward requests from a global n8n domain to your local machine. We do not recommend using this for production environments since your tunnel urls can change from time to time and that can break things like webhooks.

As Jon mentioned it could better fit your use case to run n8n in a docker environment. Have a look at the hosting docs, we also have tutorials how to host n8n with docker-compose.

The easiest way to get you started might be using our managed hosting solution n8n.cloud

1 Like