π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.