Simple open source self-hosted file sharing solution
npm install psitransfer








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)
* /admin Page lists bucket information, Screenshot (_disabled until you set adminPass config value_)
* Lightweight Vue based frontend apps. Gzipped (on by default) less than 100k
* Explicit named bucket IDs with query param sid=
**See the blog posts about PsiTransfer: https://psi.cx/tags/PsiTransfer/ and checkout the
Documentation**
bash
$ docker run -p 0.0.0.0:3000:3000 -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
* 2: latest stable 2.x.x
* 1.1: latest stable 1.1.x
* 1.0.0: exact version$3
`bash
Be sure to have NodeJS >= 12
$ node -v
v12.4.0Download 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
`$3
`bash
Compile the frontend apps
$ cd app
$ npm install
$ npm run buildInstall dependencies
$ cd ..
$ npm install
$ npm start
`$3
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 to set the upload directory
* To secure your PsiTransfer if exposed to the internet from unwanted, non authorized uploads use the PSITRANSFER_UPLOAD_PASS environment variable$3
public/pug/upload.pug and download.pug are kept simple.
You can alter these files and add your logo and styles.
Please keep a footnote like Powered by PsiTransfer :)$3
Psitransfer uses debug:
`bash
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.:star2: Contribution is highly welcome :metal:
Want to say thanks and buy me a beer? 