Skip to content
Simple open source self-hosted file sharing solution.
Branch: master
Clone or download
psi-4ward Merge pull request #76 from psi-4ward/dependabot/npm_and_yarn/lodash-…

Bump lodash from 4.17.11 to 4.17.14
Latest commit ddc05dd Jul 11, 2019


Current Release Dependencies Known Vulnerabilities Github Stars Docker Stars Image Size Docker Pulls Docker Automated buil Donate

Simple open source self-hosted file sharing solution.
It's an alternative to paid services like Dropbox, WeTransfer.

  • No accounts, no logins
  • Mobile friendly responsive interface
  • Supports many and very big files (Streams ftw)
  • Resumable up- and downloads (
  • Set an expire-time for your upload bucket
  • One-time downloads
  • Download all files as zip/tar.gz archive
  • Modal-style file preview
  • Requires Node >=7.4 or use --harmony-async-await flag
  • Password protected download list (AES)
  • /admin Page lists bucket information, Screenshot (disabled until you set adminPass config value)
  • Lightweight Vue based frontend apps. Gzipped (on by default) less than 65k
  • Explicit named bucket IDs with query param sid=<myBucketID>

See the blog posts about PsiTransfer: and checkout the Documentation





$ docker run -p -e PSITRANSFER_ADMIN_PASS=secret -v $PWD/data:/data psitrax/psitransfer
# data volume needs UID 1000
$ sudo chown -R 1000 $PWD/data 

Specify the version by using image tags e.g.:

  • latest: corresponds to master branch
  • 1: latest stable 1.x.x
  • 1.1: latest stable 1.1.x
  • 1.0.0: exact version

Manual, precompiled

# Be sure to have NodeJS >= 7.4
$ node -v

# Download and extract latest release package from

# Install dependencies and start the app
$ NODE_ENV=production npm install
$ npm start

Manual, from source

# Compile the frontend apps
$ cd app
$ npm install
$ npm run build

# Install dependencies
$ cd ..
$ npm install
$ npm start


There are some configs in config.js like port and data-dir.
You can:

  • Edit the config.js (not recommend)
  • Add a config.production.js where production is the value from NODE_ENV
  • Define environment Variables like PSITRANSFER_UPLOAD_DIR


public/upload.html and download.html are kept simple.
You can alter these files and add your logo and styles.
The following elements are mandatory:
common.js and respectively upload.js, download.js as well as <div id="upload">, <div id="download">
Please keep a footnote like Powered by PsiTransfer :)


Psitransfer uses debug:

DEBUG=psitransfer:* npm start

Side notes

  • There is no (end-to-end) payload encryption (yet).
  • Download all as ZIP does not support resuming the download.

🌟 Contribution is highly welcome 🤘

Want to say thanks and buy me a beer? Donate



You can’t perform that action at this time.