You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
Alex Kern 62e95c0444
Adjust network
12 months ago
.github/workflows FilePizza v2 🍕 (#134) 12 months ago
bin FilePizza v2 🍕 (#134) 12 months ago
public FilePizza v2 🍕 (#134) 12 months ago
scripts Add git pull 12 months ago
src Remove Peerjs config 12 months ago
.cursorrules FilePizza v2 🍕 (#134) 12 months ago
.dockerignore FilePizza v2 🍕 (#134) 12 months ago
.gitignore FilePizza v2 🍕 (#134) 12 months ago
.prettierrc.js FilePizza v2 🍕 (#134) 12 months ago
Dockerfile add builder container 12 months ago
LICENSE Load fonts locally & not from Google (#51) 9 years ago
README.md more updates 12 months ago
docker-compose.production.yml Adjust network 12 months ago
docker-compose.yml some production updates 12 months ago
eslint.config.mjs FilePizza v2 🍕 (#134) 12 months ago
next-env.d.ts FilePizza v2 🍕 (#134) 12 months ago
next.config.js FilePizza v2 🍕 (#134) 12 months ago
package.json Adjust renew interval and add dev script 12 months ago
pnpm-lock.yaml FilePizza v2 🍕 (#134) 12 months ago
postcss.config.js FilePizza v2 🍕 (#134) 12 months ago
tailwind.config.js more prod changes 12 months ago
tsconfig.json FilePizza v2 🍕 (#134) 12 months ago

README.md

XKCD 949 FilePizza wordmark

Peer-to-peer file transfers in your browser

Cooked up by Alex Kern & Neeraj Baid while eating Sliver @ UC Berkeley.

Using WebRTC, FilePizza eliminates the initial upload step required by other web-based file sharing services. Because data is never stored in an intermediary server, the transfer is fast, private, and secure.

A hosted instance of FilePizza is available at file.pizza.

Development

$ git clone https://github.com/kern/filepizza.git
$ pnpm install
$ pnpm dev
$ pnpm build
$ pnpm start

Running with Docker

$ pnpm docker:build
$ pnpm docker:up
$ pnpm docker:down

Stack

  • Next.js
  • Tailwind
  • TypeScript
  • React
  • PeerJS for WebRTC
  • View Transitions
  • Redis (optional)

FAQ

How are my files sent? Your files are sent directly from your browser to the downloader's browser. They never pass through our servers. FilePizza uses WebRTC to send files. This requires that the uploader leave their browser window open until the transfer is complete.

Can multiple people download my file at once? Yes! Just send them your short or long URL.

How big can my files be? As big as your browser can handle.

What happens when I close my browser? The URLs for your files will no longer work. If a downloader has completed the transfer, that downloader will continue to seed to incomplete downloaders, but no new downloads may be initiated.

Are my files encrypted? Yes, all WebRTC communications are automatically encrypted using public-key cryptography because of DTLS. You can add an optional password to your upload for an extra layer of security.

License & Acknowledgements

FilePizza is released under the BSD 3-Clause license. A huge thanks to iblowyourdesign for the pizza illustration.