# Lendry ID Super App Tauri v2 приложение для macOS, iOS и Android. Использует тот же React/Tailwind/shadcn UI стиль, что и `apps/frontend`, через Vite alias: ```ts '@': '../apps/frontend' ``` ## Запуск ```bash npm install npm --workspace @lendry/tauri-app run tauri:dev ``` ## Web build ```bash npm --workspace @lendry/tauri-app run build ``` ## Mobile bootstrap ```bash npm --workspace @lendry/tauri-app run android:init npm --workspace @lendry/tauri-app run ios:init ``` После генерации проверьте `src-tauri/mobile-permissions.md` и добавьте camera permissions, если CLI не внёс их автоматически. ## Docker APK build Сборка подписанного release APK через `install.sh` (Docker + Android SDK + release keystore): ```bash ./install.sh --build-apk ``` Или пункт **12** в интерактивном меню `./install.sh`. Готовый файл: ```text apps/frontend/public/downloads/lendry-id.apk ``` Keystore и пароли создаются автоматически при первой сборке и сохраняются в `tauri_app/.secrets/` (не коммитятся в git). После этого кнопка «Скачать приложение» на странице входа скачивает APK через: ```text /download/android ``` Собрать только через Docker-образ (без install.sh): ```bash docker build -f tauri_app/Dockerfile.apk -t lendry-id-tauri-apk-builder . mkdir -p apps/frontend/public/downloads tauri_app/.secrets docker run --rm \ -v "$(pwd)/apps/frontend/public/downloads:/out" \ -v "$(pwd)/tauri_app/.secrets:/workspace/tauri_app/.secrets" \ -e PUBLIC_API_URL=https://sso.example.ru/idp-api \ -e PUBLIC_FRONTEND_URL=https://sso.example.ru \ lendry-id-tauri-apk-builder ``` ## Переменные окружения ```bash VITE_API_URL=https://sso.example.ru/idp-api VITE_FRONTEND_URL=https://sso.example.ru ``` ## Реализованные модули - `Chats`: wrapper существующего web UI `/family`, чтобы не дублировать messenger. - `Security`: QR scanner + approve `/auth/advanced/qr/session/:sessionId/approve`, список сессий и revoke. - `Authenticator`: offline TOTP RFC 6238 с хранением seeds в `tauri-plugin-stronghold`.