Sign inSign up

alkl58/psitransfer

By alkl58

Updated over 1 year ago

Updated Version of psitrax/psitransfer - Simple open source self-hosted file sharing solution.

Image
0

583

alkl58/psitransfer repository overview

PsiTransfer

Repo: https://github.com/Alkl58/psitransfer
Forked from: https://github.com/psi-4ward/psitransfer

x64 Build:
docker pull alkl58/psitransfer:latest
arm64/v8 Build:
docker pull alkl58/psitransfer:latest-arm

List of changes compared to original master:
Add: Thumbnails & Gallery System
Add: Delete Files & Buckets in Admin Interface
Fix: 1 Critical, 9 High, 1 Low Severity Vulnerability (NPM)
Fix: Drag & Drop Icon not displaying
Style: Fix Blurry Archive Icon
Style: Fill Icon Colors for better coherence
Style Darkmode: Invert Drag Icon Color
Don't show Archive Download when only 1 file
Change Translation Files (English & German)

Gallery


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 alkl58/psitransfer
# data volume needs UID 1000
$ sudo chown -R 1000 $PWD/data
Docker Compose
version: "3.3"

services:
  psitransfer:
    image: alkl58/psitransfer
    volumes:
      - "$PWD/data:/data"
    environment:
      - PSITRANSFER_ADMIN_PASS=xxx
      - PSITRANSFER_SHOW_THUMBNAILS=0 # set to 1 to enable
      - PSITRANSFER_SHOW_GALLERY=0 # set to 1 to enable
    ports:
      - "8001:3000"
Manual, precompiled
# Be sure to have NodeJS >= 12
$ node -v
v12.4.0

# Download and extract latest release package from
# https://github.com/Alkl58/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:5808274dd

Size

111.6 MB

Last updated

over 1 year ago

docker pull alkl58/psitransfer