Overview
Discover what makes PsiTransfer powerful
PsiTransfer is a lightweight, self‑hosted file sharing service that eliminates the need for user accounts while still providing robust features such as resumable uploads, automatic bucket expiration, and optional password protection. From a developer’s perspective it is engineered around a modern JavaScript stack: a Node.js back‑end powered by Express and the tus.io protocol for streaming uploads, coupled with a Vue‑based front‑end that is gzipped to under 100 kB. The application runs on any platform with Node ≥ 7.4, but the Docker image makes it trivial to deploy in a containerised environment or on cloud‑managed services like AWS ECS, Google Cloud Run, or DigitalOcean App Platform.
Stateless bucket architecture
Resumable transfers
Fine‑grained lifecycle
Security controls
Overview
PsiTransfer is a lightweight, self‑hosted file sharing service that eliminates the need for user accounts while still providing robust features such as resumable uploads, automatic bucket expiration, and optional password protection. From a developer’s perspective it is engineered around a modern JavaScript stack: a Node.js back‑end powered by Express and the tus.io protocol for streaming uploads, coupled with a Vue‑based front‑end that is gzipped to under 100 kB. The application runs on any platform with Node ≥ 7.4, but the Docker image makes it trivial to deploy in a containerised environment or on cloud‑managed services like AWS ECS, Google Cloud Run, or DigitalOcean App Platform.
Key Features
- Stateless bucket architecture – Each upload session is identified by a unique
sidquery parameter, eliminating the need for persistent user accounts. - Resumable transfers – Built on the tus.io protocol, uploads can be paused and resumed without data loss, making it suitable for large files or unstable network conditions.
- Fine‑grained lifecycle – Buckets can be configured with an expiration timestamp or a one‑time download flag, after which all files are automatically purged.
- Security controls – Optional AES‑256 encryption of the download list, and an admin page protected by a configurable password.
- Archive downloads – Users can download all files in a bucket as a single zip or tar.gz archive, with the server streaming the archive to avoid memory spikes.
Technical Stack
| Layer | Technology |
|---|---|
| Runtime | Node.js (≥ 12) with Express framework |
| Upload protocol | tus.io – HTTP‑based resumable file upload specification |
| Frontend | Vue.js (single page, lightweight) served as static assets |
| Storage | Local filesystem (/data by default), with optional symlink or bind mounts in Docker |
| Configuration | Plain JavaScript objects (config.js, config.production.js) with environment overrides |
| Build tools | Webpack (for Vue assets), Babel for ES6+ support |
The application’s core logic is split into three modules: the tus server that handles chunked uploads, a bucket manager that tracks metadata and expiration timers, and an admin API exposed under /admin for monitoring. All HTTP endpoints are RESTful, and the tus server emits events that can be hooked by external services (e.g., webhook notifications on upload completion).
Deployment & Infrastructure
PsiTransfer’s Docker image (psitrax/psitransfer) is built on Alpine Linux, keeping the footprint below 100 MB. It exposes a single port (3000 by default) and expects a data volume mounted at /data. The image supports --pull=always for automated updates, and the PSITRANSFER_ADMIN_PASS environment variable secures the admin UI. For high‑availability, developers can orchestrate multiple replicas behind a load balancer; the stateless nature of uploads ensures consistency across instances as long as they share the same data volume (e.g., via NFS or a cloud block store).
Integration & Extensibility
- Webhooks – The tus server can be extended to fire custom events on upload completion, allowing integration with CI/CD pipelines or notification services.
- Plugin hooks – The bucket manager exposes lifecycle callbacks (
onUpload,onDelete) that can be overridden in a custom fork to add analytics or trigger downstream processing. - API – While the UI is designed for simplicity, developers can interact programmatically with the
/apiendpoints to create buckets, list contents, or delete files. - Custom front‑end – Since the Vue assets are built as a static bundle, developers can replace or augment them with their own SPA, leveraging the same tus endpoints.
Developer Experience
The project follows a clean folder structure (app/ for Vue, root src/ for Node logic) and includes a comprehensive README with Docker, manual, and source‑build instructions. Documentation is hosted in the docs/ directory and linked from the README, providing API references and configuration examples. Community support is moderate; issues are tracked on GitHub and the project receives regular updates, with a focus on security (Snyk badge) and dependency management (David DM badge). The license is permissive, allowing commercial use without attribution.
Use Cases
- Internal File Sharing – Teams can host a private instance to share large binaries or media without relying on third‑party cloud storage.
- Temporary Distribution – Developers can generate a one‑time download link for build artifacts or test data, then let the bucket expire automatically.
- Event‑Driven Pipelines – Integrate with CI tools to upload build logs or test results; downstream services can consume the files via webhooks.
- Mobile‑Friendly Asset Delivery – The responsive UI works on phones, making it ideal for field engineers who need to upload logs or images from the road.
Advantages
- Zero‑cost, self‑hosted – No subscription fees or vendor lock‑in; all data stays on your infrastructure.
- Performance – The tus protocol streams directly to disk, reducing memory usage and enabling high‑throughput uploads even for 10 GB files.
- Flexibility – Stateless design allows scaling across containers or servers without session replication.
- Open source & permissive license –
Open SourceReady to get started?
Join the community and start self-hosting PsiTransfer today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
ENiGMA½ BBS
Modern, nostalgic bulletin board for the 21st century

ProjeQtOr
All-in-One Project Management for Every Method

Yeti-Switch
Open‑source softswitch for flexible routing and integration
Atsumeru
Self-hosted manga and comics library server
Zipline
Fast, secure file sharing with powerful webhooks and customization
wallabag
Save web pages for distraction‑free reading anytime, anywhere
