@TellerBot is an asynchronous Telegram Bot written in Python to help you meet people that you can swap money with.
- Python >= 3.8
- MongoDB
- Motor - asynchronous Python driver for MongoDB
- AIOgram - asynchronous Python library for Telegram Bot API
- Emoji - emoji for Python
- Clone the repository:
git clone https://github.com/fincubator/tellerbot
cd tellerbot
- Create environment file from example:
cp .env.example .env
- Personalize settings by modifying
.env
with your preferable text editor. - Create a new Telegram bot by talking to @BotFather and get its API token.
- Create a file containing Telegram bot's API token with filename specified in
TOKEN_FILENAME
from.env
(example in secrets/tbtoken). - (Optional) If you're going to support escrow, set
ESCROW_ENABLED=true
in.env
and create a file containing JSON mapping blockchain names to bot's WIF and API nodes with filename specified inESCROW_FILENAME
from.env
(example in secrets/escrow.json). - Create a file containing database password with filename specified in
DATABASE_PASSWORD_FILENAME
from.env
(example in secrets/dbpassword). - Install Docker Compose version no less than 1.26.0.
- Start container:
docker-compose up --build
For subsequent launches starting container is enough.
- Clone the repository:
git clone https://github.com/fincubator/tellerbot
cd tellerbot
- Install Python version no less than 3.8 with pip.
- Install requirements:
pip install -r requirements.txt
pip install -r requirements-escrow.txt # If you're going to support escrow
- Compile translations:
pybabel compile -d locale/ -D bot
- Create environment file from example:
cp .env.example .env
- Personalize settings by modifying
.env
with your preferable text editor. RemoveINTERNAL_HOST
andDATABASE_HOST
if you want bot and database running on localhost. - Create a new Telegram bot by talking to @BotFather and get its API token.
- Create a file containing Telegram bot's API token with filename specified in
TOKEN_FILENAME
from.env
(example in secrets/tbtoken). - (Optional) If you're going to support escrow, set
ESCROW_ENABLED=true
in.env
and create a file containing JSON mapping blockchain names to bot's WIF and API nodes with filename specified inESCROW_FILENAME
from.env
(example in secrets/escrow.json). - Create a file containing database password with filename specified in
DATABASE_PASSWORD_FILENAME
from.env
(example in secrets/dbpassword). - Install and start MongoDB server.
- Set environment variables:
export $(sed 's/#.*//' .env | xargs)
- Create database user:
./mongo-init.sh
- Restart MongoDB server with access control enabled.
- Launch TellerBot:
python .
For subsequent launches setting enviroment variables and launching TellerBot is enough.
You can help by working on opened issues, fixing bugs, creating new features, improving documentation or translating bot messages to your language.
Before contributing, please read CONTRIBUTING.md first.
TellerBot is released under the GNU Affero General Public License v3.0. See COPYING for the full licensing conditions.