Web app

Serve the flockr app to a browser from your own server, connected through the mobile gateway.

Coming in 1.2.0. This feature is not in the current release (1.1.0). It ships in flockr 1.2.0.

The web app is the phone app built for a browser. Your flockr server can serve its files over plain HTTP on your own network, like other local web UIs. The app then connects to the [mobile] gateway, the same way the phone does.

Build the app

The app's source is in the flockr-mobile repository. Build the web version there:

git clone https://github.com/flockr-sh/flockr-mobile
cd flockr-mobile
npm install
npm run export:web

The build goes to the repository's dist folder.

Serve it

The web app connects to the mobile gateway, so enable both [mobile] and [web]:

[mobile]
enabled = true
listen = ["100.92.14.3"]

[web]
enabled = true
listen = ["100.92.14.3"]
# port = 47393
dir = "/path/to/flockr-mobile/dist"

Restart the flockr server. All [web] keys need a server restart.

KeyDefaultMeaning
enabledfalseServe the web app.
listen[]IP addresses to bind, for example ["100.92.14.3"]. 0.0.0.0 and :: are rejected.
port47393Port to serve on.
dir""The app's dist folder. Nothing is served without it.

Then open http://100.92.14.3:47393 (your listen address and port) in a browser.

Pair the browser

Run flockr mobile pair and paste the flockr://pair link into the app. Pairing works the same as on the phone; see Pair your phone.

Plain HTTP and encryption

The [web] server only hands out the app's static files. It answers GET and HEAD requests and nothing else. Your agents' data does not pass through it. The app connects to the mobile gateway, where every message is end-to-end encrypted with Noise and pinned to the server key from pairing.

In a browser, the app keeps its device token in the browser's local storage. On the iPhone it uses the Keychain. Revoke a browser like a phone, with flockr mobile devices revoke <device_id>.

Last updated November 3, 2026