<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Cradicle Explorer</title>
    <link href="/css/bootstrap/bootstrap.min.css" rel="stylesheet">
    <style>
      .form-control-dark::placeholder {
          color: #aaa;
          opacity: 1;
      }
    </style>
    <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
    <link rel="icon" type="image/png" href="/favicon.png">


                <link href="/css/dashboard.css" rel="stylesheet">
                </head>
                <body>
                <header class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 shadow">
                  <a class="navbar-brand col-md-3 col-lg-2 me-0 px-3 fs-6" href="/">Cradicle Explorer</a>
                  <button class="navbar-toggler position-absolute d-md-none collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                  </button>
                  <form method="get" action="/cgi-bin/main" style="width:100%;"><input class="form-control form-control-dark w-100 rounded-0 border-0" type="text" name="q" placeholder="Search repos" aria-label="Search"></form>
                  <div class="navbar-nav flex-row">
                    <div class="nav-item text-nowrap">
                      <a class="nav-link px-3 active" href="/cgi-bin/repo?id=zmK62sc3Uev8778z317LjeTDGdHs">planor</a>
                    </div>
                  </div>
                </header>
                <div class="container-fluid">
                  <div class="row">
                    <nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-dark sidebar collapse">
                      <div class="position-sticky pt-3 sidebar-sticky">
                        <ul class="nav flex-column">
                          <li class="nav-item">
                            <a class="nav-link active" href="/cgi-bin/repo?id=zmK62sc3Uev8778z317LjeTDGdHs">
                              <i class="align-text-bottom fa-solid fa-info"></i>
                              Info
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zmK62sc3Uev8778z317LjeTDGdHs&issue=list">
                              <i class="align-text-bottom fa-solid fa-layer-group"></i>
                              Issues
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zmK62sc3Uev8778z317LjeTDGdHs&patch=list">
                              <i class="align-text-bottom fa-solid fa-vest-patches"></i>
                              Patches
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zmK62sc3Uev8778z317LjeTDGdHs&wallet=list">
                              <i class="align-text-bottom fa-solid fa-wallet"></i>
                              Wallets
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zmK62sc3Uev8778z317LjeTDGdHs&source=.">
                              <i class="align-text-bottom fa-solid fa-code"></i>
                              Source
                            </a>
                          </li>
                        <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted text-uppercase">
                          <span></span>
                        </h6>
                        <ul class="nav flex-column mb-2">
                        
                        </ul>
                      </div>
                    </nav>
                <main class="col-md-9 ms-sm-auto col-lg-10">
                  <div class="container px-1 py-3">
        

    <div class="list-group">
    <div class="list-group-item">
    <div style="font-size:1.3rem;">planor</div>
    <div class="repo-item">The Cloud Aviator: TUI client for cloud services (AWS, Vultr, Heroku, Render.com, Fleek, ...)</div>
    <div>rad:zmK62sc3Uev8778z317LjeTDGdHs</div>
    </div>
    <div class="list-group-item">
    <div>Visibility</div>
    <div class="repo-item">public</div>
    </div>
    <div class="list-group-item">
    <div>Delegates</div><div class="repo-item">did:key:z6MknQxMPPSjQRZxaKzp7TvkYBTGQAJXXaXCqUmWpQw9EXtD</div>
    </div>
    <div class="list-group-item">
    <div>Default branch</div>
    <div><span class="repo-item">master &#8594 387737aa0a8f8d716866e65feb55d5763f0b3dc7</span> (Thu Aug  1 20:13:22 2024)</div>
    </div>
    <div class="list-group-item">
    <div>Threshold</div>
    <div class="repo-item">1</div>
    </div>
    </div>
    
        <div class="list-group mt-3">
        <div class="list-group-item">
        <div class="mb-2" style="font-weight:bold;"><i class="fa-solid fa-book"></i> README.md</div>
        <pre style="margin:0; font-size:0.85rem; overflow-x:auto; color:#fafafa;">Planor
