TeleCloud is a powerful cloud storage solution that leverages Telegram's unlimited storage API, featuring intelligent large file handling, a modern responsive UI, and robust file management capabilities.
Note
This project uses Telegram as a storage backend. Please ensure you comply with Telegram's Terms of Service.
TeleCloud is designed for:
- Developers who want free / low-cost cloud storage
- Users comfortable with self-hosting
- Projects that need large file storage without S3 costs
Not recommended if:
- You need enterprise SLA
- You don’t want to manage Telegram bots or Cloudflare
- 🚀 Unlimited Storage: Utilizes Telegram's infrastructure for reliable and unlimited file storage.
- 📦 Large File Support: Auto-slicing technology automatically splits files larger than 20MB (or custom limits -no implement yet) into manageable chunks, bypassing standard bot API restrictions.
- 🎨 Modern UI: Built with React 19, Vite, and TailwindCSS v4, featuring a beautiful, responsive interface with Dark Mode support.
- 📂 Smart File Management:
- Drag-and-drop uploads.
- Advanced sorting and searching.
- File previews (Video streaming, Markdown rendering, Image viewing).
- Folder-like organization.
- ⚡ High Performance: Powered by Cloudflare Workers and D1 Database for low-latency metadata access and proxying.
- Frontend: React 19, Vite, TypeScript, TailwindCSS
- Backend: Cloudflare Workers (Edge Compute)
- Database: Cloudflare D1 (SQLite at the Edge)
- Integration: Telegram Bot API
- Node.js >= 18
- Cloudflare account
- Telegram Bot Token (get from @BotFather)
- Basic knowledge of Cloudflare Workers
git clone https://github.com/Im-Not-God/TeleCloud.git
cd telecloud
npm installDeploy Worker:
# Deploy the worker logic
npx wrangler deploy worker.js --name telecloud-workerSetup Database (D1):
- Create the D1 database:
npx wrangler d1 create telecloud-db
- Initialize the database schema:
(Note: For remote database, add
npx wrangler d1 execute telecloud-db --file=./schema.sql
--remoteflag if needed)
Connect Worker to D1:
- Go to your Cloudflare Dashboard -> Workers -> [Your Worker] -> Settings -> Variables.
- Add a D1 Database binding with variable name:
DB. - Select your
telecloud-db.
Run Locally:
npm run devOpen http://localhost:3000 to view the app.
Option A: Command Line Build and deploy directly using Wrangler:
npm run publishOption B: GitHub Integration (Recommended)
- Go to Cloudflare Dashboard -> Workers & Pages -> Create Application -> Pages -> Connect to Git.
- Select your repository.
- Build Settings:
- Framework Preset: React (Vite)
- Build Command:
npm run build - Output Directory:
dist
- Deploy!
TeleCloud is primarily developed using a vibe-driven coding approach.
This means:
- Rapid prototyping and iteration over rigid upfront design
- Heavy use of intuition, experimentation, and real-world testing
- Refactoring happens continuously as features stabilize
While the development style is informal, the project still emphasizes:
- Clear architecture boundaries
- Practical reliability over theoretical perfection
- Incremental improvement rather than premature optimization
As the project matures, parts of the codebase may be refactored, documented, or formalized further.
MIT