1.1.0 β€’ Published 5 months ago

@rubys/fly-explorer v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

Fly.io Explorer

A comprehensive web-based dashboard for managing Fly.io infrastructure using Model Context Protocol (MCP) integration with flyctl. Provides a complete graphical interface for all Fly.io operations without requiring command-line usage.

πŸš€ Features

Organization & Application Management

  • Multi-Organization Support: Switch between organizations and view detailed statistics
  • Complete App Lifecycle: Create, delete, and move applications between organizations
  • Application Monitoring: Real-time status tracking (deployed, suspended, failed)
  • Deployment Management: Deploy applications and track release history

Virtual Machine Management

  • Machine Creation: Advanced machine creation with platform-aware configuration:
    • Regional deployment with automatic region/VM size population
    • Docker image specification
    • Environment variable management
    • Service/port configuration
    • Volume attachment
  • Machine Operations: Complete lifecycle control:
    • Start/Stop/Restart machines
    • Clone machines with optional region changes
    • Cordon/Uncordon for allocation management
    • Destroy machines with force options
  • Detailed Monitoring: Comprehensive machine information including hardware specs, network details, event logs, and health checks

Storage & Configuration Management

  • Volume Management: Create, extend, delete, and monitor persistent volumes
  • Secrets Management: Secure environment variable handling with deployment tracking
  • SSL Certificate Monitoring: View certificate status, expiration, and validity

Real-time Monitoring & Logging

  • Live Log Streaming: Real-time application logs with advanced filtering:
    • Filter by machine, region, or line count
    • Color-coded log levels (error, warn, info, debug)
    • ANSI escape sequence support for formatted output
  • Machine State Tracking: Live updates of machine status and events
  • Platform Status: Monitor Fly.io platform health and available regions

Advanced Administration (MCP Tool Explorer)

  • Universal Tool Access: Execute any flyctl command through an intuitive interface
  • Dynamic Form Generation: Automatically generates forms based on tool schemas
  • Parameter Validation: Type checking and required field validation
  • Raw MCP Access: Direct access to all 54+ flyctl MCP tools for advanced operations

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  React Frontend β”‚    β”‚  Express Server β”‚    β”‚   flyctl MCP    β”‚
β”‚   (Port 3000)   │◄──►│   (Port 3001)   │◄──►│     Server      β”‚
β”‚                 β”‚    β”‚                 β”‚    β”‚                 β”‚
β”‚ β€’ UI Components β”‚    β”‚ β€’ REST API      β”‚    β”‚ β€’ Tool Executionβ”‚
β”‚ β€’ State Mgmt    β”‚    β”‚ β€’ MCP Client    β”‚    β”‚ β€’ Data Parsing  β”‚
β”‚ β€’ Real-time UI  β”‚    β”‚ β€’ Data Transformβ”‚    β”‚ β€’ flyctl Bridge β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Technology Stack

  • Frontend: React with TypeScript, responsive CSS design
  • Backend: Express.js with comprehensive error handling
  • MCP Integration: Full Model Context Protocol client implementation
  • Real-time Updates: Automatic refresh and live status monitoring

πŸ“¦ Installation

Quick Start with npx (Recommended)

Run instantly without installation:

npx @rubys/fly-explorer

This will download and start Fly Explorer automatically. Open your browser to http://localhost:3001

Global Installation

Install globally via npm to use the fly-explorer command anywhere:

npm install -g @rubys/fly-explorer
fly-explorer

Local Installation

Install in your project directory:

npm install @rubys/fly-explorer
npx fly-explorer

Prerequisites

🚦 Development Setup

Quick Start

  1. Clone the repository:
git clone https://github.com/rubys/fly-explorer.git
cd fly-explorer
  1. Install dependencies:
npm install
  1. Ensure flyctl is available:
flyctl version
  1. Start development environment:
npm run dev

This starts:

Production Build

npm run build  # Build React frontend and server
npm start      # Start production server

πŸ“‘ API Reference

