Open source · 2026 - mason
Publish to your VPS with one command — deploy static sites and share files to a personal server behind Caddy.
- Go
- CLI
- Self-hosting
Getting bits onto a server is easy. Remembering how is the hard part: the hostname, the user, the remote path, the SSH key, the exact rsync flags. Put it all in a Makefile and every project re-implements the same script — and they all go stale the moment the server changes.
Mason is a small local CLI for publishing to a personal server behind Caddy. It remembers the host, the paths, the user, and the rsync flags — so you don’t. Configuration lives in a .mason file, per-project or in your home directory, so the context travels with the work.
Two jobs, done cleanly
mason deploy rsyncs a build tree to a named target, showing the plan, live progress, and a summary. mason share ./talk.mp3 uploads a single file and hands back a clean short link on your own domain. Blobs are content-addressed: re-sharing identical bytes links, never re-uploads.
No daemon on the server
Nothing runs on the VPS but ssh, rsync, and Caddy. The remote is just a filesystem contract plus a Mason-owned Caddy snippet, bootstrapped with an idempotent script you can read before you run. mason doctor verifies the whole chain — SSH, permissions, manifest, and Caddy reconciliation.