5.8 KiB
Администрирование ИКАР
Панель доступна по адресу https://ikar.kusoft.xyz/admin/. Вход использует
Admin__Username и Admin__Password из закрытой серверной конфигурации.
Учётная запись обычного пользователя мессенджера доступа к панели не даёт.
Панель включает:
- Обзор: база, пользователи, чаты, сообщения, вложения и активные сессии.
- Пользователи: поиск, фильтры, страницы, профиль, устройства уведомлений, отзыв одной или всех сессий, блокировка, разблокировка и удаление.
- Чаты и каналы: настройки приватности, публичное имя, срок жизни сообщений, темы, роли и разрешения, передача владения, приглашения и заявки на вход.
- Сообщения: поиск в чате, скрытие и восстановление. Вложения сохраняются при скрытии сообщения для возможности восстановления; истёкшие сообщения восстанавливать нельзя. Зашифрованное содержимое отображается в том виде, в котором оно хранится на сервере: расшифровка на сервере отсутствует.
- Жалобы: очередь, исходные данные, просмотр объекта, подтверждение или отклонение, блокировка автора или скрытие сообщения, повторное открытие. Старые жалобы автоматически переносятся из журнала модерации.
- Боты: поиск, включение и отключение, имя, описание, HTTPS-адрес
мини-приложения и замена токена. Новый токен показывается один раз.
Создание ботов сохраняет существующий процесс через
@botfatherbot. - Медиа: поиск, наличие файла, скачивание и удаление.
- Обновления: текущая версия Android, размер APK, SHA-256, сохранённые пакеты,
совместимость клиентов и переход к каталогу Аргус. Публикация релизов
выполняется существующими проверенными инструментами
tool/publish_*. - Обслуживание: состояние диска, память, резервные копии, отложенные сообщения, очередь push, повтор доставки, удаление задач и очистка TTL партиями до 500 сообщений.
- Журнал администратора: действия, объект, результат, комментарий, IP, поиск, страницы и экспорт текущей страницы в CSV.
- Доступ: действующие административные сессии и их отзыв.
Сессия администратора действует 12 часов. Выход, отзыв сессии и смена серверных реквизитов делают её cookie недействительным. Запросы изменения требуют CSRF-токена. В production cookie передаётся только по HTTPS. Административные страницы и ответы не кешируются; в журнал не записываются пароли, токены ботов и содержимое запросов. Вход ограничен десятью попытками за пять минут с одного IP. Отзыв сессии пользователя закрывает её SignalR соединения и отключает токены API.
Ключи cookie хранятся в Data/AdminKeys, на постоянном томе данных. Для
работы за reverse proxy параметр ReverseProxy__KnownProxies задаёт список
точных доверенных IP через запятую. На рабочем сервере инструмент
tool/deploy_server_fixes.py определяет адрес существующего Docker gateway;
порт API остаётся привязан к 127.0.0.1.
Проверка
dotnet test ikar_server/src/Ikar.Server.Tests/Ikar.Server.Tests.csproj
./tool/start_admin_test_server.ps1
python tool/seed_admin_ui_test.py
node tool/verify_admin_ui.cjs
Для браузерной проверки нужны Playwright и Chromium/Edge. При необходимости
PLAYWRIGHT_MODULE указывает путь к установленному модулю Playwright, а
ADMIN_BROWSER — к браузеру. Тестовый сервер слушает только loopback,
использует отдельную временную базу и тестовые реквизиты. После проверки
остановите PID из artifacts/admin-local-server.json.
После установки tool/verify_admin_console.py запускается на Pi вместе с
tool/admin_http.py: реквизиты читаются внутри сервера, проверяется доступ,
защита изменений, резервные копии и целостность базы. В отчёт секреты не входят.