Store files in Telegram messages for free and access them from a modern Web UI

Telegram Storage

Store files in Telegram messages for free and access them in a nice web UI.

Telegram allows to store files (of max 2GB each) for a unlimited amount of storage.

This project allows you to store files in messages on a Telegram group and access them in from a web UI with all the features you'd expect on a normal cloud storage service.

How it works

This project consists of four parts:

  • The UI (written in Svelte)
  • The API (written in Go)
  • The Telegram Bot (written in Go)
  • The Database (PostgreSQL)

Users will have to start the bot, create a group, add the bot and make it administrator.

Typing /link will link the user to that group: the bot will send there all the files.

You will receive a token to login into the web UI, it will be your password (It can be reset by using /link again).

Now you won't need Telegram anymore, everything is managed in the WebUI.

Still, is not recommended to leave the group, since Telegram might not like the bot being alone in a group and could remove the messages (I'm not sure about this statement but is better not to risk).

When files are deleted from the internal database they are not actually removed from Telegram, hence they can be recovered if you scroll up enough.

Todo

  • Peer-to-peer encryption
  • Self host Telegram Bot API to allow the bot to upload bigger files (with this maybe)
  • Make easily deployable on Heroku
  • Split files bigger than 2GB
  • Download folders
  • File preview
  • Move frontend code to SvelteKit for routing
  • Progress while uploading files

Develop

First thing to do is populate the .env file. An example is provided.

The whole app is dockerized. To start the development environment with hot reloading of the frontend and backend code it's enough to run:

docker-compose up

A Makefile is provided for convenience and was the default method before the app was dockerized, it is not really supported now.

Similar Resources

Built a causally consistent, replicated and sharded key value store with a REST API.

A causally consistent, replicated and sharded key value store built in Golang with a RESTful API. Runs through the use of a Docker container.

Feb 2, 2022

Extract structured data from web sites. Web sites scraping.

Extract structured data from web sites. Web sites scraping.

Dataflow kit Dataflow kit ("DFK") is a Web Scraping framework for Gophers. It extracts data from web pages, following the specified CSS Selectors. You

Jan 7, 2023

記帳-PWA-web-app (Bookkeeping-PWA-web-app)

記帳-PWA-web-app (Bookkeeping-PWA-web-app)

GoKeep (bookkeeping web app) 記帳-PWA-web-app (Bookkeeping-PWA-web-app) demo link : https://bookkepping.herokuapp.com/ 測試用帳密 : tester002 , tester002 (亦可

Jan 31, 2022

log4jScanner: provides you with the ability to scan internal (only) subnets for vulnerable log4j web servicelog4jScanner: provides you with the ability to scan internal (only) subnets for vulnerable log4j web service

log4jScanner: provides you with the ability to scan internal (only) subnets for vulnerable log4j web servicelog4jScanner: provides you with the ability to scan internal (only) subnets for vulnerable log4j web service

log4jScanner Goals This tool provides you with the ability to scan internal (only) subnets for vulnerable log4j web services. It will attempt to send

Jan 5, 2023

Web terminal - A (unsafe) technical demo to export a shell to web browser

Web terminal - A (unsafe) technical demo to export a shell to web browser

Web Terminal A (unsafe) technical demo to export a shell to web browser. This pr

Dec 27, 2022

Go-web-scaffold - A simple scaffold for building web app quickly

Go-web-scaffold A simple scaffold for building web app quickly. features This sc

Jan 21, 2022

A fully-featured REST API developed in Golang for an online book store.

A fully-featured REST API developed in Golang for an online book store.

Oct 20, 2022

A fully-featured REST API developed in Golang for an online book store.

E-book Store A fully-featured REST API developed in Golang for an online book store. API Documentation Features Authentication (Sign up, Login and Res

Oct 20, 2022

REST-API specifically build to support online store system of Zahir

REST-API specifically build to support online store system of Zahir

Rest Test. • From Above ERD please create Rest full API. Create register API(Include Generate password). • Acceptance o Phone number and email is uniq

Nov 15, 2021
Comments
  • Docker error

    Docker error

    I tried to install the app on Windows 10, but I got this error

    [telegram-storage_bot-api internal] load git source https://github.com/billy4479/telegram-bot-api.git: #0 0.752 8a8dbb322b7cfbaf8754b8dfcf0a6b22a15e55f6 refs/heads/master #0 1.180 Cloning into '/var/lib/docker/overlay2/e8mawsx1xudu46v92pexybkei/diff/botapifm'... #0 1.862 [email protected]: Permission denied (publickey). #0 1.864 fatal: Could not read from remote repository. #0 1.864 #0 1.864 Please make sure you have the correct access rights #0 1.864 and the repository exists. #0 1.867 fatal: clone of '[email protected]:billy4479/botapifm.git' into submodule path '/var/lib/docker/overlay2/e8mawsx1xudu46v92pexybkei/diff/botapifm' failed

    failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: failed to update submodules for https://github.com/billy4479/telegram-bot-api.git: exit status 1

Generate a modern Web project with Go and Angular, React or Vue in seconds 🚀
Generate a modern Web project with Go and Angular, React or Vue in seconds 🚀

Goxygen Generate a Web project with Go and Angular, React or Vue. Goxygen aims at saving your time while setting up a new project. It creates a skelet

Jan 5, 2023
REST API for a shoe store using Go and Gin Web Framework

REST API for a shoe store using Go and Gin Web Framework This API uses a local PostgreSQL database that's set through the /gopostgres/driverConfig.go

Dec 26, 2021
This application is a tool to rapidly create TFS tasks and synchronize them with wiki.

This application is a tool to rapidly create TFS tasks and synchronize them with wiki.

Jan 10, 2022
Muxer - This repo is designed to trancode RTMP streams from the ingester and then push them to be muxed
Muxer - This repo is designed to trancode RTMP streams from the ingester and then push them to be muxed

VidersMuxer This repo is designed to trancode RTMP streams from the ingester and

Feb 3, 2022
A simple app to produce messages to sqs by using aws sdk v2 package for Golang.

go-sqs-producer A simple app to produce messages to SQS by using aws sdk v2 package for Golang in performatic meaning. How to run | go 1.17 or above i

Apr 22, 2022
listmonk is a standalone high performance, self-hosted newsletter and mailing list manager with a modern dashboard. Single binary app.
listmonk is a standalone high performance, self-hosted newsletter and mailing list manager with a modern dashboard. Single binary app.

listmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a PostgreSQL database as its data store.

Jan 1, 2023
Modern UI for Ansible
Modern UI for Ansible

Releases Docker Hub Install Instructions Troubleshooting Contribution Guide Roadmap UI Walkthrough (external blog) Release Signing All releases after

Jan 2, 2023
Tsdev (Zero Config Modern Typescript Projects)

Tsdev (Zero Config Modern Typescript Projects) Motivation I really like the idea behind https://github.com/jaredpalmer/tsdx but I find it uses older t

Jun 29, 2022
IIS Server and Access Logging Setup
IIS Server and Access Logging Setup

IIS Server and Access Logging Setup IIS Server Setup Open Server Manager from Start menu. Select "Add roles and features" on Server Manager Dashboard.

Nov 30, 2021
A RESTful API written in Golang to store and retrieve ticket information.

Tickets-API A RESTful API written in Golang to store and retrieve ticket information. This is a RESTful API built on top of the gin-gonic/gin package

Jan 31, 2022