Система АЗАБРИС — сервер, клиенты, документация
  • Python 86.4%
  • Shell 13.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-07 13:35:16 +03:00
scripts 2026.10.07-1536 2026-10-07 13:35:16 +03:00
server 2026.10.07-1536 2026-10-07 13:35:16 +03:00
.gitattributes 2026.10.07-1536 2026-10-07 13:35:16 +03:00
.gitignore 2026.10.07-1536 2026-10-07 13:35:16 +03:00
CHANGELOG.md 2026.10.07-1536 2026-10-07 13:35:16 +03:00
deploy.sh 2026.10.07-1536 2026-10-07 13:35:16 +03:00
install.sh 2026.10.07-1536 2026-10-07 13:35:16 +03:00
LICENSE 2026.10.07-1536 2026-10-07 13:35:16 +03:00
NOTICE 2026.10.07-1536 2026-10-07 13:35:16 +03:00
README.md 2026.10.07-1536 2026-10-07 13:35:16 +03:00

Система АЗАБРИС — клиенты отображения экранов

Набор тонких клиентов для Android, Windows, Linux, которые превращают любой экран/ТВ/ПК в управляемое табло системы «АЗАБРИС». Вся верстка и логика — на сервере; клиент лишь привязывается к серверу и открывает назначенный экран в полноэкранном WebView (киоск).

Идея

  1. Запуск приложения → ввод адреса сервера.
  2. Клиент регистрируется, в админке появляется заявка.
  3. Администратор одобряет/отклоняет, назначает (или создаёт) экран и может переименовать устройство.
  4. После одобрения клиент открывает экран и показывает то, что настроил админ.
  5. Любое изменение сетки/панелей увеличивает версию конфигурации; клиент подхватывает изменения.
  6. Кнопка «Найти» подсвечивает конкретное физическое устройство.
  7. Клиент рапортует applied_version → админ видит «актуально/устарело».

Что уже реализовано на сервере

  • Таблица devices (+ device_displays — мультидисплейные клиенты), версия конфигурации у экранов (screens.config_version).
  • API устройств: регистрация (со списком мониторов), bootstrap, heartbeat, админ-CRUD, approve/reject/identify, назначение экранов каждому дисплею.
  • Страница показа /display/device/{token}?display=N и раздел админки «Устройства» (в т.ч. кнопка «Дисплеи»).

Документы

  • docs/USER_GUIDE.md — инструкция по работе в системе (что к чему).
  • docs/VERSIONING.md — учёт версий (формат, правила, синхронизация прод/копия/пакет).
  • CHANGELOG.md — история изменений по версиям.
  • docs/ARCHITECTURE.md — как всё устроено, потоки, роли.
  • docs/SERVER_API.md — все эндпоинты с примерами (curl).
  • docs/PROTOCOL.md — протокол привязки, heartbeat, версии, identify.
  • docs/CLIENT_SPEC.md — требования к клиенту, экраны, киоск, хранение.
  • docs/OPERATOR_APP.md — API и протокол для нативного приложения оператора очереди (уведомления о талонах, WebSocket).
  • docs/ANDROID.md — разработка и сборка APK (Kotlin + WebView).
  • docs/WINDOWS.md — варианты (WebView2/.NET, Tauri, Electron) и сборка.
  • docs/LINUX.md — варианты (GTK/WebKitGTK, PySide6, Tauri) и упаковка.
  • docs/TESTING.md — сценарии проверки и приёмки.

Развёртывание сервера

Быстрая установка одной командой (Ubuntu/Debian/Astra, RHEL, Arch, openSUSE, ALT):

curl -fsSL https://repo.abrisoft.ru/azabris/azabris/raw/branch/main/install.sh | sudo bash

Скрипт сам скачает актуальный пакет с репозитория и поставит сервер (backend + frontend + nginx + systemd) с пустой базой (admin / admin123). Параметры:

curl -fsSL https://repo.abrisoft.ru/azabris/azabris/raw/branch/main/install.sh | \
  sudo bash -s -- --dir /opt/azabris --port 2332 --backend-port 8032

Классический способ (из распакованного пакета):

sudo bash server/install-server.sh        # меню: установить / обновить / диагностика / удалить

Ставит backend + frontend + nginx + systemd с пустой базой (admin / admin123). Подробнее — server/README.md.

Требование: Python ≥ 3.10 (в коде — dict[str,int], int | None). На Astra Linux 1.7 поставьте python3.11 из репозитория Astra: sudo apt-get install python3.11 python3.11-venv. Установщик сам подберёт подходящий интерпретатор (или задайте AZABRIS_PYTHON=/usr/bin/python3.11).

Клиенты

Готовые установщики клиентов (Windows, Android) публикуются в отдельной ветке clients (папки по версиям, Git LFS; теги client-*). В этой ветке (main) — сервер и веб.

Быстрый старт клиента (что должен делать минимум)

  1. Сгенерировать/сохранить uid (UUID v4).
  2. Ввести адрес сервера, проверить GET /api/health.
  3. POST /api/devices/register → сохранить token.
  4. Открыть WebView на {server}/display/device/{token} (веб-страница сама покажет ожидание/одобрение/экран).
  5. Держать экран включённым, автозапуск, полноэкранный режим.

Сервер уже берёт на себя весь UI привязки на странице /display/device/{token} — клиенту достаточно нативно показать ввод адреса и открыть WebView.

Лицензия

Правообладатель — ИП Постнов Андрей Васильевич (бренд Азабрис) https://azabris.ru.

Лицензия: проприетарная. Программа распространяется и используется бесплатно; изменение и распространение — только с письменного разрешения правообладателя. Текст условий — в файле LICENSE и NOTICE.

Copyright (C) 2026 ИП Постнов Андрей Васильевич (Азабрис). ОГРНИП 318554300021653 · ИНН 550313751064 · г. Омск.

Доработки по требованию заказчика, внедрение, интеграции и сопровождение — платные услуги по отдельному договору (см. docs/SERVICES.md). Программа предоставляется «КАК ЕСТЬ», без гарантий. Исходный код (для ознакомления): https://repo.abrisoft.ru/azabris/azabris.