--- tags: - personal-os - database - runbook --- # Браузер БД Personal OS Локальный интерфейс для просмотра данных Personal OS на `http://127.0.0.1:4317`. ## Источник данных По умолчанию браузер использует PostgreSQL из корневого `config.json`: база `personal_os` на `localhost:5432`. Таблицы E1 находятся в этой же базе. Переменная `E1_COVERAGE_DATABASE_URL` подключает отдельную базу только для тестирования; для обычного просмотра её не задавать. Все подключения браузера используют PostgreSQL `default_transaction_read_only=on`. Сам интерфейс слушает только loopback-адрес `127.0.0.1`. ## Запуск Из корня репозитория: ```sh env -u E1_COVERAGE_DATABASE_URL npm run db:browser ``` Открыть `http://127.0.0.1:4317`. Для постоянной работы после входа установлен LaunchAgent `com.personalos.db-browser`: он запускается при входе, удаляет `E1_COVERAGE_DATABASE_URL` и перезапускает браузер после неуспешного завершения. Статус: `launchctl print gui/$(id -u)/com.personalos.db-browser`. Остановить и выгрузить: `launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.personalos.db-browser.plist`. Исходный plist находится в `scripts/com.personalos.db-browser.plist`. Проверить доступность интерфейса и источников: ```sh curl -fsS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:4317/ curl -fsS http://127.0.0.1:4317/api/bootstrap ``` В bootstrap ожидаются `sources.e1=true` и `read_only=true`. Если соединение не устанавливается, проверить PostgreSQL на `localhost:5432`, поле `database` в `config.json` и отсутствие старого `E1_COVERAGE_DATABASE_URL`. ## Ссылки Исходники и подробности интерфейса: `web/db-browser/` и `web/db-browser/README.md` в репозитории personal-os.