You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Arthur POULET b0005e7285 Fix warning for crystal 1.3.1 4 months ago
public Fix image 4 years ago
spec Add auto-detect host and port of the server (by request) 5 years ago
src Fix warning for crystal 1.3.1 4 months ago
.gitignore Update to crystal v0.20, big file work 6 years ago
.travis.yml Initialize project (deps are broken yet) 6 years ago
Dockerfile Update docker file 3 years ago
LICENSE Change LICENSE to GPL-3.0 5 years ago
Makefile Update docker file 3 years ago Fix warning for crystal 1.3.1 4 months ago
docker-compose.yml add Dockerfile and docker-compose config 6 years ago
sample.png Update README picture 4 years ago
shard.lock Update deps 1 year ago
shard.yml Update to crystal v0.35.1 1 year ago

Migrated to


Fast and lite file upload server ( clone).


  • It's a simple online file sharing.
  • Files older than 7 days are destroyed (configurable).
  • Recognize shebangs, magic numbers, ...

Installation travis

Compatible crystal v0.35.1

From source

make        # build the app / deps
make test   # run unit test
make doc    # build the documentation

From AUR with yaourt

yaourt -S transfer-more


Run the Server

export TRANSFER_SSL_ENABLED=true    # true if the ssl is enabled, any other string is false
export TRANSFER_BASE_STORAGE="/tmp" # where the files will be kept
export TRANSFER_SECURE_SIZE=4       # how much characters to identify a file
export TRANSFER_STORAGE_DAYS=7      # how much time the files are kept
export TRANSFER_TIME_FORMAT="%y%m%d%H"
export TRANSFER_HOST_PORT="localhost:3000" # in pinciple it is auto solved using the http headers, optional
./transfer_more --help
    -b HOST, --bind HOST             Host to bind (defaults to
    -p PORT, --port PORT             Port to listen for connections (defaults to 3000)

Command line client

curl --progress-bar --upload-file file.mp4  http://domain/name.mp4

Inside a docker

If you are using docker-compose:

docker-compose build && docker-compose up

Else, you can do:

docker build -t transfer_more . && docker run transfer_more

ShareX template

  "Name": "Sceptique",
  "DestinationType": "ImageUploader, TextUploader, FileUploader, URLShortener",
  "RequestURL": "",
  "FileFormName": "file",
  "Headers": {
    "User-Agent": "curl"


TODO: Write development instructions here


  1. Fork it ( )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request


  • Nephos Arthur Poulet - creator, maintainer