CLI / oroc push distributor

oroc push distributor

Build or install Oro Push Dev, the Kotlin Android UnifiedPush development distributor.

On Linux, '--platform=linux' runs a native Distributor2 service instead of building an APK. It needs a session D-Bus, an unlocked Secret Service and an ntfy-compatible server. It runs until interrupted; it does not install or enable a login service. No Node.js, Gradle or Android SDK is required by this Linux distributor command.

Linux transport uses bounded polling every two seconds, reconnects with two-to-thirty second delays and retains ciphertext in an OS-key-encrypted journal. Limits are 32 registrations, 32 pending messages of at most 4096 bytes, 1024 boundary-second deduplication IDs and seven days of pending retention. The encrypted journal has a 256 KiB aggregate limit. Storage or deduplication-window saturation pauses intake. An acknowledged connector message means durable local receipt, not completed application work.

Linux HTTPS uses system trust, or only the explicitly supplied PEM CA database with '--ca-cert'. Redirects are rejected. '--allow-loopback-http' permits literal loopback addresses only; it never permits LAN HTTP or DNS names. Apps must separately opt into '[push] development_allow_loopback_http = true' to accept these development endpoints. Use HTTPS for phone distributors. Neither anonymous topics nor this local transport establish trusted enrollment, server authentication or remote revocation.

Usage#

oroc push distributor [options]

Options#

Option Description
--platform=<android|linux> Android APK build (default), or Linux service
--allow-loopback-http Linux only: allow literal loopback HTTP
--android-home=<path> Android SDK (defaults to ANDROID_HOME or ANDROID_SDK_ROOT)
--gradle-home=<path> Gradle 9 installation (defaults to GRADLE_HOME)
--java-home=<path> JDK installation (defaults to JAVA_HOME)
--data-dir=<path> writable build state and persistent development signing key
--output=<path> APK destination (default: data directory/oro-push-dev.apk)
--server=<origin> prefill an HTTPS server in the app; user taps Save and start
--ca-cert=<path> embed a development PEM CA, trusted only by this APK
--offline build with cached Gradle/Android dependencies only
--install install APK and open its settings on the selected device
--device=<serial> explicit adb serial for installation (or ANDROID_SERIAL)
-h, --help show help

Notes#

Requires Node.js 22+, JDK 17+, Gradle 9, an installed Android platform 34 or newer, and build tools.

Run 'oroc setup --platform=android' to provision the normal Android toolchain first.

Uses the runtime's Android Gradle plugin with built-in Kotlin support. First build may download Android/Kotlin dependencies; --offline requires those dependencies to be cached.

A debug signing key is retained outside the SDK so updates preserve the app's state.

Oro Push Dev is a separate sideloaded development APK. Your app still registers its native push handler.

It connects to 'push server' or an ntfy-compatible HTTPS server and implements UnifiedPush registration, selection, unregistration and acknowledged delivery. Existing ntfy distributors continue to work with the same server and oro:push APIs; apps choose one distributor.

The user must enable its visible foreground connection in its settings. Optional CA trust is confined to this APK; hostname verification and Oro's HTTPS endpoint requirement remain.

Limits: 32 registrations, 256 pending ciphertexts (4096 bytes each), 512 recent ACK identities.

Unacknowledged ciphertext persists across process loss; a full inbox pauses further intake.

Reboot resumes an enabled service when Android permits it. Force-stop requires reopening it.

Doze, network reachability and Android background policy still require device qualification.

This is for public development data, not production server authentication or trusted enrollment.

Examples#

oroc push distributor --platform=linux --server=http://127.0.0.1:8787 --allow-loopback-http

run alongside a local 'push server'

oroc push distributor --offline

build from the cached Android/Kotlin toolchain

oroc push distributor --server=https://push.dev.example:8787 --ca-cert=./dev-ca.pem --install --device=emulator-5554

build, install, then review and start Oro Push Dev

Source repository · Edit this page · View Markdown

Quick links

Type to search across the site. Use the up and down arrow keys to choose a result, Enter to open it, and Escape to close.