jckuester / awsls

A list command for AWS resources
MIT License
838 stars 54 forks source link

Serve the app as a containerized WebServer (GUI) #49

Open unfor19 opened 2 years ago

unfor19 commented 2 years ago

First of all, this project is amazing!

@jckuester I'm thinking of forking this project and adding a GUI to make it easier for end-users (DevOps engineers) to use the app.

The way I imagine it

  1. Start the container app
    • Bind mount ~/.awsls/data/:/home/awsls/data/ to retain results on the host machine to reduce queries to AWS (cache)
    • Bind mount to get credentials from the profile Or pass AWS keys with -e AWS_ACCESS_KEY_ID and -e AWS_SECRET_ACCESS_KEY
      docker run -p 8080:8080 -v ~/.awsls/data/:/home/awsls/data/  -v ~/.aws:/home/awsls/.aws jckuester/awsls-webserver
      # Running on http://localhost:8080
  2. Open the browser at http://localhost:8080
    1. Frontend SPA > Select region(s) and Filter by tag(s) and values (or any other option)
    2. Backend server > queries AWS resources and saves the results in ~/data/
    3. Frontend SPA > End-user can view results in a simple GUI, which also allows exporting to CSV/JSON/etc.

This can even get crazier, as it can run as a WebServer in AWS, so the doesn't even have to run locally (we'll get to that 😉)

What do you think? Is this something that you would use? Should I go for it?

jckuester commented 2 years ago

Hi @unfor19,

sorry for my later reply (currently busy with other projects).

I think, generally, awsls is intended to help command line users. But a GUI would probably not hurt - if the community would like it or use it needs to be tested out. You can definitely go for it if you like and I could support it by linking it in the README to help you promote it or give you feedback if needed.

I personally like a TUI like https://github.com/jesseduffield/lazygit and would build something like that if it was me instead of a browser based GUI. But this is just my preference and 2 cents here.

seomago commented 1 year ago

I love both ideas: web UI and terminal user interface (TUI)