relaxed package delivery
One tool to create, host, sign and operate package repositories of any format — apt, dnf, apk, PyPI, npm, Helm, OCI, Cargo, Go, Maven, Nix, or plain artifacts — on hosting you choose, and to publish into repositories you don't own — AUR, Homebrew, nixpkgs, npmjs, PyPI, ghcr.
Status: design. Nothing is implemented yet. See PLAN.md for the domain model, the architecture, the phasing, and the open questions.
The short version:
- Static-first. Index generation is a pure function returning a file tree, so GitHub Pages, S3, or a USB stick are all valid hosting. The server is optional and never load-bearing.
- Git is the state. A repository's contents are a committed lockfile; the
served index is a build artifact. Rollback is
git revert. - Declarative. One manifest says what should be published where;
planandapplyreconcile against it. - Gated per repository.
auto,pr, orapprovalis a field, not the shape of a workflow file. - Verified. Nothing is done until a container has installed from it.
- Five minutes to a working repo.
snailmail setup debprovisions the hosting, generates a format-appropriate key, writes the CI, and emits install instructions that cannot drift from what was built.
apt dnf apk aur aur-bin brew nixpkgs
ttysvg 0.1.2 0.1.2 ✗ 0.1.2 0.1.2 0.1.2 0.1.2 0.0.7 ⚠
exex 0.3.2 0.3.2 ✗ 0.3.2 0.3.2 0.3.2 0.3.2 —
cnvrt 0.0.3 0.0.3 ✗ 0.0.3 0.0.3 0.0.3 0.0.3 —
snailrace 0.0.5 0.0.5 ✗ 0.0.5 0.0.5 PR #12 0.0.5 —
✗ verify failing ⚠ lagging PR # gate pending