Implements all missing shortcodes for ummah.falahos.my:
- [prayer_times] — Aladhan API, no auth required
- [dhikr_counter] — localStorage-backed, works offline
- [qibla_compass] — browser Geolocation + DeviceOrientation
- [daily_verse] — AlQuran.cloud API, no auth required
- [nur_ai_chat], [falah_wallet], [souq_marketplace] — iframe Falah Mobile
- [falah_dashboard] — auto-injects dashboard content into empty page
Also adds deploy-falah-mobile.sh to build and run the Next.js app on
13.140.161.244:4013, and Nginx reverse proxy config for falahos.my/mobile.
- iStore service (port 3021): fetches app manifests from git.falahos.my/falahos
org via Gitea API, 5-min cache, query/search support
- UmmahID login: replaced stub form with Casdoor OAuth2 PKCE flow (RFC 7636),
no client secret required; /api/auth/config and /api/auth/token endpoints
added to server.cjs
- App Manager service (port 3022): installs/uninstalls Docker apps via
/var/run/docker.sock, pulls images, starts containers on falah-net,
persists state to /data/installed.json
- docker-compose.yml: orchestrates falah-app + istore + app-manager with
health checks, named volumes, and shared falah-net network
- install.sh: one-line curl installer — checks prereqs, clones repo,
prompts for credentials, builds and starts all containers
- .env.example: all env vars documented (CASDOOR_CLIENT_ID, GITEA_TOKEN,
APP_MANAGER_PORT, etc.)
- Frontend: IStore overlay now fetches live apps from Gitea, real
install/uninstall via App Manager with 2s polling, indeterminate
progress bar, Uninstall button for installed apps
- app.yml.example: developer manifest spec for publishing to iStore