Sign inSign up

readystack/openproject

By readystack

•Updated 1 day ago

OpenProject: project management with Gantt and time tracking. Signed; SBOM and SLSA v1 provenance.

Image
Developer tools
0

3.5K

readystack/openproject repository overview

⁠OpenProject

Signed: cosign SBOM: SPDX attached Provenance: SLSA v1

readystack/openproject:v17.9.4-CE-ubuntu24.04-r1

Source, recipe and records

A cosign-signed build of github.com/opf/openproject v17.9.4 (GPL-3.0, project management), built clean-room from official upstream source by ReadyStack⁠.

⁠Who uses it and why

Who: Teams and organisations that plan and track projects and want their project data on their own servers.

Why: OpenProject is web-based project management software for tasks, bugs, roadmaps, Gantt-chart scheduling, time tracking, wikis and meeting minutes in a single platform.

Use case: A public agency runs several projects whose deadlines depend on each other. In OpenProject each project's work is planned on a Gantt chart, team members log the time they spend, meeting minutes sit next to the tasks, and the data stays on the agency's own servers.

About the upstream project, written from its own description: https://github.com/opf/openproject⁠

⁠What you get

Signature, user and attestations below were measured on the published digest sha256:551136be2e65844b36b48bc747e83845bdff162532918af621e86e9000b0bc30 on 2026-10-29.

  • Scan scores — we scan every image we publish every day (an SBOM made with syft, vulnerabilities matched with grype, scored with cerodeo-v1, the rubric ce.rodeo published until 2026-10-26) and record each scan with how its score was derived. This release's first and latest scan: https://readystack.dev/products/openproject⁠
  • ReadyStack release check — passed at release on 2026-10-27: no fixable critical or high vulnerability (Docker Scout and OSV), a non-root user, SBOM and provenance attached. This is ReadyStack's own test, not a Docker grade; vulnerabilities published since then are in today's result at https://readystack.dev/queue⁠.
  • Signed — cosign signature by the ReadyStack release key (fingerprint 04daa92344a52dbc) on this release's index digest sha256:551136be2e65844b36b48bc747e83845bdff162532918af621e86e9000b0bc30; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/openproject:v17.9.4-CE-ubuntu24.04-r1.
  • Attestations — An SPDX SBOM and SLSA v1 build provenance are attached to this digest.
  • Runs as a non-root user (app).
  • Built from source by ReadyStack.

⁠Which tag should I pull?

This image follows the ReadyStack release-tag convention:

  • The current release is v17.9.4-CE-ubuntu24.04-r1 — the release listed at readystack.dev. Release tags use the pattern <upstream-version>-CE-<base-os>-r<N>; the current one is signed, attested (SBOM + provenance), and is provided under the ReadyStack Agreement⁠.

  • Earlier release tags (an older version or revision in the same pattern) are superseded. They stay pullable so existing deployments can pin them, but they are no longer re-graded, and fixes appear only in newer releases: move to the current release. For a superseded release's build kit, ask support.

  • Release tags never move, so pulling the same tag again never changes the image. To be offered each new release automatically (a new revision r<N+1>, or a new upstream version), use the ReadyStack Renovate preset: https://readystack.dev/updates.html⁠

  • Any tag beginning with internal- is an engineering-pipeline artifact published for build observability. It is unsupported, may change or disappear without notice, and must not be used in production.

# ✓ current release
docker pull readystack/openproject:v17.9.4-CE-ubuntu24.04-r1

# ✗ unsupported (do not pull)
docker pull readystack/openproject:internal-...

This release is signed; verify it with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/openproject:v17.9.4-CE-ubuntu24.04-r1 (the signature is recorded in the public Sigstore transparency log). Support: [email protected]⁠, as set out in the ReadyStack Agreement⁠.

⁠Deployment

Two containers from this one image, plus your PostgreSQL: the web server (default command, Puma on port 8080, non-root user app) and the background worker (./docker/prod/worker, good_job). Both are required: jobs never run without the worker. A one-time seeder (./docker/prod/seeder) prepares an empty database. No PostgreSQL, memcached, Redis, Apache or hocuspocus inside the image.

