$ cd ~/projects/pds
PDS
[ File distribution and validated uploads for fleets of hosts, over SSH. ]
about
The Petris Distribution System distributes files, notably runnable scripts, and collects validated uploads from many hosts over SSH/SFTP.
Authenticity comes from the SSH transport: clients pin the server's host keys and the server authenticates clients by public key, so there is no PGP/GPG signing. The pdsd server runs as a normal user; the pds client pulls, lists, pushes, and runs scripts.
features
- Named buckets map to filesystem paths and are read-only or writable.
- Writable buckets validate pushes server-side as YAML, JSON, or JSON Lines before committing them.
- Versioned buckets keep every push with a timestamp and repoint latest; byHost buckets file each push under the sending host.
- Optional anonymous read-only access, and an opt-in plain HTTP read listener.
- systemd-style layered configuration from /usr/lib, /etc, and the user's config directory.
usage
# the first path segment is the bucket
$ pds ls scripts
$ pds pull metrics/.self/latest.yaml
$ pds push metrics data.yaml
$ pds exec hello.sh