Chapter 29 / 40

The repos

Status: Live

Nine repositories hold the handoff artifact for this engagement. All live under the sodimo GitHub org. All are private except sodimo/harness and sodimo/dotfiles, which are public soft-forks of mecattaf/harness and mecattaf/dotfiles. Release tags follow calver — YYYY-MM-DD-slug — on every sodimo/* repo.


Canonical list

#RepositoryPurposeStatusDepends on
1sodimo/sodimo-repo-templateTemplate every other repo forks from. Ships the REPO.md schema, calver release workflow, PR-feed automation, labels, and CI.Done
2sodimo/changelogThis site. Astro-built handoff artifact: changelog feed plus the manual. Hosted on Cloudflare Pages at changelog.sodimo.eu.Done
3sodimo/brandDesign tokens, logos, brand kit v2 (Cedar/Sumac palette, Fraunces typeface). Assets ready; creating the repo is a move, not a build.Planned
4sodimo/harnessFedora bootc OS image for the Framework Desktop: mkosi build config, base package selection, and the handful of system-scope services (Tailscale, Cloudflared, Cockpit). Public soft-fork of mecattaf/harness. Does not contain the app-layer Quadlets — those live in sodimo/dotfiles.In progressFramework Desktop hardware
5sodimo/dotfileschezmoi-managed dotfiles repo that renders the app-layer Podman Quadlet inventory into ~/.config/containers/systemd/ on the harness (rootless, user-scope). Ships postfix, dovecot, rspamd, piler, llama.cpp, llama-swap, litellm, openwebui + db, paperclip + db, twenty + deps, vaultwarden, caddy, the email-drain and ETL timer units, and their .volume / .network definitions. Public soft-fork of mecattaf/dotfiles.In progressFramework Desktop hardware
6sodimo/mailPostfix/Dovecot/rspamd config bundle and the Piler archive deployment, packaged as Quadlets consumed by sodimo/dotfiles. Also holds the Strato migration scripts.BlockedFramework Desktop, ch15 Principle 3 sender-allowlist wiring
7sodimo/mcpThe single sodimo-core Cloudflare Worker. Hosts every MCP tool: ERP reads, CRM reads/writes, run-ledger writes, email drafting, email_send via Queue. Also holds the D1 schema migrations.BlockedETL (for D1 seed), mail (for the email-send Queue consumer contract)
8sodimo/etlNightly pipeline: Florian’s Sodiwin CSV dumps on the NAS → validated → loaded into D1. Runs as a Podman Quadlet cron from sodimo/dotfiles on the harness. Parity gate blocks bad data from reaching production.BlockedFlorian’s nightly dump going live
9sodimo/whatsapp-webhookCloudflare Worker that parses WhatsApp Business messages into order candidates for Sodiwin entry. See ch54.PlannedMeta WhatsApp Business API credentials

Paperclip is not a sodimo/* repo. Per ch15 Principle 1 it ships as a pinned upstream Quadlet inside sodimo/dotfiles; the only Sodimo-owned surface around it is the run_ledger attribution glue that lives in sodimo/mcp. See chapter Paperclip and paperclip-scan/00-MASTER-paperclip.md.


Pre-existing repos (reference only)

Two repos outside the sodimo/ org that the handoff depends on but does not own:

  • mecattaf/harness — upstream Fedora bootc base. sodimo/harness rebases from this. Not a Sodimo-managed artifact.
  • mecattaf/dotfiles — Thomas’s personal chezmoi tree and skills library. sodimo/dotfiles forks this at a pinned snapshot and scopes it down to the Sodimo quadlet set. The personal fork continues to evolve independently; the Sodimo fork does not track upstream automatically.

Blockers that gate delivery

Two blockers account for every Blocked or In progress status above:

  1. Framework Desktop hardware. Paul has ordered the unit. Nothing on the harness (mail, local AI, OpenWebUI, cron ETL, Piler archive) lands until it arrives and the bootc image is flashed.
  2. Florian’s nightly Sodiwin dump. The ETL pipeline has nothing to consume until Florian’s export job is running in production and writing to the NAS on the agreed schedule. See ch14 for the black-box contract.