|
| 1 | +--- |
| 2 | +title: "Install & Run" |
| 3 | +description: "Run the whole CKP v3.9.1 substrate with one docker run — the attested ck-allinone image, its SLSA provenance, what it composes, and the GitHub releases." |
| 4 | +--- |
| 5 | + |
| 6 | +# Install & Run |
| 7 | + |
| 8 | +The whole substrate is a single, attested image. One `docker run` stands up PostgreSQL 17, the pgRDF graph engine, the pgCK runtime, NATS, and the browser client — about 128 MB, scratch base, no Python. The only prerequisite is Docker. |
| 9 | + |
| 10 | +## One `docker run` |
| 11 | + |
| 12 | +```sh |
| 13 | +docker run --rm -d --name ckp \ |
| 14 | + -e OCIGER_CK_PARTICIPANT_PASSWORD='choose-a-password' \ |
| 15 | + -p 5432:5432 -p 8000:8000 -p 4222:4222 -p 9222:9222 \ |
| 16 | + ghcr.io/sporaxis-com/ociger-ck-allinone:v0.7.28 |
| 17 | +``` |
| 18 | + |
| 19 | +That single command gives you a complete **CKP v3.9.1 — Critical Isolation** substrate: |
| 20 | + |
| 21 | +``` |
| 22 | +PostgreSQL 17 + pgRDF (graph engine) + pgCK (concept-kernel runtime) |
| 23 | +NATS core :4222 + NATS WebSocket :9222 (the only door for apps) |
| 24 | +busybox httpd :8000 serving /cklib/ (the browser client) + a landing probe |
| 25 | +``` |
| 26 | + |
| 27 | +- **Set `OCIGER_CK_PARTICIPANT_PASSWORD`.** Without it the participant role exists but cannot log in, so the isolation floor is never cosmetic. |
| 28 | +- **Open `http://localhost:8000/`** — the landing page runs a live round-trip in your browser and shows ✓ when the wire is alive. |
| 29 | +- **Persist `/var/lib/postgresql/data`** with a volume to keep sealed data across restarts. |
| 30 | + |
| 31 | +Then [drive it with cklib](/v3.9/quickstart) — activate a kernel, land a sealed task, verify its proof. |
| 32 | + |
| 33 | +## The image is attested |
| 34 | + |
| 35 | +The bundle publishes with SLSA Build Provenance v1. Pull it, then verify the provenance before you trust it: |
| 36 | + |
| 37 | +```sh |
| 38 | +docker pull ghcr.io/sporaxis-com/ociger-ck-allinone:v0.7.28 |
| 39 | + |
| 40 | +gh attestation verify \ |
| 41 | + oci://ghcr.io/sporaxis-com/ociger-ck-allinone:v0.7.28 \ |
| 42 | + --repo sporaxis-com/oci-germination |
| 43 | +``` |
| 44 | + |
| 45 | +| | | |
| 46 | +|---|---| |
| 47 | +| **Image** | `ghcr.io/sporaxis-com/ociger-ck-allinone:v0.7.28` | |
| 48 | +| **Digest** | `sha256:c652647fed8e433a4668b3cac590175ddbb65a1bf9472e04504ca19b0d9a1dfa` | |
| 49 | +| **Provenance** | SLSA Build Provenance v1 — verified before publication | |
| 50 | +| **Pull** | public, anonymous | |
| 51 | + |
| 52 | +## What it composes |
| 53 | + |
| 54 | +The image is a tested composition of the fleet, pinned to exact versions: |
| 55 | + |
| 56 | +| Layer | Version | |
| 57 | +|-------|---------| |
| 58 | +| PostgreSQL | 17.10 (pgcrypto auto-installed on first boot) | |
| 59 | +| [pgRDF](https://github.com/styk-tv/pgRDF) — the graph engine | 0.6.19 | |
| 60 | +| [pgCK](https://github.com/styk-tv/pgCK) — the concept-kernel runtime | 0.4.21 | |
| 61 | +| [cklib](https://github.com/ConceptKernel/CK.Lib.Js) — the client, served at `/cklib/` | 1.5.3 | |
| 62 | +| NATS core / WebSocket | 2.14.2 (`:4222` / `:9222`) | |
| 63 | + |
| 64 | +The protocol is **CKP v3.9.1**; the door is `ckp.dispatch(verb, kernel_urn, payload, identity)`. |
| 65 | + |
| 66 | +## GitHub releases |
| 67 | + |
| 68 | +Every release below is CI-built and provenance-attested, with a `LATEST.md` in each repository confirming the verified head. |
| 69 | + |
| 70 | +- **The bundle** — [sporaxis-com/oci-germination releases](https://github.com/sporaxis-com/oci-germination/releases) (`ck-allinone`, the runnable image above) |
| 71 | +- **The runtime** — [styk-tv/pgCK releases](https://github.com/styk-tv/pgCK/releases) (the PostgreSQL extension; also an `oras`-pullable OCI artifact) |
| 72 | +- **The client** — [ConceptKernel/CK.Lib.Js releases](https://github.com/ConceptKernel/CK.Lib.Js/releases) (`cklib`, dispatch-only) |
| 73 | +- **The engine** — [styk-tv/pgRDF releases](https://github.com/styk-tv/pgRDF/releases) (RDF/SPARQL/SHACL/OWL-RL) |
| 74 | + |
| 75 | +## Behind a gateway |
| 76 | + |
| 77 | +The bundle's NATS WebSocket is on `:9222`. On a direct `docker run` an app opens `ws://<host>:9222`. Behind a TLS gateway, route `/wss` → `:9222` and apps open `wss://<host>/wss`. The bundled landing page auto-detects which case it is from its own URL. |
| 78 | + |
| 79 | +::: warning Alpha-trust today |
| 80 | +Identity is currently the participant role's shared password, not a per-user verified claim. The isolation floor is real — the role can call `ckp.dispatch` and nothing else — but treat a deployment as alpha-trust and do not expose it to untrusted users as-is. Per-user verified-JWT identity is an inherited upstream prerequisite (CKP v3.9 §10). |
| 81 | +::: |
| 82 | + |
| 83 | +## Continue |
| 84 | + |
| 85 | +- [Quickstart](/v3.9/quickstart) — drive the running substrate with cklib. |
| 86 | +- [The client: cklib](/v3.9/client) — the handle and its verb map. |
| 87 | +- [The fleet](/v3.9/ecosystem) — the runtime, client, engine, and bundle behind the image. |
0 commit comments