πͺ flyradar π is a terminal UI for managing and monitoring your Fly.io resources, inspired by k9s. It provides an intuitive, keyboard-driven interface to interact with your Fly.io apps, and moreβall from your terminal.
Quickstart
[!NOTE]
flyradar is an OSS third-party tool and is not an official Fly.io project.
[!IMPORTANT]
flyradar relies on the Fly CLI for authentication and its built-in agent for operational functionality. Make sure you have flyctl installed on your system before proceeding.
Install flyradar with cargo:
[!NOTE]
See the other installation methods π¦
Make sure you are authenticated into fly:
Just run flyradar:
Features
- π» Interactive terminal UI for managing Fly.io resources
- π Real-time monitoring of your applications and other resources
- π Quick access to resource logs with filtering and dumping capabilities
- π― Focused on operational workflows (viewing, monitoring, deleting, logging) for existing resources
- Creation workflows are intentionally left to the Fly CLI, as they tend to be more complex and change more frequently
- Operational workflows have more stable interfaces and are naturally well-suited for a terminal UI
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Guidelines
- This project follows Conventional Commits for all commit messages (e.g.,
feat(logs): add dumping logs,fix(tui): fix tab completion for command input) - Before submitting a PR, please run:
cargo fmtto ensure consistent code formattingcargo clippyto catch common mistakes and improve code qualitycargo testto verify your changes don't break existing functionality
Project Structure
This project implements parts of several components from flyctl in Rust, with a focus on maintaining equivalent functionality:
src/agentβ flyctl/agent (client-side only)src/logsβ flyctl/logssrc/opsβ flyctl/internal/commandsrc/wireguardβ flyctl/internal/wireguard/wg.gosrc/fly_rustβ fly-go
[!NOTE]
Only the necessary functionality from these components are implemented while aiming to maintain the same behavior and interfaces where possible.
This project uses a patched version of the async-nats crate to enable IPC communication with the Fly agent. You can find the fork here.
License
This project is licensed under the MIT License - see the LICENSE file for details.