Projects

Three apps. Same architecture. Different superpowers.

Pockr

Pockr

Merged into Linxr

Standalone Pockr app is deprecated. All Docker container management capabilities, container dashboards, and log streaming have been natively merged into Linxr under the Containers tab.

  • Pull & run any Docker image
  • Real-time container logs
  • Terminal into the Alpine VM host
  • Configurable vCPU + RAM (1–4 cores, 512 MB–4 GB)
Zyvr

Zyvr

Asterisk PBX on Android

Zero-carrier Your Voice Router. A full Asterisk 20 PBX running on your phone. Manage SIP extensions, monitor live calls, and route calls — carrier-independent.

  • Asterisk 20 with PJSIP driver
  • SIP extension management (create, delete, list)
  • Live call monitor + hangup
  • WebRTC/SIP.js support via WSS on 8089

How it works

Every app uses the same layered stack — QEMU gives the Linux VM, Alpine gives the environment, the app gives the UI.

Flutter UI (Dart)
Native Android UI — tabs, logs, terminal, settings
Kotlin VmManager
Launches libqemu.so via JNI, manages ForegroundService lifecycle
QEMU (libqemu.so)
Compiled as .so shipped inside the APK. Runs as a normal app process — no root.
Alpine Linux VM
Boots from a bundled QCOW2 asset. SLIRP networking, persistent overlay, OpenRC init.
Your workload
Docker daemon · Asterisk PBX · bash shell — whatever runs on Linux

SLIRP port mappings

PortProtocolServiceApp
7080TCPFastAPI control serverAll
2222TCPOpenSSHLinxr
5060TCP/UDPSIPZyvr
5038TCPAsterisk AMIZyvr
8088/8089TCPARI / WebSocket (WSS)Zyvr
10000–10019UDPRTP mediaZyvr

Requirements

📱
Android 8.0+
API level 26 or higher
⚙️
ARM64 only
arm64-v8a architecture required
💾
~250 MB storage
For the APK + VM image
🔓
No root needed
QEMU runs as a normal app process