Skip to content

AppMyMPT/ReplacementVPS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Сервис проверки замен для приложения "Мой МПТ" на VPS в Docker

Парсит страницу замен https://mpt.ru/izmeneniya-v-raspisanii/ каждый час (кроме 1:00–5:00), сравнивает с последним состоянием и отправляет FCM-уведомления на устройства, у которых в приложении выбрана соответствующая группа.

Требования

  • Docker и Docker Compose на VPS
  • Ключ сервисного аккаунта Firebase (JSON)

Получение ключа Firebase

  1. Firebase Console → проект MyMPT.
  2. ⚙️ Project settings → вкладка Service accounts.
  3. Generate new private key → скачается JSON-файл.
  4. Сохраните его как firebase-service-account.json в папку mpt-replacement-service/ на VPS (или в любое место и укажите путь в docker-compose.yml в volume).

Важно: не коммитьте этот файл в git. Добавьте в .gitignore:
mpt-replacement-service/firebase-service-account.json

Запуск через Docker Compose

В папке mpt-replacement-service/:

# Ключ уже лежит здесь как firebase-service-account.json
docker compose up -d --build

Сервис будет проверять замены каждый час, кроме 1:00–5:00 (по времени контейнера, у нас TZ=Europe/Moscow).

Логи:

docker compose logs -f mpt-replacement

Остановка:

docker compose down

Переменные окружения

Переменная Описание По умолчанию
STATE_FILE Файл для хранения последнего состояния замен /data/last_replacements.json
DATA_DIR Каталог для данных (volume) /data
GOOGLE_APPLICATION_CREDENTIALS Путь к JSON-ключу Firebase в контейнере /app/firebase-service-account.json
CRON_SCHEDULE Расписание cron (каждый час, кроме 1–5) 0 0,6-23 * * *
RUN_ONCE Если 1 — одна проверка и выход (для ручного/cron хоста) не задано
TZ Часовой пояс Europe/Moscow в docker-compose
LOG_LEVEL Уровень логов: debug, info, warn, error info
LOG_DIR Папка для лог-файла {DATA_DIR}/logs
LOG_FILE Полный путь к файлу логов (если задан — пишем в файл) {LOG_DIR}/service.log

Логирование

  • Логи пишутся в stdout (видны в docker compose logs) и дополнительно в файл data/logs/service.log (или LOG_DIR/LOG_FILE).
  • Уровень: LOG_LEVEL=debug для подробного вывода (парсинг, загрузка состояния, группы без изменений).

Данные

  • Состояние замен хранится в папке ./data (файл last_replacements.json). При пересоздании контейнера данные сохраняются, т.к. папка примонтирована с хоста.
  • Токены FCM и группы читаются из Firestore (коллекция fcm_tokens), куда пишет приложение.

About

Парсер замен в контейнере для приложения "Мой МПТ".

Topics

Resources

License

Stars

Watchers

Forks

Contributors