Telegram Drive Web is a self-hosted web-based port of Telegram-Drive. It transforms your Telegram account into an unlimited, secure cloud storage drive, built with a Node.js (Express + gram.js) backend and a premium React (Vite + TypeScript) frontend.
- Unlimited Cloud Storage: Harness the power of Telegram's infrastructure to store files of any size.
- Two-Layer Access Protection:
- Web Access Password: Secures the web UI with a lock screen (essential when hosting on public domains).
- Dynamic Telegram Auth: Log in natively on the Web UI using either a QR Code Scan or Phone Number & OTP.
- Interactive API Configuration: Input your custom
TELEGRAM_API_IDandTELEGRAM_API_HASHdirectly on the login screen. No need to hardcode credentials or rebuild containers. - Flexible Theme Control: Toggle between premium dark-mode (default glassmorphism) and light-mode themes dynamically.
- Dynamic File Sharing: Generate secure public sharing links with:
- Optional password protection.
- Custom link expiration boundaries (e.g. 1 hour, 1 day, 7 days, custom hours, or never).
- Streamed public downloads directly via the server (bypasses admin portal credentials).
- Folder / Channel Context Menu:
- Rename and Delete folders (channels).
- Toggle folder publicity between public (with custom username
@my_folder) and private. - Export and copy invite links.
- Fast Navigation Caching: Powered by SQLite (
sql.js) to cache file/folder metadata, reducing Telegram API rate limits. - Docker Ready: Multi-stage
Dockerfileanddocker-compose.ymlfor quick and containerized deployment.
Docker Compose is the easiest way to deploy the application on any platform (Linux, macOS, Windows, or NAS OS like CasaOS).
- Create a project directory:
mkdir telegram-drive-web cd telegram-drive-web - Create a
.envfile in the directory to set up the Access Password for the Web UI:ACCESS_PASSWORD=your_secure_web_ui_password
- Create a
docker-compose.ymlfile:services: telegram-drive: image: irnhakim/telegram-drive-web:latest container_name: telegram-drive-web restart: unless-stopped ports: - "3001:3001" environment: - ACCESS_PASSWORD=${ACCESS_PASSWORD} volumes: - telegram-drive-data:/app/data volumes: telegram-drive-data: driver: local
- Start the container:
docker compose up -d
- Access the Web UI by navigating to
http://<your-server-ip>:3001.
- Clone the repository and install dependencies for both the frontend and backend:
# Clone repository git clone https://github.com/caamer20/Telegram-Drive.git # (or your fork repository URL) cd Telegram-Drive-WebServer # Set up backend cd server npm install npm run build # Set up frontend cd ../client npm install npm run build
- Create a
.envfile in the root of the server directory:ACCESS_PASSWORD=your_secure_web_ui_password PORT=3001
- Start the production server:
cd ../server npm start - Open your browser and navigate to
http://localhost:3001.
To run client and server concurrently with hot reloading:
- Configure the
.envfile in the root workspace directory. - Run the backend server in development mode:
cd server npm run dev - In a separate terminal, start the Vite development server:
cd client npm run dev - Access the development environment at
http://localhost:5173.
This project is licensed under the MIT License - see the LICENSE file for details.