# Changelog ## [feature] Онлайн-редактирование config.yaml через веб-интерфейс - Добавлены API-эндпоинты /api/config (GET, POST) для получения и сохранения настроек - На главной странице добавлена кнопка "Редактировать настройки" с модальным окном для редактирования config.yaml - Реализована валидация yaml при сохранении настроек - После сохранения настроек происходит их немедленное применение - Удалена старая кнопка перехода к настройкам - Добавлены тесты на pytest для проверки работы API (чтение, сохранение валидного и невалидного yaml, обновление файла) - Встроен Monaco Editor для YAML с подсветкой синтаксиса, проверкой ошибок и возможностью увеличивать окно редактора - Добавлен вывод температуры и облачности с weatherapi.com, настройки (api_key, lat, lon, cache_ttl) вынесены в config.yaml - Поддержка настройки времени кэширования погоды через weather.cache_ttl (минуты, по умолчанию 60) - В шапке вместо приветствия теперь крупно текущее время, дата на русском - Дата и время теперь на одной строке, одинакового размера и цвета, хорошо видны на тёмном фоне - Два поисковых поля (Google и Яндекс) с логотипами, адаптивные, крупный шрифт, занимают всю ширину ## [init] Стартовая инициализация структуры Flask-приложения - Создана структура каталогов: templates/, static/ - Вынесены данные Applications и Bookmarks в config.yaml - Добавлен базовый шаблон для главной страницы - Перенесены ассеты из example/home_files в static/ ## [fix] Мгновенное применение изменений config.yaml на главной странице - Исправлено: после сохранения config.yaml главная страница теперь сразу отображает актуальные данные (конфиг перечитывается при каждом запросе, кэш убран) ## [feature] Индикатор статуса сервисов на главной странице - Добавлен индикатор (зелёный/красный квадратик после даты) для отображения доступности всех сервисов из config.yaml (включая Uptime Kuma) - Проверка доступности реализована через HTTP-запросы при каждом открытии главной страницы ## [improve] Асинхронный индикатор статуса сервисов - Индикатор статуса сервисов теперь обновляется асинхронно через отдельный API-эндпоинт, не тормозит загрузку страницы ## [improve] Имя недоступного сервиса в описании индикатора - При недоступности сервиса в описании красной кнопки теперь отображается имя недоступного сервиса ## [change] Переименование секции services в checkOnline - Секция services в config.yaml переименована в checkOnline, код обновлён