Skip to content

Mobile app

Vesana has an Android app for on the go. iOS is currently unavailable.

Install

The APK lives at /downloads of the Vesana instance. Users:

  1. Open browser on mobile, https://your-domain.tld/downloads
  2. Download APK (vesana.apk, ~30 MB)
  3. Allow install from unknown source (Android system setting)
  4. Open APK, install

Alternative: distribute via MDM (Intune, MobileIron, etc.) — APK is in the bundle.

Server pairing

On first start:

  1. Enter server URL (https://your-domain.tld)
  2. Email + password + 2FA code (if active)

Token stored in AsyncStorage. On logout: token gone.

Screens

Screen What you do there
Dashboard Status summary + tenant overview
Hosts List by tenant, search, status sort
Host detail Service status, ACK, quick downtime, bottom sheet for actions
Problems Error overview with filter (tenant, status), ACK/DT toggles
Notifications Local push history, unread badge
Downtimes Active downtimes, new via modal with host search
Settings Theme (dark/light), language (DE/EN), disconnect server
Profile User info, role, permissions, logout

Push notifications

Prerequisite: Firebase configured. See Push notifications.

When active:

  • Per registered device: token in push_tokens table
  • Severity filter per channel
  • User targeting possible (channel sends only to selected users)
  • Tap on notification → deep link to host detail
  • Local store: max 100 notifications in AsyncStorage

App registers for vesana:// deep links and the server domain.

Examples:

URL Effect
vesana://hosts/<id> Host detail
vesana://problems Problem list
https://your-domain.tld/hosts/<id> when mobile app installed: open in app, otherwise browser

On push tap, the app uses host_id from the notification payload.

Dark / light

20 themes synced with web app. Theme switch per user in app settings — pulled from server as user pref on login.

Offline behavior

App caches the last view. On lost connection:

  • Dashboard shows last known data
  • Pull-to-refresh retries
  • Notifications still arrive (FCM is independent)
  • ACK / downtime can be tapped offline, sync on reconnect

Logout vs. disconnect

Action Effect
Logout Token gone, server stays configured
Disconnect server Token gone + server URL gone

Logout for quick user switch. Disconnect for demo switch or MDM reset.

Update the app

The app doesn't auto-update (no Play Store distribution). Update path:

  1. Pull new APK from /downloads
  2. Install over the existing one

Data persists.

Privacy

App sends:

  • Push token (to server, stored with user binding)
  • Own login + password + 2FA to server

App does not send:

  • Data to third parties
  • Contact list
  • Location

Next