docs: переснять скриншоты после доработок UI и описать шкалу времени
Docker / build (push) Failing after 21s
Скриншоты сняты заново на демо-данных с неделей истории проверок. В docs/features.md — навигация по точкам измерений и новые матрицы блокировок и GeoIP. В мониторе цвет текста предупреждений читается в светлой теме (*-foreground, как в KPI). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No files matched your search
@@ -25,7 +25,12 @@ type MonitorCheck = {
|
||||
to: '/sync-journal' | '/settings/notifications' | '/accounts' | '/vps' | '/dashboard'
|
||||
}
|
||||
|
||||
const TONE_TEXT: Record<Tone, string> = { er: 'text-destructive', wn: 'text-warning', ok: 'text-success' }
|
||||
// text-warning/text-success на белом фоне не проходят контраст — *-foreground в светлой теме (как в KPI).
|
||||
const TONE_TEXT: Record<Tone, string> = {
|
||||
er: 'text-destructive',
|
||||
wn: 'text-warning-foreground dark:text-warning',
|
||||
ok: 'text-success-foreground dark:text-success',
|
||||
}
|
||||
const TONE_BG: Record<Tone, string> = { er: 'bg-destructive', wn: 'bg-warning', ok: 'bg-success' }
|
||||
|
||||
type SyncStatusRow = {
|
||||
@@ -195,7 +200,7 @@ export function SystemMonitorPopover() {
|
||||
>
|
||||
<Activity className={cn('size-4', alert ? 'text-warning' : 'text-success')} aria-hidden />
|
||||
<span
|
||||
className={cn('hidden text-sm font-medium min-[1000px]:inline', alert ? 'text-warning' : 'text-success')}
|
||||
className={cn('hidden text-sm font-medium min-[1000px]:inline', alert ? 'text-warning-foreground dark:text-warning' : 'text-success-foreground dark:text-success')}
|
||||
>
|
||||
{alert ? 'Внимание' : 'Норма'}
|
||||
</span>
|
||||
|
||||
@@ -147,7 +147,11 @@
|
||||
|
||||

|
||||
|
||||
Проверка доступности популярных сервисов **с самого VPS** (через [censorcheck](https://github.com/vernette/censorcheck)): доступен, заблокирован, отказ (403), редирект, таймаут. Результат автоматически привязывается к VPS по IP; есть история прогонов и группировка по VPS или по сервису.
|
||||
Проверка доступности популярных сервисов **с самого VPS** (через [censorcheck](https://github.com/vernette/censorcheck)): доступен, заблокирован, отказ (403), редирект, таймаут. Результат автоматически привязывается к VPS по IP.
|
||||
|
||||
- **Шкала времени**: каждая капсула — час с измерениями; высота — число проб, красная/жёлтая часть — доля прогонов с ограничениями. Переход кликом, кнопками ‹ ›, клавишами ← → или пресетами «Сейчас / −1 ч / −6 ч / −24 ч / −7 д» — матрица показывает состояние на выбранный момент.
|
||||
- **Матрица**: строка — VPS с флагом страны, колонка — сервис с иконкой бренда; цветной значок статуса и колонка «Доступно X из Y» с полосой. Переключение «По VPS / По сервису», фильтры по статусу, сервису, хостеру, стране; клик открывает детали прогона.
|
||||
- **История** — все сохранённые прогоны.
|
||||
|
||||
Запуск на сервере — одна команда (скрипт ставит недостающие `jq`/`dig`, показывает прогресс и отправляет результат с одноразовым токеном):
|
||||
|
||||
@@ -171,7 +175,11 @@ curl -fsSL https://vt.example.com/cc | bash -s -- --remove-daily
|
||||
|
||||

|
||||
|
||||
Какую страну видят у вашего IP GeoIP-базы (MaxMind, RIPE, ipinfo, Cloudflare…) и сервисы (Google, YouTube, Netflix, ChatGPT…), включая CDN, — через [ipregion](https://github.com/vernette/ipregion). Матрица VPS × сервис, переключение «по VPS / по сервису», подсветка расхождений, история.
|
||||
Какую страну видят у вашего IP GeoIP-базы (MaxMind, RIPE, ipinfo, Cloudflare…) и сервисы (Google, YouTube, Netflix, ChatGPT…), включая CDN, — через [ipregion](https://github.com/vernette/ipregion).
|
||||
|
||||
- Ячейки матрицы — флаг и ISO-код страны; сервис, который видит **другую** страну, чем большинство, подсвечен жёлтым.
|
||||
- Колонка «Страна» — итоговая страна по большинству и «совпадает N из M».
|
||||
- Та же шкала времени, что у блокировок: жёлтые капсулы — часы с расхождениями.
|
||||
|
||||
Запуск так же, как у блокировок: `curl -fsSL https://vt.example.com/ic | bash` (`--daily`, `--remove-daily`), для MikroTik — `ic.rsc`.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 78 KiB |