Christoph Wiechert 155408d5f2 Use node v7.4 for nvm
2017-05-10 00:39:48 +02:00
2017-05-10 00:30:30 +02:00
2017-04-23 13:41:29 +02:00
2017-05-10 00:30:30 +02:00
2017-05-07 22:13:24 +02:00
2017-05-07 21:43:30 +02:00
2017-05-07 21:43:30 +02:00
2017-04-23 13:41:29 +02:00
2017-05-07 21:43:30 +02:00
2017-05-10 00:39:48 +02:00
2017-04-23 13:41:29 +02:00
2017-05-09 00:17:31 +02:00
2017-04-23 13:41:29 +02:00
2017-04-23 13:41:29 +02:00
2017-05-08 15:08:40 +02:00
2017-05-08 23:40:01 +02:00

PsiTransfer

Current Release Dependencies Github Stars Docker Stars Image Size Docker Pulls Docker Automated buil

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 --harmony-async-await flag
  • Password protected download list (AES)

Screenshot

Demo: https://transfer.psi.cx

Quickstart

Docker

$ docker run -p 0.0.0.0:3000:3000 -v $PWD/data:/data psitrax/psitransfer
# data volume needs UID 1000
$ sudo chown -R 1000 $PWD/data 

Manual, precompiled

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

# Download and extract latest release package from
# https://github.com/psi-4ward/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

Configuration

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
    See config.dev.js
  • Define environment Variables like PSITRANSFER_UPLOAD_DIR

Customization

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 :)

Debug

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 🤘

License

BSD

Languages
JavaScript 46%
Vue 39.6%
HTML 10.2%
Shell 3.3%
Dockerfile 0.9%