psi-4ward

psitransfer: Share Files from a Self-Hosted Server

PsiTransfer is a self-hosted web app for sharing files without user accounts. It supports large uploads, resumable transfers, expiring buckets and one-time downloads, making it useful when you want control over where shared files are stored.

QuietJavaScriptBSD-2-ClauseSelf HostedWeb AppDocker
Stars
2k
Forks
246
Stars, last 10 days
+4
Last commit
4 months ago
Contributors
30

Our take

Quietno commits in the last 90 days

Health score

32/100

How it is scored
Activity
40
Community
47
Issues
21
Pull requests
21

+4 stars in the last 10 days

PsiTransfer is a practical self-hosted file-transfer app, but its currently quiet development and concentrated contribution history warrant checking its fit before making it a critical service.

Good fit if

  • You want browser-based file sharing without user accounts, and can operate a Node.js service or Docker container.
  • Temporary buckets, one-time downloads, resumable transfers, or bulk archive downloads match your workflow.
  • BSD-2-Clause licensing suits your deployment, and you can manage the service yourself.

Look elsewhere if

  • You require end-to-end payload encryption, which the project says it does not provide.
  • You need resumable downloads for ZIP archive downloads, which are not supported.
  • You need frequent recent development or broad contributor ownership: the project is marked Quiet with no commits in the last 90 days, and most contributions come from one person.
All health signals
Last commit2026-06-02 (4 months ago)
Commits, last 90 days0
Releases, last 12 months7 (latest v2.4.4, 2026-06-02)
Contributors30 (top contributor: 80% of commits)
Issues closed, last 90 days0
Project age9 years

Checked on 2026-10-07 with the GitHub API.

Overview

PsiTransfer provides a browser-based way to upload files and share them through a self-hosted server. It is aimed at people and teams who want a simple alternative to hosted file-transfer services, without requiring senders or recipients to create accounts.

Uploads are organized into buckets that can expire, and administrators can protect uploads with a password. The app is built on Node.js and includes a lightweight Vue-based frontend.

Key Features

  • Upload multiple and large files using streaming.
  • Resume uploads and downloads with tus.io support.
  • Set bucket expiration times and enable one-time downloads.
  • Protect the upload endpoint and password-protect the download list.
  • Download a bucket's files together as a ZIP or tar.gz archive.
  • Preview files in a modal interface and use the responsive web UI on mobile.
  • Run the service in Docker or install it manually.

Use Cases

  • A small team can share large files with external partners without issuing accounts.
  • A household or group can run a private transfer service on a server they control.
  • Administrators can provide temporary upload links for collecting files, with an upload password and bucket expiry.
  • Users who need resumable transfers can share files over unstable connections, rather than restarting the whole transfer.

What you need

Detected in the repository

  • Node.js >= 24 (from package.json)
  • A Dockerfile, so it can run in a container
  • A test suite and automated checks on GitHub Actions

License in plain words

BSD-2-Clausepermissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the copyright and license notice
  • Share your changes: no

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

Run the Docker image, replacing secret with an admin password:

docker run -p 0.0.0.0:3000:3000 -e PSITRANSFER_ADMIN_PASS=secret -v "$PWD/data:/data" psitrax/psitransfer

The data directory must be writable by UID 1000. See the repository README and documentation for configuration and deployment details.

Alternatives

  • zipline: Zipline focuses on organizing uploads and integrations such as ShareX, while PsiTransfer centers on expiring, resumable file transfers.
  • copyparty: Copyparty provides a flexible file server with browser and network-protocol access, rather than focusing on temporary transfer buckets.
  • personal-drive: Personal Drive is for managing and previewing stored files with sharing controls, while PsiTransfer emphasizes temporary, account-free transfers.
  • core: ownCloud adds persistent file synchronization, WebDAV, and an app model, beyond PsiTransfer's simpler file-transfer workflow.
ProjectLanguageLicenseStarsStatus
psitransferJavaScriptBSD-2-Clause2kQuiet
ziplineTypeScriptMIT3.5kActive
copypartyPythonMIT46.9kActive
personal-drivePHPApache-2.0391Active
corePHPAGPL-3.08.8kActive

Considerations

The repository is marked Quiet because it has had no commits in the last 90 days, despite publishing several releases in the past year. It has 30 contributors, but contribution history is highly concentrated, and no issues were closed in the last 90 days. These signals do not establish whether the project is unsuitable, but they are relevant if you need rapid fixes or ongoing maintenance.

The supplied requirements specify Node.js 24 or later. The README's manual-install instructions mention older Node versions, so verify the current package requirements before installing manually. The README also explicitly notes that file payloads are not end-to-end encrypted and that archive downloads cannot resume. Protect internet-exposed uploads with the available upload-password setting and assess your own storage and access-control needs.

Found this useful?

Share it with someone who would like psitransfer.

Comparisons