Lendry ID Super App
Tauri v2 приложение для macOS, iOS и Android. Использует тот же React/Tailwind/shadcn UI стиль, что и apps/frontend, через Vite alias:
'@': '../apps/frontend'
Запуск
npm install
npm --workspace @lendry/tauri-app run tauri:dev
Web build
npm --workspace @lendry/tauri-app run build
Mobile bootstrap
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):
./install.sh --build-apk
Или пункт 12 в интерактивном меню ./install.sh.
Готовый файл:
apps/frontend/public/downloads/lendry-id.apk
Keystore и пароли создаются автоматически при первой сборке и сохраняются в tauri_app/.secrets/ (не коммитятся в git).
После этого кнопка «Скачать приложение» на странице входа скачивает APK через:
/download/android
Собрать только через Docker-образ (без install.sh):
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
Переменные окружения
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.