~ $ ferry --help
ferry: move a folder to a server and know it arrived
One binary, one config line. Uploads what changed, checks what is served against what is on disk, and re-sends what does not match. No daemon, no account.
Install
# macOS / Linux curl -fsSL https://ferry.example/install.sh | sh # or with cargo cargo install ferry-cli
A session
ferry $ ferry push ./dist --to prod reading ferry.toml … prod = ftps://server.example/projects/site scanning ./dist … 47 files, 1.2 MB diffing against last manifest … 6 changed, 41 unchanged upload index.html 12.1 KB ok upload assets/app.7f3c.js 88.0 KB ok upload assets/app.7f3c.css 14.7 KB ok upload thumbs/hero.webp 61.3 KB ok upload thumbs/second.webp 58.9 KB served 0 B — resending upload thumbs/second.webp 58.9 KB ok (2nd try) upload sitemap.xml 1.1 KB ok verify 47/47 served bytes match done 6 uploaded, 1 retried, 0 failed — 4.8 s ferry $ ferry status prod prod last push 4.8 s ago · manifest 47 files · healthy
Numbers
Binary size2.9 MB
Dependencies0 runtime
Protocolsftps · sftp · s3
Config1 file
Flags
--to <target>a target from ferry.toml; defaults to the first one--dry-runprint the plan and upload nothing--no-verifyskip the served-bytes check (faster, less honest)--forceignore the manifest and send everything--jobs <n>parallel uploads, default 4