macrostack

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 minimum4 GB
RAM — what it really needs4 GB. The vendor sizes its minimum for up to 200 users, so a 5–20 person team fits inside it
CPU4 cores. The vendor's minimum is a quad-core CPU at 2 GHz or faster, even for small installs
Disk20 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 time1–2 hours with the official Docker Compose repo, longer if you put your own TLS proxy in front
How you install itThe 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 maintenanceA 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 scalingThe 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

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.
The Macrostack brief

New swaps, worth your inbox.

A short, occasional email when we add a high-intent alternative or ship a new head-to-head. No spam, no selling your address — unsubscribe in one click.