# iOS Build Server FastAPI + Vue 3 iOS app auto-packaging service. Supports Ad_Hoc and App_Store builds with web UI, real-time logs, multi-user auth, and health monitoring. ## Tech Stack - **Backend**: Python 3.9+, FastAPI, SQLAlchemy (SQLite), JWT auth - **Frontend**: Vue 3, Vite, Vue Router - **Tests**: pytest (backend), vitest (frontend) - **Deploy**: macOS launchd, deploy.sh management script ## Key Commands ```bash ./start.sh # Dev mode (backend + frontend hot reload) ./deploy.sh build # Install deps + build frontend ./deploy.sh start/stop/restart/status ./deploy.sh test # Run all tests (backend + frontend) ``` ## Architecture - `backend/routers/` — API routes: auth, users, config, apps, tasks - `backend/services/` — build_service (packaging), build_queue (async queue), log_streamer (WebSocket) - `backend/deps.py` — JWT auth dependency used by all protected routes - `backend/config.py` — loads .env, defines all config constants - `frontend/src/views/` — BuildView, HistoryView, ConfigView - `config.json` — runtime config (apps, schemes, servers, upload, branches) managed via web UI ## Conventions - All backend routes require JWT auth except `/api/auth/login` and `/api/health` - Admin-only routes: user management (`/api/users/*`) - Config stored in `config.json` (apps/schemes/servers), `.env` (infra), SQLite `build_config` table (build settings) - Chinese UI and documentation throughout