To run this Surf-TG, you will need to add the following environment variables to your config.env file.
[!NOTE] First, rename the
sample_config.env
toconfig.env
.
Variable Name | Value |
---|---|
API_ID (required) |
Telegram api_id obtained from https://my.telegram.org/apps. int |
API_HASH (required) |
Telegram api_hash obtained from https://my.telegram.org/apps. str |
BOT_TOKEN (required) |
The Telegram Bot Token that you got from @BotFather str |
AUTH_CHANNEL (required) |
Chat_ID of the Channel you are using for index (Seperate Multiple Channel By , eg- -100726731829, -10022121832 ). int |
DATABASE_URL (required) |
Your Mongo Database URL (Connection string). Follow this Guide to generate database. str |
SESSION_STRING |
Use same account which is a participant of the AUTH_CHANNEL Use this Tool to generate Session String. str |
BASE_URL (required) |
Valid BASE URL where the bot is deployed. Format of URL should be http://myip , where myip is the IP/Domain(public) of your bot. For Heroku use App Url . str |
PORT |
Port on which app should listen to, defaults to 8080 . int |
USERNAME |
default username is admin . str |
PASSWORD |
default password is admin . str |
ADMIN_USERNAME |
Set the admin username so that the admin can log in to Playlist Creator. Make it different from USERNAME . The default admin username is surfTG . str |
ADMIN_PASSWORD |
Set the admin password so that the admin can log in to Playlist Creator. Make it different from PASSWORD . The default admin password is surfTG . str |
SLEEP_THRESHOLD |
Set a sleep threshold for flood wait exceptions, defaut is 60 . int |
WORKERS |
Number of maximum concurrent workers for handling incoming updates, default is 10 . int |
MULTI_TOKEN* |
Multi bot token for handing incoming updates. (*)asterisk represents any interger starting from 1. str |
THEME |
Choose any Bootswatch theme for UI, Default is flatly . str |
MULTI_CLIENT |
Set this True if using MULTI_TOKEN , Default is False . bool |
HIDE_CHANNEL |
Set this True to hide the Channel Card in Public Web, Default is False . bool |
Theme
Variable.Themes | |||||
---|---|---|---|---|---|
cerulean | cosmo | cyborg | darkly | flatly | journal |
litera | lumen | lux | materia | minty | pulse |
sandstone | simplex | sketchy | slate | solar | spacelab |
superhero | united | yeti | vapor | morph | quartz |
zephyr |
[!NOTE] What it multi-client feature and what it does?
This feature shares the Telegram API requests between worker bots to speed up download speed when many users are using the server and to avoid the flood limits that are set by Telegram.[!NOTE] You can add up to 50 bots since 50 is the max amount of bot admins you can set in a Telegram Channel.
To enable multi-client, generate new bot tokens and add it as your config.env
with the following key names.
MULTI_TOKEN1
: Add your first bot token here.
MULTI_TOKEN2
: Add your second bot token here.
you may also add as many as bots you want. (max limit is 50)
MULTI_TOKEN3
, MULTI_TOKEN4
, etc.
[!WARNING] Don't forget to add all these worker bots to the
AUTH_CHANNEL
for the proper functioning
[!NOTE] Why Database is Required
In Playlist Creator, the folder and file data are stored. As of now, the session string is not required in Surf-TG, so to store these files, the database is necessary.
https://mongodb.com/
and sign-up.Database
under Deployment
Header, your created cluster will be there.Allow Access From Anywhere
and press on Add IP Address
without editing the ip, then
create user.Choose a connection
, then press on Connect your application
. Choose Driver
python and version
3.6 or later.connection string
and replace <password>
with the password of your user, then press close.[!NOTE] Make Sure that you have to Generate the
Pyrofork Session String
To generate the Session String use this Colab Tool
[!NOTE] Login With
ADMIN_USERNAME
andADMIN_PASSWORD
AUTH_CHANNEL
index - store files in Database
Either you could locally host, VPS, or deploy on Heroku
git clone https://github.com/weebzone/Surf-TG
cd Surf-TG
python3 -m venv ./venv
. ./venv/bin/activate
pip install -r requirements.txt
python3 -m bot
To stop the whole server, do CTRL+C
If you want to run this server 24/7 on the VPS, follow these steps.
sudo apt install tmux -y
tmux
python3 -m bot
now you can close the VPS and the server will run on it.
Clone the Repository:
git clone https://github.com/weebzone/Surf-TG
cd Surf-TG
Start Docker daemon (SKIP if already running, mostly you don't need to do this):
sudo dockerd
Build own Docker image:
sudo docker build -t Surf-TG .
Start Container:
sudo docker run -p 8080:8080 Surf-TG
To stop the running image:
sudo docker ps
sudo docker stop id
Easily Deploy to Heroku use this Colab Tool
Answer: No, it is not required.
Answer: To initially index your files, use the /index
command in AUTH_CHANNEL
. This command stores all your files in the database. Please ensure that you use the /index
command only in one channel at a time. Once the channel indexing is complete, you can proceed to index the next channel.
/index
command every time the bot restarts or is deployed again?Answer: No, whether you restart the bot or deploy it again, you don't need to perform initial indexing unless you change the database.
/index
command every time I upload a file to the channel to index it?Answer: No, the /index
command is only used once initially. Subsequently, any files you send will automatically be stored in the database.
Answer: It work only when you use the Session String.
Answer: Login with ADMIN_USERNAME
and ADMIN_PASSWORD
, then clicking the reload option in the Homepage navbar clears all channel caches, to showing new posts. To clear a specific channel's cache, open the channel and click its reload option.
Answer: Login with ADMIN_USERNAME
and ADMIN_PASSWORD
, then clicking the Edit option in the Homepage navbar from there you can change theme and add/remove channel. Make sure that channel must be seperated by ,
Answer: No, only admins with ADMIN_USERNAME
and ADMIN_PASSWORD
can log in to Playlist Creator.
Answer: Yes, Your all the playlist will be deleted.
AUTH_CHANNEL
still then it will be played in Surf-TG?Answer: No, Once the file is deleted it will be no more playable.
Feel free to contribute to this project if you have any further ideas
Copyright (C) 2024-present Weebzone under GNU Affero General Public License.
Surf-TG is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Also keep in mind that all the forks of this repository MUST BE OPEN-SOURCE and MUST BE UNDER THE SAME LICENSE.