This repository has been archived on 2025-09-07. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
MouseyBot/README.md

3.7 KiB
Raw Blame History

Школьный бот - Мышонок

  • Школьный 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