------
[![license](http://img.shields.io/badge/license-GPLv3-red.svg?style=flat)](https://raw.githubusercontent.com/mrusme/go-fleek/master/LICENSE)

```

                 ===   T H E   C L O U D   A V I A T O R   ===

⠀⠀⠀⠀⠀⠀⠀⠀⢶⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢻⣿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⢿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⣿⣿⣿⣿⣶⣄⠀⠀⠀⠀⠄⠄⠒⠒⠒⠒⠒⠒⠄⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣀⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⢿⣿⣿⣿⣿⣦⣤⣶⡀⠀⠀⠀⠀⠀⠀⢀⣠⡴⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⢿⣷⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣽⣿⣿⣿⣿⣿⣿⣿⣷⣶⣶⣶⣶⠿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠰⣾⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣴⣾⣿⣿⣿⣿⣿⣿⡿⢿⣿⣿⣿⣿⣿⣯⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣿⣿⣿⣿⣟⠛⠀⠀⠀⠀⢀⣀⣤⣶⣾⣿⣿⠿⠿⠛⠛⠉⠉⠉⠀⠀⠀⠀⠈⠉⠛⠿⣿⣿⣿⣿⣷⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣆⣠⣤⣶⣿⠿⠟⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣿⣿⣷⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢹⣿⠿⠿⣿⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⢿⣿⣿⣿⣷⣶⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⢿⣿⣿⣿⣶⣤⣀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠿⣿⣿⣿⣶⣤⣀⠀
/\\\\\\\   /\\         /\\\    /\\\\    /\\     /\\\\     /\\\\\\\  ⠈⠙⠛⠿⣿⣿⣶⣤
\/\\////\\\\/\\       /\\\\\\  \/\\\\\  \/\\    /\\//\\   \/\\///\\\     ⠈⠉⠛⠿⠿⠶
 \/\\  \/\\\\/\\      /\\///\\\ \/\\/\\\ \/\\  /\\/ \///\\ \/\\   \/\\
  \/\\\\\\\/ \/\\     \/\\  \/\\ \/\\//\\ \/\\ /\\     \//\\\/\\\\\\\/
   \/\\////   \/\\     \/\\\\\\\\ \/\\\/ \\\/\\\/\\      \/\\\/\\///\\\
    \/\\       \/\\     \/\\////\\ \/\\ \/\\\/\\\//\\     /\\ \/\\ \// \\
     \/\\       \/\\     \/\\  \/\\ \/\\ \//\\\\\ \///\\ /\\   \/\\  \ /\\
      \/\\       \/\\\\\\\\/\\  \/\\ \/\\  \//\\\\   \///\\\    \/\\  \ /\\
       \//        \/////// \//   \//  \//    \////      \///     \//   \///

```

[![Static 
Badge](https://img.shields.io/badge/Join_on_Matrix-green?style=for-the-badge&amp;logo=element&amp;logoColor=%23ffffff&amp;label=Chat&amp;labelColor=%23333&amp;color=%230DBD8B&amp;link=https%3A%2F%2Fmatrix.to%2F%23%2F%2521PHlbgZTdrhjkCJrfVY%253Amatrix.org)](https://matrix.to/#/%21PHlbgZTdrhjkCJrfVY%3Amatrix.org)

Planor is a text user interface for cloud services. It currently supports the
following cloud service providers and cloud services:

- Amazon Web Services (AWS)
  - [x] Elastic Cloud Compute
  - [x] CodePipeline
  - [x] CloudWatch Logs
- Vultr
  - [x] Cloud Instances
- Heroku
  - [x] Dynos
  - [x] Builds
  - [ ] Logs
- Render.com
  - [x] Services (+ deploys states)
  - [ ] Logs
- Fleek
  - [x] Sites
  - [ ] Logs

---

![Continuous Integration](screen-ci.png)
![Logging](screen-logs.png)


## Installation

Either download a build from the releases page or clone this repository and run:

```sh
go build
```

or

```sh
go install
```

### OpenBSD

Planor is available through the `-current` and `-stable` ports on OpenBSD &gt;=
7.2, as well as via `pkg_add planor` on `-current` and `-stable` &gt; 7.2. 
The package is being maintained by [gonzalo-](https://github.com/gonzalo-)
(see [this issue](https://github.com/mrusme/planor/issues/2)).

For more info on using the anoncvs ports checkout, see
[here](https://www.openbsd.org/anoncvs.html#updating) and
[here](https://www.openbsd.org/faq/ports/guide.html).


## Configuration

Nothing to configure, enjoy!


## Usage

Make sure to have the cloud provider profile configured and upon launching 
planor press r to refresh the data.


### Amazon Web Services

Create ~/.aws/config and add your profile, e.g.:

```ini
[profile captain-baloo]
region = us-east-1
```

Create ~/.aws/credentials and add your profile credentials, e.g.:

```ini
[captain-baloo]
aws_access_key_id = AKXXXXXHDXXXGXXPXXHX
aws_secret_access_key = qWX0Xx0XxxDxxx+0XsqXXLX/XXdXsxxMXxXlxKXv
```

Then run planor and specify the cloud service and profile name:

```sh
planor -c aws -p captain-baloo
```

Library: https://github.com/aws/aws-sdk-go-v2


### Vultr

Run planor and specify the environment variable that holds the Vultr API key as
profile:

```sh
export VULTR_API_KEY=&#x27;...&#x27;
planor -c vultr -p VULTR_API_KEY
```

Library: https://github.com/vultr/govultr


### Heroku

Run planor and specify the environment variable that holds the Heroku API key as
profile:

```sh
export HEROKU_API_KEY=&#x27;...&#x27;
planor -c heroku -p HEROKU_API_KEY
```

Library: https://github.com/heroku/heroku-go


### Render

Run planor and specify the environment variable that holds the Render API key as
profile:

```sh
export RENDER_API_KEY=&#x27;...&#x27;
planor -c render -p RENDER_API_KEY
```

Library: https://github.com/mrusme/go-render


### Fleek

Run planor and specify the environment variable that holds the Fleek API key as
profile, and export the Fleek Team ID as environment variable as well:

```sh
export FLEEK_TEAM_ID=&#x27;my-team&#x27;
export RENDER_API_KEY=&#x27;...&#x27;
planor -c render -p RENDER_API_KEY
```

Library: https://github.com/mrusme/go-fleek



## Navigation

The keyboard navigation:

```
       r: Refresh
     C-p: Previous tab/service
     C-n: Next tab/service
  F1-F12: Switch to tab &lt;nr&gt;
     tab: Switch focus
       k: Move up in list
       j: Move down in list
       g: Move to the beginning of list/text
       G: Move to the end of list/text
       q: Quit
```

</pre>
        </div>
        </div>

</div>
</main>
</div>
</div>


</body>
</html>

