User Management System

Hi,

I’ve been using n8n for a week and it seems to be really amazing as to what users can automate with it.
It would be really amazing if we have a simple User Management system where multiple users can login onto same n8n server and access their workflows & credentials. I think this will make the app more comfortable and easy to use for multiple people as they will not have their credentials exposed to others.

Thanks :grinning:

Hey @Asit_Joshi! Welcome to the community. I hope you find your time here useful!

You are not alone asking for a multi-user environment. I know @jan has talked about it in the past and it is on their radar but it is probably off in the distance for the time being as there are generally more requests for changes/augmentation than there is time in the day!

Now, with that being said, there could be a “poor man’s” version of multi-user n8n that could be deployed by “containerizing” multiple n8n instances.

So, for example, you could build a server/computer/VM with multiple docker instances, each running their own version of n8n with unique ports, usernames, and passwords. Then, each user could connect to their own port with their own username and password that would not interfere with other users’ workflows.

For bonus points, you could put a NGINX proxy in front of the docker instances and let it handle all of the routing.

1 Like

@Tephlon yes I was also thinking of the same idea. Do we have a calculated value for how much a docker instance of n8n consumes the resources as if we have multiple instances running it will surely need a heavy server. Thanks :smile:

Hey @Asit_Joshi!
This is a bit like asking “How long is a piece of string?” The answer is, it really depends on a number of factors:

  • What type of workflows are being created?
  • What are the workflows doing?
  • How many people are online at the same time?
  • Can the different workflows be “timed” so that the minimal number of workflows are running at the same time?

Now, with that being said, n8n itself is a pretty “thin” service, running happily on my RPi. If you have access to a virtual environment, I would build a base VM with a small number of docker instances on the VM. Then, as your resource requirements increase, you will be able to dynamically add more disk, RAM, and CPU (along with docker instances) to the VM.

This becomes even easier if you have a Kubernetes environment…

Hi @Tephlon
I got the point. I will surely try to do a stress test and measure the the usage.

Thanks a lot for your time :smiley:

Glad to be of help, @Asit_Joshi.

If you do find out some of the specifications and requirements, could you do me a favor and publish them here? Thanks!

I did run some test a while ago. It does obviously totally depend on what you are doing exactly, like @Tephlon wrote, but it looks like n8n starts to run reasonably OK from 128 MB RAM but I would recommend at least 256 MB better 512 MB.
But again depends a lot on what you are doing exactly. But just to give you some lower limit. But what is important know that this works only if you run everything in the main process. So you have to set the environment variable:

export EXECUTIONS_PROCESS=main

as documented here: https://docs.n8n.io/reference/configuration.html#execute-in-same-process

If you want to have the workflows running in separate processes I recommend at least 512 MB. But als there it also depends a lot on your use cases and how many processes you want to have running in parallel.

Hope that helps!

1 Like

From a security perspective, if you are running multiple instances for multiple users, running the workflows in separate processes is a lot safer.

See:

Thanks a lot @Tephlon & @jan
I will surely go through the provided resources to try out the multi user system using multi docker enviornment.

Thanks Again :grinning: