
transfer.sh
Simple command-line file sharing with URL-based access and optional encryption
Overview
transfer.sh is a minimalist self-hosted file sharing server that allows users to upload files from the command line with a single curl command and receive a shareable URL. It supports multiple storage backends (local filesystem, S3, Google Cloud Storage, Storj) and offers optional client-side encryption via GPG. Files are stored temporarily with configurable TTLs. The server is written in Go and deploys as a single binary or Docker container with virtually no configuration.
Where it falls short of Dropbox
- No web UI for browsing or managing stored files; purely CLI/API-driven
- No user accounts, access control, or per-user storage quotas
- Files are temporary by design; not suitable for persistent storage or file organization
- No sync client, versioning, or folder hierarchy support
We list the gaps honestly so you can decide if the trade-off is worth owning your data.
Tags
Claim this listing to keep it accurate, add a deploy template, or feature it on relevant pages.
Embed the transfer.sh difficulty badge in your README — it links back here.
[](https://openreplace.com/transfer-sh)Similar open-source projects
Other self-hostable tools in the same space worth comparing.
Continuous peer-to-peer file synchronization between your own devices
Command-line program to sync files across 70+ cloud storage providers
File list program supporting multiple storages, with WebDAV and web UI
Portable all-in-one file server with resumable uploads, WebDAV, FTP, and media indexing