🌐File Stream Bot

An open-source Python Telegram bot to transmit Telegram files over HTTP.

## **πŸ“‘ INDEX** * [**βš™οΈ Installation**](#installation) * [Python & Git](#i-1) * [Download](#i-2) * [Requirements](#i-3) * [**πŸ“ Variables**](#variables) * [**πŸ•Ή Deployment**](#deployment) * [Locally](#d-1) * [Docker](#d-2) * [**⛑️ Need help!**](#help) * [**❀️ Credits & Thanks**](#credits) ## βš™οΈ Installation **1.Install Python & Git:** For Windows: ``` winget install Python.Python.3.11 winget install Git.Git ``` For Linux: ``` sudo apt-get update && sudo apt-get install -y python3.11 git pip ``` For MacOS: ``` brew install python@3.11 git ``` For Termux: ``` pkg install python -y pkg install git -y ``` **2.Download repository:** ``` git clone https://github.com/TheCaduceus/FileStreamBot.git ``` **3.Change Directory:** ``` cd FileStreamBot ``` **4.Install requirements:** ``` pip install -r requirements.txt ``` ## πŸ“ Variables **The variables provided below should either be completed within the [config.py](https://github.com/TheCaduceus/FileStreamBot/blob/main/bot/config.py) file or configured as environment variables.** * `API_ID`|`TELEGRAM_API_ID`: API ID of your Telegram account, can be obtained from [My Telegram](https://my.telegram.org). `int` * `API_HASH`|`TELEGRAM_API_HASH`: API hash of your Telegram account, can be obtained from [My Telegram](https://my.telegram.org). `str` * `OWNER_ID`: ID of your Telegram account, can be obtained by sending **/info** to [@DumpJsonBot](https://t.me/DumpJsonBot). `int` * `ALLOWED_USER_IDS`: A list of Telegram account IDs (separated by spaces) that are permitted to use the bot. Leave this field empty to allow anyone to use it. `str` * `BOT_USERNAME`|`TELEGRAM_BOT_USERNAME`: Username of your Telegram bot, create one using [@BotFather](https://t.me/BotFather). `str` * `BOT_TOKEN`|`TELEGRAM_BOT_TOKEN`: Telegram API token of your bot, can be obtained from [@BotFather](https://t.me/BotFather). `str` * `CHANNEL_ID`|`TELEGRAM_CHANNEL_ID`: ID of the channel where bot will forward all files received from users, can be obtained by forwarding any message from channel to [@DumpJsonBot](https://t.me/DumpJsonBot) and then looking from `forward_from_chat` key. `int` * `BOT_WORKERS`: Number of updates bot should process from Telegram at once, by default to 10 updates. `int` * `SECRET_CODE_LENGTH`: Number of characters that file code should contain, by default to 24 characters. `int` * `BASE_URL`: Base URL that bot should use while generating file links, can be FQDN and by default to `127.0.0.1`. `str` * `BIND_ADDRESS`: Bind address for web server, by default to `0.0.0.0` to run on all possible addresses. `str` * `PORT`: Port for web server to run on, by default to `8080`. `int` ## πŸ•Ή Deployment **1.Running locally:** ``` python -m bot ``` **2.Using Docker:** *(Recommended)* * Build own Docker image: ``` docker build -t file-stream-bot . ``` * Run the Docker container: ``` docker run -p 8080:8080 file-stream-bot ``` ## ⛑️ Need help! - Ask questions or doubts [here](https://t.me/DrDiscussion). ## ❀️ Credits & Thanks [**Dr.Caduceus**](https://github.com/TheCaduceus): Owner & developer of File Stream Bot.