

Using a rough estimate we can give the following recommendations based on the number of total users. There are also other excellent resources for tuning PostgreSQL database performance. You will ideally want to have the database on a performant storage such as SSDs. There may come a point where you will have to make configuration changes to the database and/or use an external database, but for most cases the default database setup should be enough. The database will need resources as well, and this, too, will increase with the number of users. If there are more users you will need more web workers and eventually also more background workers.

Web workers are handling the HTTP requests while backend workers are doing offloaded tasks such as sending emails or performing resource-intensive tasks of unknown duration, e.g. By default OpenProject has 4 so called web workers and 1 background worker. It’s not enough to simply have more resources available, however. Still, the total number of users is a good general indicator of how much resources you will need. No matter if you have 1000 or only 100 total users, if there only ever 20 users working at the same time, the CPU & RAM required will be the same. Technically this only really depends on the number of concurrent users. Generally speaking you will need more CPUs (the faster the better) and more RAM with an increasing number of users. Depending on your number of concurrent users, these requirements might vary drastically. This is for a single server running OpenProject for up to 200 total users. The server hardware requirements should be roughly the same for both the packaged installation and docker (both all-in-one container and compose).

This means that other configurations might also work but we do not provide any official support for them. Note: The configurations described below are what we use and test against.
