Skip to main content

Self-hosting

The PDM is made to run on your servers, for your team, with your data staying on your network.

Before the release

There's no install package yet, so for now you build the PDM from source; these pages say what that takes. There's no sign-in yet either: until there is, the PDM belongs on a network you trust. See Users and sign-in.

What runs​

PartWhat it doesRuns asPort
Reverse proxyHTTPS; serves the web app, forwards /api and the editor's WebSocketnginx, Caddy, …443
Web appThe PDM in the browser, Buerligons includedstatic files
APIDocuments, versions, releases, references, jobs, files; runs its database migrations on startNode 203333
PostgresMetadata, versions, references, the audit logPostgres 165432
File storeEvery file once, named by its SHA-256a folder
Job workersTake jobs from the API and run them on ClassCAD; render pictures; run generatorsNode 20, as many as you like
SchedulerOne port in front of the engines: sessions, placement, scaling, restartsclasscad-scheduler9091
EnginesClassCAD, one process each, started by the schedulerclasscad-cli worker9094 and up

How they connect:

browser ──https──▶ reverse proxy ──▶ web app (static files)
├── /api ──▶ API :3333 ──▶ Postgres, file store
└── wss ───▶ scheduler :9091 (the editor, when it runs on the server)

job workers ──▶ API :3333 claim jobs, upload results
job workers ──▶ scheduler :9091 ──▶ engines :9094, :9095, …
engines ──────▶ API :3333 fetch the parts of an assembly

The only call out of your network is an engine fetching its key from classcad.ch at start. Machines without internet use an offline key instead.

How big​

One server is enough to start: API, Postgres, workers, scheduler and engines all on one machine. The engines are what needs the room. Each is a process of its own, and its memory grows with the models it holds; by default the scheduler stops sending new work to an engine above 3 GB. More people editing at once means more engines, and the scheduler starts them as needed, up to the limit you set.

In this chapter​

Requirements · Install · Configuration · Database · File store · The scheduler · Job workers · The editor · Reverse proxy · Users and sign-in · Running it