A self-hosted, privacy-first file sharing system with both hosted upload and direct P2P transfer capabilities.
Dropgate Server is installable from the TrueNAS Apps Market!
See it here: https://apps.truenas.com/catalog/dropgate-server
Learn more: https://diamonddigital.dev/blog/announcing-dropgate-for-truenas
See Dropgate in action here: dropgate.link
To prevent and monitor for abuse, DEBUG-level logging and strict rate limits are enforced.
Dropgate is a modern, privacy-respecting file sharing system designed to be easy to self-host and easy to use.
It ships as three parts:
- Dropgate Client: A lightweight Electron app for uploading, encrypting, and sharing files.
- Dropgate Server: A Node.js backend that hosts the API + Web UI, with optional end-to-end encryption and configurable storage.
- @dropgate/core: A headless TypeScript library that powers the client and server, usable in custom projects.
Dropgate supports two ways to transfer files:
- Hosted upload (classic mode) β you upload to your server, share a link, and the server holds the file temporarily.
- Direct transfer (P2P) β the file can move device-to-device, with the server only helping peers find each other.
In todayβs world, privacy and anonymity are more important than ever. Dropgate was built to make secure file sharing accessible, transparent, and fully self-hostable β whether on a home NAS, a VPS, or in Docker.
- π End-to-End Encryption (E2EE) β Encrypt on the sender device, decrypt on the recipient device. Encryption keys never need to reach the server.
- π΅οΈ Privacy First β No analytics, no tracking, and no logging of file contents.
- π Share Links That βJust Workβ β Simple links for recipients that expire based on download count or lifetime.
- π Direct Transfer (P2P) β Great for big files or βzero-storageβ sharing (when enabled).
- π§© Built-in Web UI β Send and receive from a browser, no install required.
- βοΈ Configurable Server Controls β Tune size limits, rate limits, retention, and storage caps.
- π§° Self-Host Ready β Works behind common reverse proxies and tunnels.
/Dropgate
βββ client/ # Electron-based uploader app (GPL-3.0)
βββ server/ # Node.js server + Web UI (AGPL-3.0)
βββ packages/
β βββ dropgate-core/ # Shared TypeScript library (Apache-2.0)
βββ docs/ # Privacy, troubleshooting, and technical notes
git clone https://github.com/diamonddigitaldev/Dropgate.git
cd DropgateSee the client README for installation, usage, and build instructions.
See the server README for configuration, Docker setup, and deployment.
See the core README for API documentation and usage examples.
Dropgateβs design is built around you staying in control of your data:
- E2EE means even the server operator canβt read encrypted uploads.
- Hosted uploads are intended to be temporary (downloaded and/or expired, then removed).
- Direct transfer can avoid server storage entirely (when enabled).
If you self-host, you decide how strict you want to be β from private-only to public-facing with limits.
- Client: GPL-3.0 License β See
client/LICENSE - Server: AGPL-3.0 License β See
server/LICENSE - Core Library: Apache-2.0 License β See
packages/dropgate-core/LICENSE
- Logo designed by TheFuturisticIdiot
- Built with Electron and Node.js
- Inspired by the growing need for privacy-respecting, open file transfer tools
This project uses AI tools to aid development.
AI is used to:
- Plan significant changes
- Implement initial passes of new features
- Perform security audits (alongside human review)
- Fix bugs and patch security vulnerabilities
- Review pull requests (alongside human review)
AI is NOT used to:
- Design UI/UX
- Design visual assets (such as bitmap and vector graphics)
- Triage issues
- Decide project direction
- Create release information
AI has a tendency to hallucinate/produce plausible but suboptimal, inaccurate or misleading solutions to delegated tasks.
Every commit is manually reviewed and approved by a member of Diamond Digital Development, and testing is carried out to ensure changes work as intended, do not introduce regressions, and meet reliability and security expectations before being merged into the master branch.
- π¬ Need help or want to chat? Join our Discord Server
- π Found a bug? Open an issue
- π‘ Have a suggestion? Submit a feature request







