Skip to content
Simple file sharing from the browser and the command-line.
Go HTML Dockerfile
Branch: master
Clone or download
Latest commit 4bda5f6 Jul 3, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore first commit Jun 27, 2019
Dockerfile first commit Jun 27, 2019
go.mod first commit Jun 27, 2019
go.sum first commit Jun 27, 2019
main.go add terms of use Jun 28, 2019
main_test.go first commit Jun 27, 2019


Easy simple file sharing from the browser and command-line. Try it at

share is an open-source server where you can easily share files through the browser or the terminal. share is inspired by and which also store files temporarily after uploading via the browser or command-line.

One main new feature in share specifically is that the files are stored for time based on the file size, so that smaller files will stay available longer (by default, the time to deletion is scaled so that 1 GB file will be deleted after 30 minutes). Another nice improvement is that each uploaded file gets a permalink based on the hash of file content, so you can easily share a unique content-addressable six-digit identifier instead of a long filename.


Open the browser and upload a file.

Alternatively you can upload via the command-line:

Upload a file

$ curl -L --progress --upload-file

Use this .bashrc/.zshrc shortcut:

share() {
    curl --progress-bar --upload-file "$1" | tee /dev/null;

alias share=share

Download a file

You can download the file with just the unique ID, or with the filename added. So each of these are identical:

$ curl -L
$ curl -L

or you can use wget:

$ wget --content-disposition


You can easily install and run share on your own computer or server. First, make sure to install Go. Then clone the repo and generate the code and run.

$ git clone
$ cd share/
$ go generate
$ go build -v
$ ./share

Use the flags (see share --help) for setting the max directory size, max file size, port, etc.


You can also easily install and run with Docker (an 8MB image!).

$ docker run -d -v `pwd`/data:/data -p 8222:8222 schollz/share

If you are running on a public server, be sure to include -e url= when running with Docker so that it presents the right URL in HTTP responses.


This is inspired by other great file transfer utilities and also utilizes Dropzone.js and uses logos from Logodust.



You can’t perform that action at this time.