Repolode
mtlynch

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. 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