A secure, admin-controlled, self-hosted cloud storage solution built with FastAPI. Upload, download, stream, share, and manage files easily through a simple and powerful web interface.
- 🔒 Admin Authentication (HTTP Basic Auth)
- ⚙️ First-time Setup UI (Admin credentials, storage directory, quota)
- 📤 Secure File Upload (Single & Multiple)
- 📥 Protected Download Access
- 🔗 Share Files via Temporary or Password-Protected Links
- 🎞️ Built-in Video Player
- 🧹 Background Cleanup for Expired Share Links
- 📊 Disk Usage Dashboard
- 💾 Storage Limit Enforcement
- 🖥️ Responsive Web Interface
- FastAPI – Web framework
- Uvicorn – ASGI server
- bcrypt – Secure password hashing
- psutil – Disk usage and system monitoring
- Vanilla HTML/CSS + JS – No frontend frameworks!
- Python 3.9+
- pip (Python package manager)
git clone https://github.com/yourusername/local-cloud-storage.git
cd local-cloud-storage
pip install -r requirements.txtYou can also use the included
start.shscript to start the server if you're on Linux/Mac.
uvicorn app:app --reload --host 0.0.0.0 --port 5107Or simply:
bash start.shVisit [http://localhost:5107/setup]to:
- Create an admin account
- Set a storage directory
- Configure storage quota (in GB)
Once setup is complete, you will be redirected to the home page.
All major file actions are protected and require HTTP Basic authentication.
POST /upload/
POST /upload-multiple/
GET /list/
GET /download/{filename}
DELETE /delete/{filename}
POST /share/{filename}
Params:
validity: expiry in seconds (optional)password: password to protect link (optional)
GET /shared/{share_id}
If password protected, user will see a password input form.
GET /player/{filename}
GET /storage-info
POST /update-storage-limit
.
├── app.py # Main FastAPI app
├── local_cloud_config.json # Auto-generated config
├── static/ # Static files like index.html
├── start.sh # Start script
└── README.md # This file
MIT License – You are free to use, modify, and distribute this project.
STILL WORKING. WILL UPDATE MORE LATER!!
✅ We will also provide updates, so stay tuned!
Made with ❤️ by Navaura_Arctiq