![]()
A P2P file transfer tool using Django Channels.
Written in Python/Django
FileShare is a Django-based tool for securely transferring files between devices, similar to ShareDrop. It allows users to send and receive files directly over the network with built-in encryption for enhanced privacy.
Your data is protected using AES 256-bit encryption, making the file transfer process secure and reliable.
- The file is first
byte-encoded(client-side). - The encoded file is then
encryptedusing AES 256-bit encryption (server-side). - The encrypted file is
transferredto the recipient (still encrypted).
- The received file is
decryptedusing the same encryption key (server-side). - The decrypted data is
byte-decoded(client-side). - The original file is
reconstructedand made available for download.
This way only the intended recipient can access the file throughout the transfer.
The primary goal of this project is to provide an open-source application that anyone can use and learn from.
If you find this project interesting, helpful, or inspiring, please consider giving a star, following, or even donating.
cd path/to/root/directory
pip install uvtouch .env
nano .envAdd the following (adjust as needed):
SECRET_KEY="example_secret_key" # https://stackoverflow.com/a/57678930
ENCRYPTION_KEY="example_encryption_key" # https://cryptography.io/en/latest/fernet/#cryptography.fernet.Fernet
DEBUG=True # For developmentSave changes and close the file.
uv run manage.py migrateuv run manage.py runserverAccess web application at http://127.0.0.1:8000/ or http://localhost:8000/. Open two browser windows to transfer files between users.
uv run manage.py testuser1.mp4
user2.mp4
- Simplicity: Keep changes focused and easy to review.
- Libraries: Avoid adding non-standard libraries unless discussed via an issue.
- Testing: Ensure code runs error-free, passes all tests, and meets coding standards.
- Report bugs via GitHub Issues.
- Submit pull requests via GitHub Pull Requests.
Thank you for supporting FileShare!
