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 (tus.io)
- 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
- Password protected download list (AES)
$ docker run -d -p 0.0.0.0:3000:3000 -v $PWD/data:/data k0nsl/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.1: latest stable
1.0.0: exact version
# Be sure to have NodeJS >= 7.4 $ node -v v7.4.0 # Download and extract latest release package from # https://github.com/k0nsl/psitransfer/releases # 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.
- Edit the
- Add a
productionis the value from
- Define environment Variables like
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
download.js as well as
Please keep a footnote like Powered by PsiTransfer :)
Psitransfer uses debug:
DEBUG=psitransfer:* npm start
- There is no (end-to-end) payload encryption (yet).
Download all as ZIPdoes not support resuming the download.
:star2: Contribution is highly welcome :metal:
Whats the reason to copy PsiTransfer instead of sending a PR to the main repository?