sets default admin creds in docker compose. first pass remote builder feature

This commit is contained in:
2026-07-04 18:40:29 +00:00
parent 78dde4fd0a
commit 7a04fa7c84
17 changed files with 1489 additions and 6 deletions
+39
View File
@@ -50,6 +50,45 @@ Nginx access logs → shared volume → FastAPI log parser → PostgreSQL → ad
**Injecting test data:** Run `backend/inject_test_logs.py` (or the inline docker compose command in README.md) to write test log entries for yesterday, then trigger parsing via `GET /api/parse`.
### Admin dashboard — mobile build orchestration (implemented)
Admin users can create mobile build requests, upload platform signing files, run preflight checks, trigger remote builds, monitor logs/status, and download generated artifacts.
**High-level flow:**
1. Admin creates a build request (platforms, identifiers, version/build numbers, release profile).
2. Admin uploads exactly two files per selected platform:
- Android: keystore + descriptor JSON
- iOS: `.p12` certificate + `.mobileprovision` profile
3. Backend preflight validates request completeness, file presence, platform requirements, and basic iOS CarPlay entitlement marker.
4. Backend dispatches build via SSH to external build workers:
- Android worker runs `./do_android_build.sh`
- iOS worker runs `./do_ios_build.sh`
5. Backend copies generated `.aab`/`.ipa` artifacts back, stores metadata/checksums, and exposes admin download URLs.
**SSH contract (current implementation):**
- Connect as user `buildbot` (password-auth expected in the build-control environment).
- Remote app directory is `~/mobile_app`.
- Uploaded signing files are copied into `~/mobile_app` before script execution.
- Build scripts are executed from `~/mobile_app`.
**Key backend files:**
- [backend/app/api/mobile_builds.py](backend/app/api/mobile_builds.py) — mobile build endpoints, preflight, SSH execution, artifact collection
- [backend/app/models.py](backend/app/models.py) — `MobileBuildRequest`, `MobileBuildUploadedFile`, `MobileBuildArtifact`
- [backend/app/schemas.py](backend/app/schemas.py) — mobile build request/response schemas
- [backend/app/config.py](backend/app/config.py) — `KMTN_MOBILE_BUILD_*` settings (hosts, scripts, paths)
- [backend/app/main.py](backend/app/main.py) — router registration at `/api/mobile-builds`
**Key frontend files:**
- [src/app/admin/admin.component.ts](src/app/admin/admin.component.ts) — mobile build tab state/actions
- [src/app/admin/admin.component.html](src/app/admin/admin.component.html) — upload/preflight/trigger/logs/download UI
- [src/app/admin/admin.component.scss](src/app/admin/admin.component.scss) — mobile build panel styling
- [src/app/services/mobile-build.service.ts](src/app/services/mobile-build.service.ts) — API client for mobile build endpoints
- [src/app/interfaces/mobile-build.ts](src/app/interfaces/mobile-build.ts) — frontend build models
**Current scope:**
- Build artifact generation only (`.aab` and `.ipa`).
- No automatic App Store Connect / Google Play upload.
## Common tasks
- **Re-skin:** Edit colors in `_variables.scss` only.