Layer 5 · self-hosting reality check
What it actually takes to self-host OpenProject
The docs say 4 GB. In practice you want 4 GB. The vendor sizes its minimum for up to 200 users, so a 5–20 person team fits inside it. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.
Usually reached from Jira alternatives, where OpenProject is one of the picks.
Wondering whether you need to at all? Is Jira free? — what the free tier actually allows, and where the wall is.
| RAM — documented minimum | 4 GB |
|---|---|
| RAM — what it really needs | 4 GB. The vendor sizes its minimum for up to 200 users, so a 5–20 person team fits inside it |
| CPU | 4 cores. The vendor's minimum is a quad-core CPU at 2 GHz or faster, even for small installs |
| Disk | 20 GB minimum per the vendor. Attachments in the assets volume and the PostgreSQL database are what grow; the vendor's 500-user tier asks for 40 GB. |
| Monthly cost | $24–48/mo for a 5–20 user instance on a 4 vCPU / 4–8 GB VPS |
| Setup time | 1–2 hours with the official Docker Compose repo, longer if you put your own TLS proxy in front |
| How you install it | The official openproject-docker-compose repo (stable/17 branch), which runs nine containers: web, worker, cron, seeder, PostgreSQL, memcached, a proxy, autoheal and the hocuspocus collaboration server. .deb/.rpm packages and a Helm chart also exist. The all-in-one container is for trials only. |
| Ongoing maintenance | A minor release roughly every month in 2026 (17.4 in May, 17.9 on 30 September). Major versions must be taken one at a time, because going from X to X+2 needs X+1 in between, and the vendor strongly recommends a backup before each. |
| Where it stops scaling | The vendor's minimum box covers up to 200 users. About 500 users needs 8 cores, 8 GB, 4 web workers and 2 background workers; about 1,500 needs 16 cores and 16 GB. Concurrent users matter more than the total. |
The thing that catches people out
The official docker-compose.yml still defaults the database to PostgreSQL 13 'as to not break existing setups'. Only the .env.example sets 17. If you start without that .env, or from an old tutorial, you are on Postgres 13. It went end-of-life on 13 November 2025 and is below the 16+ the requirements page supports. The file's own comment says the default switches to 17 with OpenProject 18, and a Postgres 13 data directory will not start under 17. Set POSTGRES_VERSION=17 on day one. If you are already on 13, do the vendor's dump-and-restore migration before you upgrade to 18.
When not to self-host OpenProject
You want a lightweight board for a handful of people. OpenProject asks for four cores and 4 GB before anyone logs in, and runs nine containers. Kanboard or Vikunja suit simple boards, and Plane is the modern issue tracker. Before you commit, check that the features you want are in the Community Edition rather than the Enterprise add-ons.
Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.
Other Layer 5 self-hosting guides
- Self-hosting LibreOffice2 GB with a large spreadsheet open
- Self-hosting ONLYOFFICE6 GB for the Document Server with a handful of concurrent editors
- Self-hosting Collabora Online4 GB, and roughly 1 GB per 20 concurrent documents
- Self-hosting CryptPad2 GB for a small instance
- Self-hosting Mattermost4 GB for a team of 50 with PostgreSQL on the same box
- Self-hosting Rocket.Chat6 GB with MongoDB on the same machine
Common questions
- How much RAM does OpenProject actually need?
- 4 GB. The vendor sizes its minimum for up to 200 users, so a 5–20 person team fits inside it in practice. The documented minimum is 4 GB, which is the figure at which the process starts rather than the figure at which it works under real use. 4 cores. The vendor's minimum is a quad-core CPU at 2 GHz or faster, even for small installs alongside it.
- What does self-hosting OpenProject cost per month?
- $24–48/mo for a 5–20 user instance on a 4 vCPU / 4–8 GB VPS This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for a minor release roughly every month in 2026 (17.4 in May, 17.9 on 30 September). Major versions must be taken one at a time, because going from X to X+2 needs X+1 in between, and the vendor strongly recommends a backup before each.
- How long does it take to set up OpenProject?
- 1–2 hours with the official Docker Compose repo, longer if you put your own TLS proxy in front, via The official openproject-docker-compose repo (stable/17 branch), which runs nine containers: web, worker, cron, seeder, PostgreSQL, memcached, a proxy, autoheal and the hocuspocus collaboration server. .deb/.rpm packages and a Helm chart also exist. The all-in-one container is for trials only..
- When should I NOT self-host OpenProject?
- You want a lightweight board for a handful of people. OpenProject asks for four cores and 4 GB before anyone logs in, and runs nine containers. Kanboard or Vikunja suit simple boards, and Plane is the modern issue tracker. Before you commit, check that the features you want are in the Community Edition rather than the Enterprise add-ons.
- What is the most common mistake when self-hosting OpenProject?
- The official docker-compose.yml still defaults the database to PostgreSQL 13 'as to not break existing setups'. Only the .env.example sets 17. If you start without that .env, or from an old tutorial, you are on Postgres 13. It went end-of-life on 13 November 2025 and is below the 16+ the requirements page supports. The file's own comment says the default switches to 17 with OpenProject 18, and a Postgres 13 data directory will not start under 17. Set POSTGRES_VERSION=17 on day one. If you are already on 13, do the vendor's dump-and-restore migration before you upgrade to 18.