A secure, modern web-based file manager for transferring files across devices on a local network.
Built with a minimalist UI, authentication, and full mobile responsiveness.
-
🔐 Secure Authentication --- bcrypt hashing + session management
-
📤 File Upload --- single and multi-file support
-
📂 Folder Upload --- recursive upload with hidden file detection + confirmation
-
📥 File Download --- via right-click or menu
-
📁 Folder Management --- create and delete folders
-
🗑️ Multi-Select Delete --- bulk file deletion
-
🔍 Search --- filter files in current directory
-
🌙 Dark Mode --- persistent theme toggle
-
📱 Responsive Design --- optimized for mobile/tablet
-
⌨️ Keyboard Shortcuts --- power-user controls
-
🎨 Modern UI --- clean design with cyan/yellow accents
-
Python 3.9+
-
pip
git clone https://github.com/yourusername/local-file-manager.git
cd local-file-manager
pip install flask flask-login bcrypt
pip3.11 install flask flask-login bcrypt
python3 change_credentials.py
- Creates
users.jsonwith hashed credentials
Default credentials (if skipped):
-
Username:
admin -
Password:
password123
Edit app.py:
app.secret_key = "your-secret-key"
BASE_FOLDER = "/your/storage/path"
Generate a secure key:
python3 -c "import secrets; print(secrets.token_hex(32))"
local-file-manager/
├── app.py
├── change_credentials.py
├── users.json
├── README.md
└── static/
├── index.html
├── script.js
├── style.css
└── favicon.svg
python3 app.py
http://0.0.0.0:5505
Local:
http://localhost:5505
Network:
http://YOUR_IP:5505
Find IP:
ifconfig
ipconfig
-
Click Upload
-
Supports files + folders
-
Hidden files detected with confirmation
-
Click folders/files
-
Use breadcrumbs
-
Backspaceto go up
-
Desktop: right-click
-
Mobile: ⋮ menu
-
Single or multi-select
-
Folders must be empty
-
Ctrl/Cmd + A→ select all -
Ctrl/Cmd + K→ search -
Esc→ clear
python3 change_credentials.py
BASE_FOLDER = "/new/path"
app.run(host="0.0.0.0", port=5505, debug=True)
-
bcrypt hashing
-
session authentication
-
path protection
-
HTTPS
-
rate limiting
-
file validation
-
CSRF protection
Connection issues
-
Same network?
-
Firewall open?
-
Use IP instead of hostname
Reset password
python3 change_credentials.py
or
rm users.json
python3 app.py
-
Flask
-
Flask-Login
-
bcrypt
-
Vanilla JS
-
CSS
| Method | Endpoint |
|---|---|
| GET | / |
| GET | /login |
| POST | /login |
| GET | /logout |
| GET | /files |
| POST | /upload |
| POST | /delete |
MIT License © 2025
Local use only.
If you expose this publicly without security layers, expect problems.