Skip to content
Mikhail Deynekin edited this page Oct 9, 2026 · 1 revision

18 · FAQ

← Home

Общие

Это официальный софт BAS-IP? Нет. Это независимое open-source приложение (MIT), использующее публичный HTTP API панелей BAS-IP Camdroid. Торговая марка принадлежит правообладателю.

Нужен ли облачный сервис BAS-IP? Нет. Приложение работает полностью локально: ваш сервер (или Raspberry Pi)

  • панель в локальной сети. Интернет нужен только для обновлений, Telegram/SMTP и оплаты по ссылкам.

Сколько это стоит? 0 ₽. MIT-лицензия, без ограничений на число домов/квартир/устройств.

Какие версии PHP/БД поддерживаются? PHP 8.2+ (рекомендуется 8.5), MySQL 8/MariaDB 10.6+, PostgreSQL 13+, SQLite 3. По умолчанию — MySQL.

Работает ли без JavaScript? Да: все формы и действия доступны без JS (прогрессивное улучшение). Без JS не будет QR-кодов в браузере и командной палитры.

Нужен ли Node.js на сервере? Нет. Ассеты уже собраны и закоммичены; Node нужен только разработчику для пересборки (npm run build).

Жители и доступ

Житель съехал — что делать? Карточка → снять «включен». Он мгновенно исчезает из списков, расчётов и рассылок; история сохраняется. Полное удаление — мягкое, с восстановлением.

Можно ли несколько машин и телефонов? Да: несколько машин (госномер + марка) и контактов (телефоны/e-mail/telegram) на одну карточку. Уведомления идут на primary-контакт каждого канала.

Как дать доступ консьержу/охране? Роль operator: открывать, вести жителей и кассу — без настроек, пользователей и бэкапов. Плюс журнал всех его действий.

Житель не платит — можно закрыть доступ? Да: снять чекбокс «доступ» (открывать не сможет, в списках остаётся) или «включен» (полностью вне расчётов). Это ручное решение; автоматически за долги никто не блокируется.

Деньги

Как делится сумма? Общая сумма ÷ активные участники: поровну (default), по площади, по числу жителей или по доле. Расщепление точное до копейки: сумма счетов всегда равна общей сумме.

Сумма изменилась после выставления счетов — всё пересоздавать? Нет: «Перерасчёт» создаст дополнительные счета на дельту (или сторно отключённым), уже оплаченное не трогается.

Житель заплатил больше? Переплата остаётся на балансе и учитывается автоматически.

Поддерживаются ли онлайн-оплаты? Приложение не процессит карты (и не требует кассы по 54-ФЗ само по себе): оно даёт ссылку на оплату (любой сервис) и принимает факт оплаты — вручную или вебхуком POST /api/v1/payments с external_id (идемпотентно).

Валюта только рубли? Нет: billing.currency/currency_symbol — любые (₸, Br, ₴, $…).

Гостевой доступ

Гость должен что-то устанавливать? Нет: ссылка открывается в браузере телефона, одна большая кнопка. Альтернативы — короткий код (продиктовать охране) и PIN для клавиатуры панели.

Почему 12 часов? Это default (guest.default_ttl_hours), пресеты 1–72 ч. Достаточно, чтобы курьер/гость приехал и уехал, и безопасно забыть отозвать.

Можно ли ограничить число открытий по одному пропуску? Да: guest.max_uses (0 = без лимита в пределах срока).

Что если гость поделится ссылкой со всеми? Ссылка персональная (в журнале видно владельца и имя гостя), действует ограниченно, лимитируется по частоте, отзывается одним нажатием. Для систематических въездов (курьерская служба) заведите отдельный пропуск с max_uses и сроком.

Эксплуатация

Сервер упал — жители не попадут домой? Шлагбаум должен иметь аппаратное аварийное открытие (кнопка/пульт/ключ) — это требование к любой автоматизации ворот. Приложение при падении сервера просто не открывает «удалённо»; панель BAS-IP автономна.

Как поставить на Raspberry Pi? Как на любой Linux: PHP 8.2+, nginx/lighttpd + php-fpm, SQLite или MariaDB, cron. 512 МБ ОЗУ достаточно.

Есть ли Docker-образ? Официального нет (принцип «без внешних зависимостей»); приложение ставится на любой LEMP/LEPP-стек. Community-образы приветствуются (см. CONTRIBUTING).

Как мониторить? GET /health.json (200/503 + статусы подсистем), GET /metrics (Prometheus), bin/bas-ip health (код возврата для cron), алерты в Telegram (system_alert).

Где хранятся персональные данные? Только в вашей БД и storage/ на вашем сервере. Логи маскируют секреты; экспорт/бэкапы — под вашим контролем. Приложение не звонит «домой», кроме GitHub API при проверке обновлений (отключается: update.enabled=false).

Можно ли несколько домов/ЖК на одной установке? Технически — корпус (building) разделяет жителей в списках и расчётах, несколько устройств (device.gates) — разные ворота. Полностью изолированные инсталляции проще вести отдельными установками (своя БД, свой домен).

Как сменить язык интерфейса? Сейчас интерфейс на русском (ui.language, слой Lang готов к расширениям). Переводы принимаются — см. CONTRIBUTING.

Разработка

Почему без фреймворка/composer? Осознанно: система управляет физическими воротами — чем меньше слоёв, тем надёжнее эксплуатация на любом хостинге и проще аудит безопасности. Ядро читается целиком, зависимости — ноль.

Как написать свой драйвер устройства? Реализуйте интерфейс BasIp\Device\GateDriver (+ supports()), зарегистрируйте в DeviceManager. Пример — HttpRelayDriver (~150 строк).

Как добавить канал уведомлений? Наследуйте BasIp\Notify\Channel\AbstractChannel (send, supports), добавьте конфиг в notify.channels. Пример — TelegramChannel.

Тесты? php tests/run.php (200 тестов на SQLite/MySQL/PostgreSQL), php tools/smoke.php (68 end-to-end проверок). Без PHPUnit — свой раннер.


← Home · Решение проблем · SECURITY

Clone this wiki locally