TeleDrive is a production-ready cloud storage web application using:
- Backend: Python FastAPI, SQLAlchemy, Alembic, Redis
- Storage backend: Telegram via Telethon (single private channel per deployment)
- Frontend: React + TypeScript + Tailwind CSS
- Deployment: Docker Compose + Nginx
Note: Users never access Telegram directly. The backend uploads/downloads via the Telegram provider and persists only metadata/message IDs in PostgreSQL.
- Auth: Mobile number + OTP + JWT access/refresh tokens (refresh rotation), device tracking, login history
- RBAC: Admin/User roles
- Storage abstraction:
StorageProviderinterface (Telegram implemented first; S3-compatible later) - Background workers: upload jobs queued and processed asynchronously
backend/FastAPI appfrontend/React appinfra/Docker, Nginx, env templates
- Copy env templates:
cp infra/backend/.env.example infra/backend/.envcp infra/frontend/.env.example infra/frontend/.env
- Start services:
docker compose up --build
- Visit:
- Frontend:
http://localhost/ - API/Swagger:
http://localhost/api/docs
- Frontend:
See infra/DEPLOYMENT.md.