Files
IdP/tauri_app/README.md
2026-07-02 16:19:06 +03:00

80 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`.