Files
sub2api-mobile/README.md

2.5 KiB

sub2api-mobile

Mobile-first admin console for Sub2API operations, built with Expo + React Native + Expo Router.

sub2api-mobile logo

Mobile Preview

Mobile Preview

Highlights

  • Cross-platform app (iOS / Android / Web) for operational and admin workflows.
  • Server health and metrics monitoring views.
  • User, API key, account, and group management pages.
  • Built-in local admin proxy (server/index.js) for safer web-side admin integration.
  • Multi-account admin server switching in settings.

Tech Stack

  • Expo SDK 54
  • React Native 0.81
  • React 19
  • Expo Router
  • TanStack Query
  • Valtio
  • Express (local proxy)

Prerequisites

  • Node.js 20+
  • npm 10+

Getting Started

Install dependencies:

npm ci

Run locally:

npm run start

Common targets:

npm run android
npm run ios
npm run web

Local Admin Proxy (Web-Friendly)

For web usage with admin APIs, start the local proxy with environment variables:

SUB2API_BASE_URL="https://your-upstream-host.example.com" \
SUB2API_ADMIN_API_KEY="admin-xxxx" \
ALLOW_ORIGIN="http://localhost:8081" \
npm run proxy

Then point the app Base URL to:

http://localhost:8787

See full details in docs/LOCAL_PROXY_SETUP.md.

Build & Release

EAS scripts:

npm run eas:build:development
npm run eas:build:preview
npm run eas:build:production

OTA update scripts:

npm run eas:update:preview -- "your message"
npm run eas:update:production -- "your message"

Additional release notes: docs/EXPO_RELEASE.md

Project Structure

app/                 Expo Router routes/screens
src/components/      Reusable UI components
src/services/        Admin API request layer
src/store/           Global config/account state (Valtio)
src/lib/             Utilities, query client, fetch helpers
docs/                Operational and release documentation
server/              Local Express proxy for admin APIs

Security Notes

  • Web builds are intentionally configured to avoid persistent storage of adminApiKey.
  • Native platforms continue to use secure storage semantics.
  • For responsible disclosure, see SECURITY.md.

Contributing

Please read CONTRIBUTING.md and CODE_OF_CONDUCT.md.

License

This project is licensed under the MIT License. See LICENSE.