u/PocketSized-Apps

PocketMesh — a native Android client for MeshCentral

(posted with Mod Approval)

I got tired of trying to use MeshCentral on my phones browser every time I needed to check on a machine when out and about, so I built PocketMesh. It's a native Android (Kotlin/Jetpack Compose) app that talks straight to your MeshCentral server's WebSocket connection using the same authentication mechanism meshctrl.js uses. Multiple server support and I automatically generate a login token when you sign in to handle further auth needs. If your server doesn't support login tokens, you can also feed it an OTP seed and have it generate the OTP code automatically OR just enter in the OTP code in each time. All credentials are encrypted with Android Keystore and the app even has an optional biometric lock.

PocketMesh works by "translating"/implmenting parts of MeshCentral's own protocols natively in Kotlin. Of note, meshuser.js and meshrelay.js make up ~75% of what I "translated". And of course, meshcore.js was vital in understanding how clients works. There's like a dozen other specific files that helped with specific functions (like win-terminal.js, what a mess the windows terminal is, I went through like 20 rounds of bug fixes in my app and I still have bugs there).

I been building it for some time for my own personal use, then (we use MC at work also) I added features my work needed, and finally I'm in a spot that I can share it with the world. To be fair, it only covers the stuff I (and my coworkers) actually use day to day. Partial list of features include listing devices with online/offline status, wake/sleep/restart/shutdown/etc, desktop, terminal, files, and events. There's also a hardware details screen with software and network info, as well as the power state chart, and more. App has backup/restore for your saved server list (but no backup of token info, as it's locked to the device it's entered on by design).

I care deeply by security. PocketMesh has been through Android Studio's linter as well as MobSF, and a few other tools (like burpsuite, work required it). PocketMesh communicates ONLY to the MeshCentral servers you connect to and GitHub. The GitHub connection is to check the release tags (every 12 hours), then compare against the locally installed version for update notification. No data is sent to GitHub, it does that comparison locally after it pulls the current version number. There are no analytics or even crash reporting in the app.

It still has some gaps I'm actively building, like no chat (this is #1 for me right now), recording management, push notifications on state changes, etc, but it's been solid for what I need and think you'll find it helpful. Happy to answer questions or hear what's missing if anyone gives it a spin. I have a full demo video, screenshots, downloads, etc on the website https://mesh.pocketsized.app/

reddit.com
u/PocketSized-Apps — 10 days ago

A REST API for Kuma Monitors

We use Uptime Kuma at work fairly extensively - we have a couple hundred instances. Managing them by hand is a pain. We’ve used https://github.com/MedAziz11/Uptime-Kuma-Web-API back when we ran v1, but it’s got some issues with v2, so much so that we’ve had to resort to database edits. There’s open PRs for over a year so I ended up writing my own REST API wrapper and now I'm sharing it with the world.

It's free and has no cloud anything associated with it. You can direct download it here: https://hub.docker.com/r/pocketsized/kumarestapi or you can visit the website https://kumarestapi.pocketsized.app/ for more info.

One of the challenges we ran into with MedAziz11’s version is when you have MFA enabled. This has a small TOTP generator, so if you feed it the OTP seed, it can generate and satisfy the MFA requirement.

Hope to helps someone

reddit.com
u/PocketSized-Apps — 24 days ago

PocketKuma - an Android client for Uptime Kuma

As a long time user of UK, I've been missing a Android client for years. We use UK at work and my coworkers with iPhones all recommended Uptime Kuma Manager - but the Android version doesn't support servers with 2FA. So I sat down and wrote my own client (after evaluating Uptiminger, KumaAlert*, and OpenKuma) and now I'm sharing it with the world.

It's free and has no cloud relay / cloud services associated with it. You can direct download it here: https://github.com/pocketsized-apps/pocketkuma/releases/tag/Production or you visit the website https://kuma.pocketsized.app/ to see videos, screenshots, and more.

Happy to answer any questions you have.

reddit.com
u/PocketSized-Apps — 28 days ago