Problem
structured-proxy ships only as a crates.io crate and a GitHub release. There is no native package for the binary, so deploying it on a Fedora/Debian/Ubuntu host means building from source or vendoring the artifact by hand.
Solution
Add native RPM/DEB packaging for the structured-proxy binary and publish it to repo.sw.foundation, mirroring the established pattern used by other SW binaries.
packaging/ with a systemd unit, a sample config, a system-user (sysusers.d) declaration, an RPM spec, and a Debian source tree.
- A release workflow that builds a static musl binary (amd64 + arm64), produces
.rpm (Fedora 42/43/44) and .deb (bookworm/jammy/noble) packages, attaches them to the GitHub release, uploads them as artifacts, and dispatches the repo publish workflow.
- The proxy is stateless: no data directory, no tmpfiles. The package installs the unit but does not enable/start it — the binary needs a service-specific config (proto descriptors + upstream) before it can run.
Acceptance criteria
cargo-independent install: dnf install structured-proxy / apt install structured-proxy lands /usr/bin/structured-proxy, a disabled structured-proxy.service, and /etc/structured-proxy/config.yaml.
- Packages built for amd64 + arm64 across the listed distros, attached to the release and uploaded as
deb-* / rpm-fc* artifacts plus repo-meta-structured-proxy.
- Release workflow triggers on GitHub release creation and dispatches
publish-from-structured-proxy to the repo repository.
- Service runs as an unprivileged
structured-proxy system user with systemd sandboxing; config is 0640 root:structured-proxy.
Estimate
1d (packaging assets + spec/debian tree, release workflow, repo-side wiring is a separate issue)
Problem
structured-proxyships only as a crates.io crate and a GitHub release. There is no native package for the binary, so deploying it on a Fedora/Debian/Ubuntu host means building from source or vendoring the artifact by hand.Solution
Add native RPM/DEB packaging for the
structured-proxybinary and publish it torepo.sw.foundation, mirroring the established pattern used by other SW binaries.packaging/with a systemd unit, a sample config, a system-user (sysusers.d) declaration, an RPM spec, and a Debian source tree..rpm(Fedora 42/43/44) and.deb(bookworm/jammy/noble) packages, attaches them to the GitHub release, uploads them as artifacts, and dispatches the repo publish workflow.Acceptance criteria
cargo-independent install:dnf install structured-proxy/apt install structured-proxylands/usr/bin/structured-proxy, a disabledstructured-proxy.service, and/etc/structured-proxy/config.yaml.deb-*/rpm-fc*artifacts plusrepo-meta-structured-proxy.publish-from-structured-proxyto thereporepository.structured-proxysystem user with systemd sandboxing; config is0640 root:structured-proxy.Estimate
1d (packaging assets + spec/debian tree, release workflow, repo-side wiring is a separate issue)