transfer.sh
A self-hosted server for sharing files from the command line with curl, keeping uploads on local disk, Amazon S3, Google Drive or Storj.
transfer.sh at a glance
What is transfer.sh?
transfer.sh is a file-sharing server you upload to with plain HTTP tools such as curl, getting a download link back. Request headers limit how many times a file may be downloaded and for how many days it is kept, and a response header returns a URL for deleting the upload. Files can be encrypted on the server with a password, checked by VirusTotal, and served either as a direct download or inline. Storage can be the local file system, Amazon S3 or compatible endpoints such as MinIO, Google Drive, or Storj. Basic HTTP auth and IP allow and block lists restrict who may upload.
Good fit if
- You move logs, builds or archives between servers and terminals and want one-line uploads.
- You want temporary links that expire after a set number of downloads or days.
Look elsewhere if
- You distribute large files to many people and peer-to-peer transfer suits you better: qBittorrent or Transmission.
Before you adopt it
transfer.sh is MIT-licensed, with no paid parts in the repository. The maintainers ask people to run their own instance rather than rely on public installations. The README opens with a security warning: IP filters and HTTP auth can be bypassed by spoofing the X-Forwarded-For header, so review that issue before exposing a server. Docker images, Linux and macOS builds and a Helm chart are available. The latest tagged release dates from December 2023, although commits continue.
Drafted with AI from the project's README and repository data, then checked against that data on 7 November 2026. Report a correction
How to run transfer.sh yourself
One-click install
- YunoHost
- Unraid
Not listed in Umbrel, TrueNAS, CasaOS, Runtipi, Proxmox VE Helper-Scripts and Coolify. Checked against each panel’s app catalog on 12 November 2026.
Ways to install
- Docker files
- Dockerfile or compose file in the repository
- Docker image
- dutchcoders/transfer.sh: 9.6M pulls · x86, x86-64, ARMv7, ARM64 · 12 MB download
- Compose file
- None in the repository
- Setup effort
- Not rated: no compose file to judge from
- Kubernetes
- Helm chart in the repository
- Packages
- AUR versions on Repology
- Desktop and mobile
- Builds for Linux, macOS, including ARM in GitHub releases
- Interface languages
- English only
Install instructions: github.com or the README on GitHub. Docker images and packages are checked weekly.
transfer.sh health: is it still maintained?
49 of 100, actively developed
Read from GitHub on 12 November 2026. How the score works
transfer.sh security
Security advisories are the vulnerabilities the maintainers disclosed on GitHub, with the versions that fix them; many advisories can mean careful disclosure as much as weak code. OpenSSF Scorecard checks how a project is developed and released: reviews, protected branches, pinned dependencies, signed releases. It does not audit the code itself.
What each Scorecard check found
- Binary files10 / 10No compiled binaries checked into the repository
- License file10 / 10A license file is present
- Maintained10 / 10Steady commits and issue activity in the last 90 days
- Packaging10 / 10Releases are published as packages from CI
- Branch protection4 / 10Rules on the main branch are partly enforced
- Security policy4 / 10A security policy exists but leaves things out
- Code review2 / 10Some changes are merged without review
- Best-practices badge0 / 10No OpenSSF Best Practices badge
- Fuzzing0 / 10No fuzz testing found
- Signed releases0 / 10Releases are not signed
Advisories read from GitHub on 12 November 2026. From the OpenSSF Scorecard of 2 November 2026; checks that do not apply to transfer.sh are left out.
transfer.sh license: is it open source?
transfer.sh uses MIT, an open-source license approved by the OSI.
- October 2014First published on GitHub.
- TodayMIT.
transfer.sh for developers
Written in
- Go 83%
- Nix 9%
- Shell 6%
- Go Template 1%
- Dockerfile <1%
- Other <1%
Getting involved
Language shares are GitHub’s count of the code in the repository.
Alternatives to transfer.sh
- GokapiLightweight selfhosted Firefox Send alternative without public upload. AWS S3 supported. 59 health · AGPL-3.0 · 3k stars
- ZiplineA ShareX/file upload server that is easy to use, packed with features, and with an easy setup! 78 health · MIT · 3.5k stars
- slskdA modern client-server application for the Soulseek file sharing network. 72 health · AGPL-3.0 · 4.3k stars
- PicoShareA minimalist, easy-to-host service for sharing images and other files 62 health · AGPL-3.0 · 3.1k stars
- qBittorrentqBittorrent BitTorrent client 91 health · GPL-3.0 · 41.5k stars
Questions about transfer.sh
Is transfer.sh open source?
Yes. transfer.sh is published under MIT, an OSI-approved open-source license.
Is transfer.sh still maintained?
Its health score is 49 of 100 (actively developed). It had 19 commits in the last 90 days, the latest on 31 October 2026, and its latest release came out on 4 December 2023.
How do I run transfer.sh?
You can run it with the Docker image dutchcoders/transfer.sh, on Kubernetes with the Helm chart in the repository, as an app for Linux, macOS, including ARM and in one click from YunoHost and Unraid. The README on GitHub has the exact steps.
What is transfer.sh written in?
transfer.sh is written mainly in Go (83% of the code), with Nix (9%) and Shell (6%), by GitHub’s count of the repository.
What are the alternatives to transfer.sh?
Close alternatives in the File sharing category include Gokapi, Zipline, slskd.