Organization Management

  • GET /api/organizations - List all organizations
  • GET /api/organizations/:org - Get organization details
  • POST /api/organizations/:org/apps - Create new application

Application Management

  • GET /api/organizations/:org/apps - List applications
  • DELETE /api/apps/:app - Delete application
  • PUT /api/apps/:app/move - Move app between organizations
  • POST /api/apps/:app/deploy - Deploy application
  • GET /api/apps/:app/status - Get application status
  • GET /api/apps/:app/releases - Get release history

Machine Management

  • GET /api/apps/:app/machines - List machines
  • GET /api/apps/:app/machines/:id - Get machine details
  • POST /api/apps/:app/machines - Create machine
  • DELETE /api/apps/:app/machines/:id - Destroy machine
  • POST /api/apps/:app/machines/:id/start - Start machine
  • POST /api/apps/:app/machines/:id/stop - Stop machine
  • POST /api/apps/:app/machines/:id/restart - Restart machine
  • POST /api/apps/:app/machines/:id/clone - Clone machine
  • POST /api/apps/:app/machines/:id/cordon - Cordon machine
  • POST /api/apps/:app/machines/:id/uncordon - Uncordon machine

Storage & Configuration

  • GET /api/apps/:app/volumes - List volumes
  • POST /api/apps/:app/volumes - Create volume
  • DELETE /api/apps/:app/volumes/:id - Delete volume
  • PUT /api/apps/:app/volumes/:id/extend - Extend volume
  • GET /api/apps/:app/secrets - List secrets
  • POST /api/apps/:app/secrets - Create/update secrets
  • DELETE /api/apps/:app/secrets/:name - Delete secret
  • GET /api/apps/:app/certificates - List SSL certificates

Platform Information

  • GET /api/platform/regions - List available regions
  • GET /api/platform/vm-sizes - List VM sizes and pricing
  • GET /api/platform/status - Platform health status

Monitoring & Logs

  • GET /api/apps/:app/logs - Stream application logs
  • GET /api/tools - List all available MCP tools
  • POST /api/tools/:tool/execute - Execute any MCP tool

🎯 Use Cases

Development Teams

  • Rapid Prototyping: Quickly spin up applications and machines for testing
  • Environment Management: Manage development, staging, and production environments
  • Log Debugging: Real-time log monitoring with advanced filtering
  • Resource Optimization: Monitor and adjust machine sizes and regional deployment

DevOps & Infrastructure

  • Infrastructure as Code: Programmatic machine and volume management
  • Multi-Organization Management: Handle multiple clients or projects
  • Operational Monitoring: Track application health and performance
  • Disaster Recovery: Machine cloning and cross-region deployment

Learning & Exploration

  • Fly.io Onboarding: Visual introduction to Fly.io concepts and capabilities
  • Command Discovery: Explore flyctl functionality through the MCP Tool Explorer
  • Safe Experimentation: GUI-based operations with confirmation prompts

πŸ”§ Advanced Features

MCP Tool Explorer

Access to all flyctl capabilities through a visual interface:

  • Execute any of the 54+ available flyctl tools
  • Dynamic parameter forms with validation
  • Raw access to advanced operations not available in the main UI

Platform Integration

  • Real-time Data: Live synchronization with Fly.io APIs
  • Intelligent Parsing: Automatic handling of various flyctl output formats
  • Error Handling: Comprehensive error messages and recovery suggestions

Safety Features

  • Confirmation Dialogs: Protection against accidental destructive operations
  • Validation: Input validation and type checking throughout
  • Rollback Information: Clear indication of irreversible operations

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes and test thoroughly
  4. Submit a pull request with a clear description

Publishing (Maintainers Only)

To publish a new version to npm:

  1. Update version in package.json:
npm version patch  # or minor/major
  1. Build and publish:
npm run build
npm publish
  1. Push changes and tags:
git push origin main --tags

The package is published as @rubys/fly-explorer on npm.

πŸ“„ License

MIT License - see LICENSE file for details

πŸ”— Related Projects