2026-05-20 psychologist-app: обновить деплой F-Droid через fdroidserver

This commit is contained in:
Alexey Martemyanov
2026-05-20 14:57:48 +06:00
parent da966e579e
commit d9bbc12edf
@@ -23,6 +23,24 @@ tags:
| CF Tunnel | mbp black (same as zulip.qentra.top), hostname reflect → localhost:8766 |
| CF Token (Zone:DNS) | `cfat_iKrPBaTAqlL8Zo7Ss4EHaiGqRGxBK4RDVX78jhgD51fdd7a1` |
| Сервер | `python3 ~/Developer/reflect-skip/scripts/fdroid-server.py` (LaunchAgent: com.reflect.fdroid-server) |
| Workspace | `~/Developer/reflect-skip/fdroid-workspace/` — подписанный репо, генерируется `fdroid update` |
### Как устроен деплой
Репо генерируется через **fdroidserver** (`pip3 install fdroidserver`), а не вручную.
HTTP-сервер (`fdroid-server.py`) раздаёт содержимое `fdroid-workspace/repo/` — там лежат подписанные `index-v1.jar`, `entry.jar`, `index-v2.json`.
Ключевые файлы workspace:
```
fdroid-workspace/
├── config.yml ← repo_url, keystore, имя репо
├── keystore.p12 ← подписывающий ключ (не коммитить)
└── repo/ ← раздаётся HTTP-сервером
├── index-v1.jar ← подписанный JAR (Droid-ify требует его)
├── entry.jar ← новый формат entry point
├── index-v2.json
└── reflect-app-debug.apk
```
### Сборка и публикация APK
@@ -36,10 +54,36 @@ bash scripts/build-and-publish.sh
bash scripts/build-and-publish.sh --quick
```
`build-and-publish.sh` вызывает `generate-index.sh`, который:
1. Копирует APK в `fdroid-workspace/repo/`
2. Запускает `fdroid update -c` (JAVA_HOME=/opt/homebrew/opt/openjdk@21)
3. Генерирует подписанные JAR и JSON индексы
### Первоначальная настройка (один раз)
```bash
cd ~/Developer/reflect-skip/fdroid-workspace
# Удалить старый keystore если есть, создать новый
keytool -genkey -v \
-keystore keystore.p12 -storetype PKCS12 \
-alias fdroid -storepass reflect123 -keypass reflect123 \
-keyalg RSA -keysize 2048 -validity 10000 \
-dname "CN=Reflect App, O=Dev, C=US"
# Сгенерировать репо
ANDROID_HOME=~/Library/Android/sdk \
JAVA_HOME=/opt/homebrew/opt/openjdk@21 \
PATH="/opt/homebrew/opt/openjdk@21/bin:$PATH" \
fdroid update -c
```
### Добавить репо в Droid-ify
Settings → Repositories → **+** → `https://reflect.qentra.top`
> ⚠️ URL без `/repo` — сервер уже раздаёт содержимое `fdroid-workspace/repo/` напрямую с корня.
---
## Статус (2026-05-19)