$ cd ~/projects/pds

PDS

[ File distribution and validated uploads for fleets of hosts, over SSH. ]

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.

  • 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.
~/projects/pds

# 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

$ cd ~/projects