whatisgithub

What is transfer.sh?

pi-hole/transfer.sh — explained in plain English

Analysis updated 2026-07-13 · repo last pushed 2024-04-19

6GoAudience · ops devopsComplexity · 3/5DormantSetup · moderate

In one sentence

A command-line file-sharing tool you host yourself. Upload files from the terminal and get back a download link, with options for expiration, encryption, and multiple storage backends.

Mindmap

mindmap
  root((repo))
    What it does
      Share files from terminal
      Returns download links
      Auto-expire after days
      Encrypt files before upload
    Storage options
      Local server
      Amazon S3
      Google Drive
      Storj
    Security features
      IP whitelisting
      Password protection
      File size limits
      Virus scanning
    Tech stack
      Go
      Docker
      ClamAV
    Use cases
      Share error logs
      Share screenshots
      Private file sharing
    Audience
      Developers
      Sysadmins
      Technical teams
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Pipe an error log straight from the terminal to a shareable link for bug troubleshooting.

USE CASE 2

Set up a private file-sharing service on your own infrastructure for your team.

USE CASE 3

Share screenshots or data dumps quickly without opening a browser.

USE CASE 4

Automatically purge shared files after a set number of days or downloads.

What is it built with?

GoDockerClamAV

How does it compare?

pi-hole/transfer.shbeastmastergrinder/turbopuffer-engine-opensourceca-x/nowledge-mem-snap
Stars666
LanguageGoGoGo
Last pushed2024-04-19
MaintenanceDormant
Setup difficultymoderatemoderatemoderate
Complexity3/55/53/5
Audienceops devopsdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Docker and choosing a storage backend, avoid the public transfersh.com site which has been flagged as malware, host it yourself.

The license is not specified in this explanation, so you would need to check the repository for licensing details before use.

So what is it?

Transfer.sh is a tool that lets you share files directly from your computer's command line. Instead of opening a browser, navigating to a file-sharing website, and clicking through upload buttons, you type a single command and get back a web link that anyone can use to download your file. You can also set files to automatically expire after a certain number of downloads or days, and there's built-in support for encrypting files before they leave your machine. Under the hood, this is server software that you host yourself. When someone uploads a file, the server stores it and generates a unique download link. The project doesn't lock you into one storage solution, it can save files to your local server, Amazon S3, Google Drive, or Storj. It also includes security features like IP whitelisting, password protection for uploads, file size limits, and integration with ClamAV to scan for viruses. The files can be set to purge automatically after a set number of days. The people who would get the most out of this are developers, system administrators, or technical teams who frequently share log files, screenshots, or data dumps and want a faster workflow than using a browser. For example, a developer troubleshooting a bug could pipe an error log straight from their terminal to a shareable link, or a team could set up a private file-sharing service on their own infrastructure rather than relying on public tools they don't control. One important note from the project: the public website running this software at transfersh.com has been flagged as malware, so you should not use that site. The value here is in downloading and running the software on your own server, where you control the storage, the security settings, and who has access. The project is written in Go and ships with a Docker container for straightforward deployment, which means a technical team can get an instance running with minimal setup.

Copy-paste prompts

Prompt 1
Help me set up transfer.sh using Docker with local storage and a 7-day auto-purge policy. Include the docker run command and environment variables.
Prompt 2
Write a bash function that pipes a log file to a self-hosted transfer.sh instance, encrypts it, and copies the returned download link to the clipboard.
Prompt 3
Configure transfer.sh to use Amazon S3 as the storage backend with password protection and IP whitelisting. Show me the environment variables and config needed.
Prompt 4
Set up transfer.sh with ClamAV virus scanning enabled and file size limits of 500MB. Walk me through the Docker Compose setup.

Frequently asked questions

What is transfer.sh?

A command-line file-sharing tool you host yourself. Upload files from the terminal and get back a download link, with options for expiration, encryption, and multiple storage backends.

What language is transfer.sh written in?

Mainly Go. The stack also includes Go, Docker, ClamAV.

Is transfer.sh actively maintained?

Dormant — no commits in 2+ years (last push 2024-04-19).

What license does transfer.sh use?

The license is not specified in this explanation, so you would need to check the repository for licensing details before use.

How hard is transfer.sh to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is transfer.sh for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.