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

49 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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