Nodus
Getting Started

Run the mobile app

Build and run the React Native / Expo mobile client.

The mobile client lives in apps/mobile. It is a React Native / Expo app that needs a custom development build — not Expo Go — because it uses mDNS (react-native-zeroconf) and WebRTC (react-native-webrtc), neither of which run in the managed Go client.

Configure it

The Relay URL is entered on first launch and stored in the OS keychain, so one build can connect to any server. You can change it later under Settings → Server; changing it signs you out of the previous server.

Remote servers must use https://. Plain http:// is allowed only for localhost and the Android emulator alias 10.0.2.2.

The only optional environment variable is EXPO_PUBLIC_EAS_PROJECT_ID, used to mint Expo push tokens. Unset disables push registration.

VariablePurpose
EXPO_PUBLIC_EAS_PROJECT_IDEAS project id used to mint Expo push tokens. Unset disables push registration.

Build and run

cd apps/mobile
npm run android      # expo run:android (native build)
npm run ios          # expo run:ios
npm run build        # expo export --platform android

Development, preview, and production build profiles are defined in eas.json.

The Android release build currently signs with the debug keystore in android/app/build.gradle. Configure a real keystore before shipping.

Permissions

The app requests Android INTERNET, Wi-Fi/multicast permissions for mDNS discovery, and POST_NOTIFICATIONS. On iOS it declares NSLocalNetworkUsageDescription, the _nodus._tcp Bonjour service, and local networking in App Transport Security. See Mobile permissions for the full rationale.

Next step

Install and build the mobile app has the full guide.

On this page