Skip to content
feeridevPublic

About

A self-hosted LAN file sharing app built with FastAPI, Python, JavaScript, and SQLite. Share public and private files securely across your local network without cloud storage.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

Β 

History

37 Commits

Folders and files

Repository files navigation

LocalDrop πŸ“¦

LocalDrop logo

Simple, private file sharing over your local network.

Working Prototype Python FastAPI SQLite

SQLAlchemy Jinja2 HTML, CSS and JavaScript Argon2 Windows installer


πŸš€ Download for Windows

Download LocalDrop for Windows

The easiest way to get started is to download the latest Windows installer.

  • No separate Python installation required.
  • Launch LocalDrop from the Desktop or Start Menu.
  • Share files with other devices connected to the same local network.

After starting LocalDrop, open:

http://127.0.0.1:8000

Other devices on the same network can access it using your computer's LAN IP address:

http://YOUR-PC-IP:8000

Browse all releases β†’


πŸ’‘ What is LocalDrop?

LocalDrop is a web-based file-sharing application built with Python and FastAPI.

The idea is simple: if computers are already connected to the same local network, why should you need cloud storage, messaging apps, or USB drives just to move a file from one machine to another?

LocalDrop provides a shared place to upload, download, and transfer files between authenticated users on the same LocalDrop instance.

No external cloud storage is required.

✨ Features

πŸ‘€ Accounts & authentication

  • User registration and login
  • Session-based authentication
  • Password hashing with Argon2
  • Logout

🌍 Public files

Upload files to make them available to authenticated users on the LocalDrop instance.

  • Upload and download files
  • Delete your own files
  • Display file size and upload date
  • Show uploader information
  • File-type icons

πŸ”’ Private file transfers

Send files directly to another registered LocalDrop user.

  • Choose a recipient
  • Upload private files
  • View received files
  • View sent files
  • Restrict downloads to the sender and recipient

πŸ“€ Upload experience

  • Multiple-file uploads
  • Drag and drop
  • Upload progress indicators
  • File-size display
  • Upload status
  • Filename handling

πŸ› οΈ Built with

Technology Purpose
Python Backend programming language
FastAPI Web framework and API
SQLAlchemy Database ORM
SQLite Local database
Jinja2 HTML templating
HTML, CSS and JavaScript User interface
Argon2 Password hashing
Uvicorn ASGI server

🧱 Project Structure

LocalDrop/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ api/
β”‚   β”œβ”€β”€ auth/
β”‚   β”œβ”€β”€ database/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ templates/
β”‚   └── main.py
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ private/
β”‚   └── public/
β”œβ”€β”€ tests/
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ .gitignore
└── README.md

The local database and uploaded files are intentionally excluded from Git. Runtime data is stored separately from the application.


βš™οΈ Run from Source

Prerequisites

  • Python 3.10 or newer
  • Git
  • pip

1. Clone the repository

git clone https://github.com/feeridev/LocalDrop.git
cd LocalDrop

2. Create a virtual environment

python3 -m venv .venv

Activate it.

Linux / macOS

source .venv/bin/activate

Windows PowerShell

.venv\Scripts\Activate.ps1

3. Install dependencies

python -m pip install -r requirements.txt

4. Start LocalDrop

python -m uvicorn app.main:app --reload

Open the application at:

http://127.0.0.1:8000

🌐 Use LocalDrop on Your LAN

LocalDrop is designed to make file sharing between devices on the same network straightforward.

Start the server with:

python -m uvicorn app.main:app --host 0.0.0.0 --port 8000

Find the host computer's local IP address, then open the following address on another device:

http://YOUR-PC-IP:8000

For example:

http://192.168.1.100:8000

Make sure the host firewall allows the connection and that both devices can communicate over the local network.


🎯 Why I'm Building This

LocalDrop started with a practical problem: sharing files between computers on a company's local network without depending on external cloud services, messaging apps, or USB drives.

Instead of building a one-off solution for a specific network, I decided to turn the idea into a standalone application that could be useful in other local network environments.

I'm also using LocalDrop to deepen my understanding of backend development, authentication, databases, file handling, access control, and building a complete application from the ground up.

The goal is to keep improving it until it becomes genuinely useful in real-world local network environments.

πŸ“Š Current Status

LocalDrop is a work in progress, with its core file-sharing functionality implemented.

Implemented

  • User registration
  • Login and logout
  • Session-based authentication
  • Public file uploads and downloads
  • Private file transfers
  • Access control
  • File deletion
  • File metadata and type icons
  • Drag-and-drop uploads
  • Multiple-file uploads
  • Upload progress
  • Windows executable and installer
  • Desktop and Start Menu shortcuts
  • Windows firewall configuration
  • Runtime data stored separately from the application

Planned

  • Search
  • Sorting and filtering
  • File previews
  • Folders
  • Rename files
  • Share links
  • Download as ZIP
  • Settings and administration
  • Improved mobile UI
  • Automatic updates

πŸ” Security Considerations

LocalDrop is currently designed for trusted local networks. It is not intended to be exposed directly to the public internet in its current state.

Before considering public deployment, additional safeguards are needed, including HTTPS, secure cookie configuration, upload limits, rate limiting, production hardening, and further security testing.

πŸ—ΊοΈ Development Roadmap

LocalDrop is developed incrementally, with features added through separate commits to keep the project's Git history useful and understandable.

The roadmap will evolve as the application matures and new requirements emerge.

πŸ“₯ Releases

Windows installers are published through GitHub Releases.

View all LocalDrop releases

πŸ“„ License

LocalDrop is licensed under the MIT License.

Copyright Β© 2026 Farshad


Built to make sharing files on a local network simpler.

About

A self-hosted LAN file sharing app built with FastAPI, Python, JavaScript, and SQLite. Share public and private files securely across your local network without cloud storage.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages