← projects

TgCloud

Full-stack storage platform built on Telegram with a web frontend, JWT authentication, and an encrypted CLI for people who prefer not to use browsers for anything.

FastAPIReactTypeScript

Full-stack cloud storage platform built on top of Telegram’s infrastructure. Web frontend, encrypted CLI, JWT auth. Uses Telegram as the actual storage backend — unlimited space, no self-hosted storage costs.

Features

  • Unlimited storage — Telegram as the backend, files stored in a private channel
  • Secure sharing — expiring public links for files and folders (60 min default)
  • Real-time — WebSocket-powered progress tracking for uploads and downloads
  • Encrypted CLI — for people who’d rather not use a browser for anything
  • JWT auth — standard token-based authentication
  • Docker-ready — single-script deployment

Tech stack

Backend — FastAPI, SQLAlchemy (SQLite), Telethon (Telegram client), WebSocket

Frontend — React 18 + TypeScript, Vite, TailwindCSS + shadcn/ui, TanStack Query

Quick start

git clone https://github.com/17tayyy/TgCloud.git
cd TgCloud

# Production deployment (Docker)
python deploy.py deploy

# Development (no Docker)
python deploy.py dev

You’ll need Telegram API credentials from my.telegram.org/apps and a Telegram channel to use as storage.

API_ID=your_api_id
API_HASH=your_api_hash
CHAT_ID=your_channel_id

API

POST /api/v1/register
POST /api/v1/token

GET    /api/v1/folders/
POST   /api/v1/folders/
GET    /api/v1/folders/{name}/files/
POST   /api/v1/folders/{name}/files/          # upload
GET    /api/v1/folders/{name}/files/{file}/download
DELETE /api/v1/folders/{name}/files/{file}

POST /api/v1/folders/{name}/files/{file}/share   # returns expiring token
GET  /access/file/{token}                         # public file access

Project structure

TgCloud/
├── deploy.py           # deployment script
├── backend/
│   ├── app/
│   │   ├── api/        # endpoints + websocket handlers
│   │   ├── auth/       # JWT auth
│   │   ├── client/     # Telegram integration + DB models
│   │   └── services/
│   └── main.py
└── frontend/
    └── src/
        └── components/ # Dashboard, FileItem, Login, SharedFile...