49 lines
3.7 KiB
Markdown
49 lines
3.7 KiB
Markdown
# Школьный бот - Мышонок
|
||
- Школьный Telegram бот, для общения с учениками и проведенния различных мероприятий онлайн.
|
||
Бот имеет полностью настроенный функционал для работы в качестве предложки школьной группы. Также в нем есть инструменты администрирования, статистика.
|
||
|
||
- Также это хороший шаблон для того, чтобы позаимствовать из него некоторый штучки.
|
||
Например, его структуру (работа с роутерами, разделение по директориям для удобного масштабирования), админ-панель, работу с БД и ее настройка, всякие фильтры, мидлвари и состояния тоже присутствуют и могут помочь в ваших проектах.
|
||
|
||
- Ну и конечно не забываем про локализацию и использование podman (или Docker, если вы очень принципиальный, там сильно ничего не отличается в развертке).
|
||
|
||
- Бот распространяется под свободной лицензией, берите что хотите и используйте как вам нужно.
|
||
|
||
|
||
## Техническая часть
|
||
- Бот написан на Python 3.11 с применением асинхронной библиотеки Aiogram (States, Middlewares, Custom Filters).
|
||
- БД - PostgreSQL, взаимодействие осуществляется с помощью библиотеки SQLAlchemy.
|
||
- Также используется асинхронный клиент Redis.
|
||
- Весь текст для диалогов бота находится в отдельном файле локализации (PyBabel).
|
||
- Логирование главный событий + настройки для логов (автоудаление логов, сжатие файлов логов).
|
||
- Бот полностью развертывается с помощью podman-compose || docker-compose.
|
||
- Разработка с помощью NixOS с использованием Nix Shell.
|
||
|
||
|
||
## Содержание .env-файла
|
||
- Файл находится в корневой папке проекта, так и называется ".env".
|
||
- Вместо значений в круглых скобках необходимо указать ваши данные.
|
||
1. BOT_TOKEN = (ваш токен бота)
|
||
2. REDIS_HOST = "redis"
|
||
3. REDIS_PORT = 6379
|
||
4. POSTGRES_HOST = "postgres"
|
||
5. POSTGRES_PORT = 5432
|
||
6. POSTGRES_USER = "MouseyBot"
|
||
7. POSTGRES_PASSWORD = (пароль для БД)
|
||
8. POSTGRES_DB = "mousey_bot"
|
||
9. DB_URL = "postgresql+asyncpg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}"
|
||
10. MAIN_ADMIN_ID = (Telegram ID главного админа)
|
||
- Вы также можете изучить example.env
|
||
|
||
|
||
## Если ваш выбор - NixOS
|
||
- Просто используйте nix-shell, который скачает вам весь инструментарий
|
||
(podman-compose) с помощью команды: nix-shell ./Shell
|
||
|
||
|
||
## Как развернуть с помощью docker-compose:
|
||
- Версия podman - 5.2.3, версия podman-compose - 1.2.0
|
||
1. Скопируйте проект
|
||
2. Скопировать example.env как .env
|
||
3. Заполните .env файл.
|
||
4. Выполнить: docker compose -f Docker/docker-compose.yaml --env-file .env up
|