# Школьный бот - Мышонок - Школьный 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