Secrets go in env files that only you can read, not on the command line, and passwords that only set up the first start come out of them after setup. Create each file with install -m 600 /dev/null <file>, then write its lines into it with an editor, with your own values (a value typed into a shell stays in its history). Docker reads each line as written: no quotes around a value, no spaces around =.

openproject-db.env:

# First start only: the postgres image reads POSTGRES_PASSWORD only when it initialises its empty volume. You can remove this line after the first start and recreate the db container; the database keeps the password.
POSTGRES_PASSWORD=YOUR_POSTGRES_PASSWORD

openproject.env:

# Needed at every start by the seeder, web and worker: the same database password as POSTGRES_PASSWORD.
DATABASE_URL=postgres://openproject:YOUR_POSTGRES_PASSWORD@db:5432/openproject
# Needed at every start; keep it the same for web and worker.
SECRET_KEY_BASE=YOUR_SECRET_KEY_BASE

openproject-seed.env:

# Seeder only: the one-time seeder gives the administrator admin this password. Remove OPENPROJECT_SEED_ADMIN_USER_PASSWORD (or delete this file) after the seeder has run; admin keeps the password.
OPENPROJECT_SEED_ADMIN_USER_PASSWORD=YOUR_ADMIN_PASSWORD
docker network create openproject-net
docker run -d --name db --network openproject-net -e POSTGRES_DB=openproject -e POSTGRES_USER=openproject --env-file ./openproject-db.env -v openproject-db:/var/lib/postgresql/data postgres:16
until docker exec db pg_isready -U openproject -d openproject; do sleep 2; done
docker run --rm --network openproject-net --env-file ./openproject.env --env-file ./openproject-seed.env -v openproject-assets:/var/openproject/assets readystack/openproject:v17.9.4-CE-ubuntu24.04-r1 ./docker/prod/seeder
docker run -d --name openproject --network openproject-net -p 8080:8080 --env-file ./openproject.env -e OPENPROJECT_HOST__NAME=localhost:8080 -e OPENPROJECT_HTTPS=false -v openproject-assets:/var/openproject/assets readystack/openproject:v17.9.4-CE-ubuntu24.04-r1
docker run -d --name openproject-worker --network openproject-net --env-file ./openproject.env -e OPENPROJECT_HOST__NAME=localhost:8080 -e OPENPROJECT_HTTPS=false -v openproject-assets:/var/openproject/assets readystack/openproject:v17.9.4-CE-ubuntu24.04-r1 ./docker/prod/worker

Four steps, all required: PostgreSQL, the one-time seeder (schema, seed data and the administrator admin with YOUR_ADMIN_PASSWORD), the web container on port 8080, and the worker container. The seeder, web and worker containers read DATABASE_URL and SECRET_KEY_BASE from openproject.env; only the seeder also reads openproject-seed.env, so the administrator's password never reaches the long-lived web and worker containers. Delete openproject-seed.env (or remove its OPENPROJECT_SEED_ADMIN_USER_PASSWORD line) once the seeder has run: admin keeps its password (tested). The web and worker containers take the same OPENPROJECT_HOST__NAME, OPENPROJECT_HTTPS and volume. Without the worker, mail, exports, project copies, backups and scheduled jobs are queued and never run. Behind a TLS reverse proxy set OPENPROJECT_HOST__NAME to the public host name and OPENPROJECT_HTTPS=true.

⁠The full ReadyStack Hermetic Build Kit

The complete --network=none build kit for this image — plus admin/DB/API handbooks, the build's validation records, and its build provenance records — is a free download for any registered account at readystack.dev/products/openproject⁠. A clean-room rebuild from this release's archive on an egress-blocked host reproduced its linux/amd64 digest sha256:20a73b682fada579da523125e0785e3ed152a265d989049ce8c2b8503bf533bf on 2026-10-27.

— ReadyStack · readystack.dev

Tag summary

Content type

Image

Digest

sha256:551136be2…

Size

539.7 MB

Last updated

1 day ago

docker pull readystack/openproject:v17.9.4-CE-ubuntu24.04-r1