psitrax/psitransfer

By psitrax

Updated 5 days ago

Simple open source self-hosted file sharing solution.

Image
29

5M+

psitrax/psitransfer repository overview

PsiTransfer

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 (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=<myBucketID>

See the blog posts about PsiTransfer: https://psi.cx/tags/PsiTransfer/ and checkout the Documentation

Screenshot

Quickstart

Docker
$ 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
Manual, precompiled
# Be sure to have NodeJS >= 12
$ node -v
v12.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 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
Customization

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

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.

:star2: Contribution is highly welcome :metal:

Want to say thanks and buy me a beer? Donate

License

BSD

Tag summary

Content type

Image

Digest

sha256:56aeed8ac

Size

94.5 MB

Last updated

5 days ago

docker pull psitrax/psitransfer:v2.4.3