Compare commits

...

3 Commits

Author SHA1 Message Date
8a51b0db79 update readme.md 2025-03-29 18:51:50 +03:00
184bce81e9 rename keys .env 2025-03-29 18:51:41 +03:00
ba09035585 add image 2025-03-29 18:51:26 +03:00
3 changed files with 72 additions and 3 deletions

View File

@ -1,2 +1,70 @@
# TelegramBotTemplate
<h3 align="center">TelegramBotTemplate</h3>
<div align="center">
[![Status](./docs/status-active-success.svg)]()
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE)
</div>
## 📝 Содержание
- [О проекте](#about)
- [Установка и запуск](#install)
## 🧐 О проекте <a name = "about"></a>
Проект шаблон с небольшими примерами реализации states, factory, и callbacks. Упор был сделан на отказоустойчивость и более простую поддержку проекта при его росте
## 🎈 Установка и запуск <a name = "install"></a>
Для установки необходимо выполнить установку компонентов в системе Ubuntu:
```
sudo apt update
sudo apt install -y git docker.io docker-compose
```
Далее:
- Получить API_TOKEN в [ссылка](https://t.me/botFather)
### В папке с проектом:
для систем Ubuntu:
```
python -m venv venv
source ./venv/bin/activate
./venv/bin/python -m pip install -r requirements.txt
```
для систем Windows:
```
python -m venv venv
./venv/Scripts/activate
./venv/Scripts/python -m pip install -r requirements.txt
```
создайте в папке проекта .env файл, и поместите значения следующим образом:
```
# Show debug messages in sys.out
DEBUG=True
# Telegram
API_TOKEN=Ваш_токен
# Database Postgres
DATABASE_URL_LOCAL_MIGRATE=postgresql+asyncpg://admin:admin@localhost:5432/postgresdb
POSTGRES_USER=admin
POSTGRES_PASSWORD=admin
POSTGRES_PORT=5432
POSTGRES_DB=postgresdb
PGDATA=/var/lib/postgresql/data/pgdata
```
Останется собрать всё это для работы:
### Команда:
> sudo docker compose --file 'docker-compose.dev.yaml' up -d
После запуска проекта, запустите миграцию моделей в базу данных
> alembic upgrade head

View File

@ -13,7 +13,7 @@ def get_logger(filename: str = "/volumes/logs/main.log", level: str = "INFO") ->
logger.remove()
logger.add(filename, level=level, rotation="5 MB")
if os.getenv("debug") == "True":
if os.getenv("DEBUG") == "True":
logger.add(sys.stderr, level="DEBUG")
else:
logger.add(sys.stderr, level=level)
@ -22,7 +22,7 @@ def get_logger(filename: str = "/volumes/logs/main.log", level: str = "INFO") ->
class Secrets:
bot_token: str = os.getenv("bot_token")
bot_token: str = os.getenv("BOT_TOKEN")
redis_url: str = "redis://redis_telegram_bot:6379"
postgres_url: str = "postgresql+asyncpg://admin:admin@postgres_telegram_bot:5432/postgresdb"

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="86" height="20" role="img" aria-label="status: active"><title>status: active</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="86" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="43" height="20" fill="#555"/><rect x="43" width="43" height="20" fill="#4c1"/><rect width="86" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="225" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="330">status</text><text x="225" y="140" transform="scale(.1)" fill="#fff" textLength="330">status</text><text aria-hidden="true" x="635" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="330">active</text><text x="635" y="140" transform="scale(.1)" fill="#fff" textLength="330">active</text></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB