Skip to content

17 Migration from v1

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

17 · Миграция с v1

← Home

v1 — это один файл bas-ip.php (+ config.php, css/, .api_token), который открывал шлагбаум BAS-IP по кнопке и показывал снимок камеры. Код v1 навсегда сохранён в ветке main; ветка BAS-IP_2 содержит v2.

Что изменилось

Аспект v1 v2
Состав 3 PHP-файла + css полноценное приложение (~180 файлов кода)
Аутентификация .api_token файлом рядом со скриптом (публичный репозиторий!) логины/пароли, роли, 2FA, сессии, API-токены со scopes
Данные нет (всё в браузере) БД MySQL/PostgreSQL/SQLite: жители, оплаты, журнал, аудит
Открытие кнопка «открыть» панель оператора, кабинет жителя, гостевые ссылки/коды, API, CLI, расписания
Журнал только ошибки в лог каждое открытие: кто/когда/тип доступа/результат/снимок
Деньги нет начисления, счета, оплаты, перерасчёт, должники, напоминания
Рассылки нет e-mail/Telegram/SMS/WhatsApp/webhook, очередь, шаблоны
Обновление git pull руками автообновление с бэкапом и откатом
UI одна страница светлая/тёмная тема, mobile-first, админка, кабинет, справка

Совместимость

  • Старые автоматизации продолжают работать: bas_ip.php?cmd=lock_open| status|get_time|get_cameras|reboot|sip_enable|sip_disable форвардится на новый API. Отличие: теперь требуется аутентификация (API-токен/сессия/ IP-allowlist) и каждый вызов пишется в аудит.
  • bas-ip.php (панель v1) → 301 на /panel.
  • get_last_image.php → снимок камеры нового API (с авторизацией).

План перехода

  1. ⚠️ Отзовите токен v1. Файл .api_token лежал в публичном репозитории — считайте ключ скомпрометированным: смените пароль/ключ API панели BAS-IP.
  2. Установите v2 рядом (01 · Установка) — другое расположение или поддомен; v1 не трогает.
  3. Создайте API-токен для существующих автоматизаций: bin/bas-ip api:token --name="legacy" --scopes=gate.open,gate.status,gate.log и передавайте его в старых скриптах (Authorization: Bearer …).
  4. Заполните базу жителей: вручную или импортом из вашей таблицы/Excel (Админка → Данные → Импорт, есть образец CSV).
  5. Настройте устройство (панель та же — basip-драйвер, адрес/логин те же), проверьте gate:test.
  6. Прогоните месяц параллельно: v2 пишет журнал, v1 остаётся как запасной путь; убедитесь, что всё открывается.
  7. Переведите DNS/nginx на v2, выключите v1 (или оставьте bas-ip.php форвардером — он уже часть v2).
  8. Первый платёжный цикл проведите через мастер начисления (08 · Биллинг).

Перенос «истории» из v1

v1 не вёл структурированных данных — переносить нечего, кроме:

  • списка жителей (если вели в Excel/таблице) — через импорт CSV/JSON;
  • журнала ошибок (error_log) — остаётся в архиве v1;
  • токена устройства — отозвать (см. шаг 1).

Обратная совместимость конфигов

Конфиг v1 (config.php с $api_url, $login, $password) не читается v2 намеренно: локальный конфиг v2 создаётся установщиком, а секрет устройства переезжает в шифрованное хранилище (secret:set DEVICE_PASSWORD).


Дальше: 18 · FAQ

Clone this wiki locally