Alpine's postgresql-client and mongodb-tools dynamically link against
libzstd.so.1 (and libraries like lz4/xz that they may pull in for
compressed dumps); without those packages the binaries crash at
startup with 'Error loading shared library libzstd.so.1'. Bundle all
three so every supported driver loads cleanly.
The Alpine sqlite3 binary dynamically links against libreadline.so.8;
without it the agent crashes at the validate stage of the pipeline
with 'Error loading shared library libreadline.so.8: No such file or
directory'.
Add the readline package to the runtime stage so sqlite3 starts
cleanly.
Source ports from the TronoSfera/backupy-cloud monorepo:
- apps/agent/ — Go agent (WSS client, persistent queue, Docker
discovery, 5 DB drivers: PG/MySQL/Mongo/Redis/SQLite,
pre/post hooks, Prometheus metrics)
- apps/backupy-decrypt/ — standalone CLI for client-side decryption
- packages/proto/ — protobuf wire format (generated .pb.go committed
so the repo builds without protoc)
- docs/ — agent spec + wire-protocol contract
Apache-2.0 license. Image published to ghcr.io/tronosfera/backupy-agent
on every v* tag via .github/workflows/release.yml (multi-arch amd64+arm64).