Product Self-Hosted Docs View on GitLab Deploy self-hosted
Self-hosted · Apache-2.0

Run it on your own metal.

The TruePPM core is open source and self-hostable. Bring your own Postgres, point it at your SSO, and keep every schedule, estimate and forecast inside your perimeter. One command to deploy.

Deploy guide API reference
# one command, full stack git clone https://gitlab.com/trueppm/trueppm cd trueppm && docker compose up -d # → web, api, scheduler, worker, forecaster ppm-web Running 1/1 ppm-api Running 2/2 ppm-scheduler Running 1/1 ppm-forecaster Running 1/1
Open core

What's open, and what's not.

The engine that matters — scheduling, forecasting, the bridge, the API — is Apache-2.0. Managed hosting and enterprise governance are the only paid layers. If it isn't in the API, it doesn't exist.

Apache-2.0 core
  • CPM scheduling & critical-path engine
  • Monte Carlo forecaster
  • Board / Gantt / WBS / calendar / sprints
  • Full REST API & webhooks
  • Offline-first sync protocol
Commercial add-ons
  • Managed cloud hosting & backups
  • SCIM provisioning & audit logs
  • Advanced portfolio EVM & rollups
  • Air-gapped & on-prem support
  • SLAs & dedicated support

The engine, standalone

Just need the scheduler? Pip-install it.

The CPM and Monte Carlo engine that powers TruePPM ships as a separate Apache-2.0 Python package. Drop it into your own tooling — no platform required.

  • Critical path, float & all four dependency types
  • Calendar-aware lag and cycle detection
  • Monte Carlo finish-date forecasting (P50 / P80 / P95)

Late alpha · Apache-2.0 · trueppm-scheduler

# install the standalone engine pip install trueppm-scheduler # build the schedule, read the critical path from trueppm_scheduler import schedule, Project, Task result = schedule(project) for t in result.tasks: print(t.name, t.early_finish, t.is_critical)
Deploy

Up and running in three steps.

Whatever your stack — Kubernetes, a single VM, or your laptop — there's a paved path.

01 · PROVISION

Bring a Postgres

Any Postgres 14+ works — RDS, Cloud SQL, or your own. That's the only hard dependency.

export DATABASE_URL=postgres://…
02 · INSTALL

Docker Compose

One compose file spins up web, api, scheduler, worker and forecaster with sensible defaults.

docker compose up -d
03 · CONNECT

Wire up SSO

Point it at any SAML or OIDC provider and invite your team. You're scheduling in minutes.

--set auth.oidc.issuer=
14+
Postgres, the one dependency
5
services in the stack
1
command to deploy
0
data leaves your perimeter
API-first

The UI is just one client.

Everything the app can do, the API can do — schedules, dependencies, forecasts, webhooks. Typed SDKs, predictable resources, and a webhook for every state change so you can wire TruePPM into CI, status pages and incident tooling.

  • REST + typed SDKs (TS, Python, Go)
  • Forecast any program on demand
  • Sub-millisecond webhooks on every change
# forecast a program POST /v1/programs/artemis/forecast "runs": 5000 # → distribution + sensitivity "p50": "2026-08-14", "p80": "2026-08-21", "p95": "2026-09-02", "critical_path": ["pour", "steel", "fit-out"], "drivers": [ "task": "pour", "sensitivity": 0.92 ]
Trust

Your data, your rules.

In your perimeter

Self-host and no schedule data ever leaves your network. Encrypt at rest with your own keys.

SSO & SCIM

SAML / OIDC sign-in and SCIM provisioning out of the box. Deprovision in one place.

Audit logs

Every change is recorded and exportable — who moved what, when, and why the date shifted.

Own your scheduling stack.

Clone the chart, bring a Postgres, and you're forecasting in minutes — on your terms.

Read the deploy guide Read the docs