Build an APT Repository
This tutorial creates a new Managed DEB repository. You need a writable directory, and one or more DEB files.
1. Create the workspace
The Dist name becomes the APT suite. It is an identifier chosen by you; SOW does not infer
distribution semantics from trixie.
2. Set membership policy
Edit the generated sow.yml if you need filtering or version limits:
Then validate it:
SOW stores canonical architecture families in configuration and renders Debian names in
the repository: x86_64 becomes amd64, aarch64 becomes arm64, and neutral all
packages are included in both views.
3. Add DEBs
Accepted package bytes are stored once. The public tree is:
Package paths beneath pool/ are grouped by normalized source package. Packages uses
archive-root-relative Filename values. SOW writes SHA-256 by-hash copies and advertises
them from Release.
4. Preview over HTTP
For a local preview:
Check the entry points:
Use a maintained HTTP server for persistent service and expose the complete pigsty/
tree.
5. Configure APT
Replace REPO_HOST with an address the client can reach. For an unsigned test repository,
use a deb822 source with explicit trust:
Then refresh and query it:
Trusted: yes disables authenticity checking and is suitable only for a controlled test.
For a signed repository, remove that line and configure a keyring:
Follow Sign Your Repository before enabling Signed-By.
6. Publish safely
Require a successful deep check before delivery:
Use sow publish for a configured filesystem or R2 target. If
you use another transport, copy the entire repository into an offline staging location and
switch it into service atomically. Do not update a live dists/ tree file by file: clients
may observe metadata and package state from different generations.
Update the repository
Use build after policy or signing configuration changes. Use check, not status alone,
as the publication gate.
The automated client and platform scope is listed under Platforms & Integrations.