Hi everyone! I made a mobile app for Fly.io, “FlyScoop”. I’d certainly love general feedback and ideas, and am working to open it up for testing right now. Here are some screenshots:
Alpha app ahead. Although it does not perform any mutable operations, you should not use this in production.
The app needs a Fly.io access token. This token is stored in ios/android secure storage, and only exchanged with fly.io https services. It is not and will never be shared with me. Only proceed if you trust this statement.
App detail
When an app is running in a backup region, it is not shown correctly in the per-region cards.
Feedback & reporting issues
Please report issues and ideas here! I am sure there is a lot to improve. You can also use the TestFlight “send feedback” feature to share any issues with a screenshot. I’ll try to keep the previous section up to date with known issues.
Current Features
Here’s what it can do right now:
List apps (multi-organization aware - switch orgs in top nav)
Drill down into app
See current release version & date
See basic metrics
See list of active regions & health status
View/follow app logs
View deployments
Pull-to-refresh (in any view where it makes sense)
Reset app (wipe local data and start over)
And here’s what I’d like to do next:
(Get everything above solid - no doubt have plenty of bugs)
Scale operations (count and/or instance type, like flyctl scale)
Rollback deployments (pick a previous release & re-deploy it)
Regional drill-down (show only region-specific state, logs, etc)
Show additional metrics
Bookmark custom promql queries
Changelog
2022-02-17 — First TestFlight release
Appendix: Why an app?
I guess the easiest answer is, because I wanted to!
I’ve worked extensively in AWS, Heroku, and GCP, and often longed for a simple “on-the-go” mobile app for infra, for those situations when you’re away from the power tools (cli & desktop dashboard). Along came fly with great API support to make it all possible! My goal is to cover the 80-90th percentile of monitoring & light management use cases — “what just happened” usage, quick scales/restarts, that sort of thing.
“Can’t the web/cli already do this”, well yes certainly. I believe there are some good reasons a mobile app can nicely complement those tools:
Persistence of login. While the web dashboard of Fly is great, there are good reasons for it to re-authenticate you every so often. Conversely, apps (and their platform-enforced sandboxing) are great environments for keeping longer-lived access credentials. When I’m on-the-go and want to see what’s going on right now, jumping through a login flow is often an irritating hurdle.
Clutter & distraction free. In a web browser, the dashboard will be sharing space with whatever other tabs and windows are open. I like having something that always opens up to “just” the infra. This is most pronounced when I’m coming back to dashboard; even if I’m still logged in, I probably have to hunt my way through whatever other tabs are open on my mobile browser.
Native UI polish. Not going to make a big case here, but I think there’s a wide range of stuff that can work better and/or more pleasantly with native UIs and controls. (I’m certainly not there yet :))
They say if you aren’t embarrassed by your first launch, you’ve waited too long. In that spirit, iOS users can now give FlyScoop a try: I’ve updated the original post here with a link to the TestFlight & some usage notes. Please shout with issues and feedback. enjoy!
Thanks! It’s built in React Native, using a material UI library for the major view components. Opinions out there vary, but I’ve found react-native to be more than adequate for basic “forms and views” type of apps.
Ah, thanks for the feedback Zane! Glad you checked it out. I hadn’t thought much about speed while building, but I’m glad that stands out.
Pro tip, on the logs view, long press on a log line to copy it. (Will make this more discoverable.)
Yes, I will get more metrics in there, I’ll try to match the existing set shown in the dashboard.
Adding a tiny bit of extra information to the screen where you provide an API key would be good - I had to remember where in the Fly interface that was, a reminder would have been nice.
Ah, nope, didn’t miss that! Looks like I missed a few of the zillion steps in the Play console required before you can create a testing release. I’ll get that finished off in the next day or so (or at worst, post an apk).
Non-update update: Release on android is stalled in a Google Play review. In the meantime, I do have a build available. If you’re comfortable sideloading an apk, drop me a DM and I’ll get one over to you - @mik3y on twitter.