Self-hosted file uploader that returns shareable links, with user accounts, albums, snippets, a URL shortener and S3 storage support.
mtlynch/picoshare
A minimalist, self-hosted web app for sharing files of any size or type via direct download links.
Open-source alternative to:DocSend
- Stars
- 3,064
- Forks
- 229
- Open issues
- 29
- Last commit
- 9 days ago
What is it?
PicoShare is a self-hosted web app for sharing files online. Anyone you give a link to can view or download the file directly, with no ads or signups required. The project places no restrictions on file size, file type, or media format.
Uploaded images, video, and audio are stored as-is. PicoShare does not resize or re-encode them, so a direct download link is available as soon as the upload finishes. Data is kept in a SQLite database, and the app is run with a single admin passphrase set through an environment variable or a file.
It can be run from Go source or as a Docker container. Optional Litestream settings replicate the database to S3-compatible cloud storage and restore it on restart. A fly.io deployment guide is included, and a third-party native iOS client is available.
Key features
- 01Generates direct download links that anyone can open without signing up.
- 02Accepts files of any size and type, with no re-encoding of media.
- 03Stores metadata in SQLite and runs behind a single shared passphrase.
- 04Supports optional continuous replication to S3-compatible storage via Litestream.
- 05Ships as a Docker image and works with Docker Compose.
Use cases
- Sending large files or videos to someone without a file-hosting account.
- Hosting a private file drop for a small team or personal use on your own server.
- Sharing images or audio that must reach recipients unchanged, without re-compression.
Quick start
- 1
Run PicoShare with Docker (set PS_SHARED_SECRET and mount a data volume)
docker run --env "PORT=4001" --env "PS_SHARED_SECRET=somesecretpass" --publish 4001:4001/tcp --volume "${PWD}/data:/data" --name picoshare mtlynch/picoshare
Things to know
- Maintained by one person as a hobby project, so feature requests may be declined.
- Uses the AGPL-style license noted in the README badge, which is copyleft; check the LICENSE file before commercial use.
In collections
Topics
FAQ
- What is picoshare?
- A minimalist, self-hosted web app for sharing files of any size or type via direct download links. PicoShare is a self-hosted web app for sharing files online. Anyone you give a link to can view or download the file directly, with no ads or signups required. The project places no restrictions on file size, file type, or media format.
- Is picoshare free to use? What license does it have?
- picoshare is open source under the Other license. Check the license terms before using it in commercial products.
- Is picoshare still maintained?
- Actively maintained. The last commit to picoshare was on Oct 16, 2026.
- What can I use picoshare for?
- Sending large files or videos to someone without a file-hosting account. Hosting a private file drop for a small team or personal use on your own server. Sharing images or audio that must reach recipients unchanged, without re-compression.
- How do I install picoshare?
- Run PicoShare with Docker (set PS_SHARED_SECRET and mount a data volume): docker run --env "PORT=4001" --env "PS_SHARED_SECRET=somesecretpass" --publish 4001:4001/tcp --volume "${PWD}/data:/data" --name picoshare mtlynch/picoshare
- Where can I get picoshare?
- The source code and installation instructions are on GitHub: https://github.com/mtlynch/picoshare
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Self-hosted file sharing server in Go with expiring links, optional S3 storage, and no public uploads, positioned as an alternative to Firefox Send.
A self-hosted file listing and management server that unifies many cloud storage providers and local storage behind one web interface and WebDAV.
A self-hosted web file manager with multi-source support, OIDC/LDAP login, file previews, search, sharing and WebDAV, shipped as a single binary.
A self-hosted file upload server built for ShareX, with sharing, galleries and short links.
Self-hosted multi-user web file manager supporting local storage, FTP, S3 and other cloud backends, with roles, permissions and chunked uploads.