mob-programming-meetup / cloud-desktop

Setup cloud mob-programming machine.
MIT License
6 stars 4 forks source link

CLUI for creating Cloud Desktops #2

Open koushik-ms opened 3 years ago

koushik-ms commented 3 years ago

Based on windows gce setup script is it possible to create an interactive UI that allows user to select settings of the cloud desktop to be built and uses the GCE APIs, package management and configuration tools ?

Features

Below is a list of features desirable in such a solution.

Core features

  1. Provide interactive selection of Machine type (OS, Base image), CPU Cores, Memory, Region, Disk size.
  2. Provide initial setup using chocolatey or apt, yum etc., to setup essential tools like AnyDesk that enable connection and further configuration of the system and clone the essential git repos.
  3. Allow the script to be invoked in batch mode, i.e., with parameters for all values that can be selected interactively.

Extended features

  1. Provide option to supply additional packages and applications to install. For example, IDEs or toolchains can be installed using this.
  2. For open source project maintainers: Embed a link / command-snippet to launch a VM with custom configuration as a dev environment for the project. Or as a playground for using the project to run examples.
github-actions[bot] commented 3 years ago

Thank you for creating this issue. 🙏

Don't hesitate to reach out to us to better understand in which context you are using or planning on using this project and how we can help you with that.

koushik-ms commented 3 years ago

here are some hints for one possible way of achieving this:

  1. nodeJS based front-end (using clui) for interaction.
  2. ansible as platform-neutral tool for provisioning Anydesk + Cloning repos.
  3. choco/nuget for package management on windows.

These are mere suggestions for getting started.

haraldreingruber commented 3 years ago

Hey @koushik-ms, thanks for drafting the requirements. This sounds already pretty good for starting working on this tool!

Regarding the CLI framework, these 2 projects might also be an interesting choice:

  1. https://www.npmjs.com/package/commander
  2. https://oclif.io/
koushik-ms commented 3 years ago

Propose to start with the following to enable us to experiment with the frameworks and get a basic command-line application that accepts options/ interactive user-inputs:

  1. Allow user to select the programming language they want to work with.
  2. Allow user to select additional tooling/ packages based on the language

This covers step 4 and some of step 3 above.