clone van pkitransfer voor aanpassen td
  • JavaScript 74.2%
  • Vue 20.3%
  • Pug 2.8%
  • Shell 2.3%
  • Dockerfile 0.4%
Find a file
norlan a1556f09d2
Some checks are pending
CI / Test (push) Waiting to run
Docker Build Master / Docker build (push) Waiting to run
Update public/pug/partials/head.pug
2026-04-22 09:22:26 +02:00
.github/workflows fix: Harden file uploads 2026-04-14 11:34:25 +02:00
app feat: modernize security stack with Argon2 and native Crypto APIs 2026-01-23 15:33:37 +01:00
docs Fix wrong environment variable name in doc 2021-04-19 18:16:19 +08:00
lang Greek translation 2025-11-25 13:37:16 +02:00
lib fix: Harden file uploads 2026-04-14 11:34:25 +02:00
plugins feat: modernize security stack with Argon2 and native Crypto APIs 2026-01-23 15:33:37 +01:00
public Update public/pug/partials/head.pug 2026-04-22 09:22:26 +02:00
scripts And release workflow 2022-05-25 16:48:13 +02:00
tests fix: Harden file uploads 2026-04-14 11:34:25 +02:00
.dockerignore Fix: IE11; Add e2e tests 2020-10-27 15:55:38 +01:00
.editorconfig Various minor fixes/improvements 2020-10-27 15:59:24 +01:00
.gitignore chore: Add .history to gitignore 2025-06-04 12:50:18 +02:00
.nvmrc chore: Update dependencies 2026-02-14 15:37:47 +01:00
app.js Add: eventBus and plugin support 2020-10-27 15:55:38 +01:00
cli.js Add: npm publish to travis 2020-04-14 11:43:42 +02:00
config.dev.js Update deps; Fix: tar.gz download consumes much memory (fixes #221) 2022-05-09 16:57:50 +02:00
config.js Add trust proxy options 2025-02-27 14:20:35 +01:00
Dockerfile revert 2026-04-17 08:16:59 +02:00
LICENSE init 2017-04-23 13:41:29 +02:00
package-lock.json chore: Bump dependencies 2026-04-13 10:41:21 +02:00
package.json fix: Harden file uploads 2026-04-14 11:34:25 +02:00
README.md Reference the /public/pug/ in README 2020-11-20 16:27:32 -07:00

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.

🌟 Contribution is highly welcome 🤘

Want to say thanks and buy me a beer? Donate

License

BSD