community-infra
From email to running stack

Join the allowlist, then bring up the suite in order.

Every project in the suite lives in a private Radicle repo. The only way in is the allowlist, so your key can clone. After that, the order matters. Follow it and you won’t re-run things.

Step 1 — Request access

Email info@bitlemmas.com with the subject “Community Infra repo allowlist.” Include:

Once your DID is on the allowlist for a repo, the seed shares it with your machine on the next rad sync.

Step 2 — Bring up the suite in order

The architecture page has the full diagram. Below are the commands in the order most operators run them. Each project ships its own README with more detail once you’ve cloned it.

  1. radicle-seed-kit — bring up the seed first

    Without a healthy seed, the other projects can’t copy their data. Seed Kit comes with DigitalOcean setup scripts and a friend-onboarding flow. The README covers both.

    rad clone <rid> radicle-seed-kit
    cd radicle-seed-kit
    cat README.md
    # follow RADICLE_DO_SEED.md to provision the seed,
    # then RADICLE_SEED_ONBOARDING.md to mirror your repos to it.
  2. radicle-priorities — the backlog protocol

    Add the backlog protocol so the rest of the suite’s scenarios show up in one place. The methodology site at extremebdd.com has the walkthrough video. The repo holds the board server.

    rad clone <rid> radicle-priorities
    cd radicle-priorities
    python3 scripts/board_server.py --repo .
    # open http://127.0.0.1:8844/
  3. poor-mans-ci — runner + test results

    Set up the runner host. PMCI 0.4 ships with checkouts pinned to a commit, pinned runner images, and the artifact mirror by default. Run it against your canonical Radicle ref to start writing test results for every commit.

    rad clone <rid> poor-mans-ci
    cd poor-mans-ci
    cat docs/PMCI_PROTOCOL.md
    # wire your runner per docs/ARCHITECTURE__END_TO_END.md
  4. poor-mans-cd — release manifests + deploy host

    Bring PMCI test results into a deploy plane. The PMCD dashboard reads PMCI results and gates promotion. The deploy itself uses the manifest and checks the hash.

    rad clone <rid> poor-mans-cd
    cd poor-mans-cd
    python3 -m pmcd --help
    # walk through docs/ARCHITECTURE.md and docs/DO_RUNNER_DASHBOARD_PROVISION.md
  5. ecsc — (optional) reciprocal service payments

    Once you have a peer operator and you both want to settle service work over Lightning, add ECSC. It binds every signed payment state to PMCI/PMCD evidence so no claim settles without matching proof. The committed live regtest fixture replays offline with no Lightning infra required — that is the fastest way to understand the proof gate.

    rad clone <rid> evidence-coupled-service-channels
    cd evidence-coupled-service-channels
    python3 scripts/ecsc_conformance.py --fixtures-dir fixtures/v0 --no-record-ui
    # then watch the walkthrough at projects.html#ecsc

Smoke test: does it work end to end?

After the four core projects are up (ECSC is optional and layers on later), here’s the standard smoke test:

  1. Open a Radicle issue from one peer.

    Use Radicle Priorities to land the issue with a @pending BDD scenario that references it.

  2. Spread the change through the seed.

    Run rad sync on the originating machine. Seed Kit’s timers should mirror it within a minute.

  3. Run a PMCI build on the runner.

    Check that a test result lands in pmci-out/ and the artifact mirror serves the sha256.

  4. Promote a PMCD release manifest.

    Check that the deploy host installs only when the sha256 matches. It should write a receipt to /var/lib/pmcd/receipts/.

If all four steps work without a hosted CI provider, a central forge, or a SaaS dashboard, the suite is doing its job.

Help Each repo has its own BDD backlog in bdd/features/ and a contributor guide in AGENTS.md or README.md. If you get stuck on bring-up, the fastest path is to open an issue in that repo with rad issue open, tagged support. Maintainers see it on their next sync.