Fastdrop is a web application that allows users to easily transfer files between devices. It uses a peer-to-peer connection, so no files are ever stored on a server. This makes it a secure and private way to share files.
- 🔐 Privacy levels - Users can choose to share files with everyone, only close people, or only people on the same network
- 👥 Rooms - Users can create rooms to share files with multiple people at once
- 📁 Drag and drop - Users can drag and drop files to transfer
- ✅ Transfer confirmation - Users must confirm the transfer before files are sent to ensure that they are not sent to the wrong device
- 🔒 Secure - Files are transferred directly between devices, so no files are ever stored on a server
- 📦 Chunked file transfer - Large files are split into smaller chunks and sent one by one to ensure reliable transfer
- ⚡ Fast - Files are transferred quickly and efficiently
- 🌐 Cross-platform - Works on any device with a web browser
- 🆓 Free - Fastdrop is completely free to use
- 🛠️ Open source - Fastdrop is open source, so anyone can contribute to the project
- 📱 Mobile friendly - Fastdrop is optimized for mobile devices, so users can easily transfer files on the go
- 🚀 Docker - Fastdrop can be easily deployed using Docker for a hassle-free setup
docker run -d -p 3000:3000 --name fastdrop-frontend doctorpok/fastdrop:frontend-latest
docker run -d -p 8000:8000 --name fastdrop-backend doctorpok/fastdrop:backend-latest-
Clone the repository
git clone git@github.com:DoctorPok42/FastDrop.git
-
Install dependencies
cd frontend && npm install && cd ../server && npm install
-
Add .env file
cd frontend && touch .env
-
Add the following variables to the .env file
URL_SERVER=http://localhost:3001
-
Run the server and client in development mode with hot module replacement
cd frontend && npm run dev cd server && npm run build && npm start
-
Go to http://localhost:3000
-
Connect a second device
-
Drag and drop files to transfer them
-
Enjoy!
- components - Contains all the components used in the project
- pages - Contains all the pages used in the project
- public - Contains all the static files used in the project
- styles - Contains all the styles used in the project
- server - Contains the server code