/opshell

An electron app to assist with managing AWS instances across multiple organizations

Primary LanguageVueMIT LicenseMIT


Opshell
Website

Looking for contributors: While I still use this on a regular basis, as you can tell from the last update, I haven't had a chance to do any new work on it in quite some time. If anyone is looking to contribute, please let me know.
This is my current pet project which is meant to help those that work with a number of AWS accounts. Always having to login to the console to find the server you want to connect to, if you need to use a bastion host, what key you need to use, etc.

This is still very early in the development phase. It has some rough edges for sure, so if you have any problems just open up an Issue. You can either download one of the prebuilt packages, or you can clone the repo and run it directly with npm.

Primary Components:

  • Electron
  • Vue
  • XTerm.js
  • node-pty
  • Amazon SDK

Changelog

View the Current ChangeLog

Downloads

The easiest way to use this project is to download one of the prebuild packages. Instead of maintaining download versions in two different places, you can find downloads for Mac and Windows on the Opshell Website

Linux Package coming soon.

If you'd rather just clone the repo and build from source instead of downloading a prebuilt package, you're more than welcome to do so.

Clone Repo and Build Setup for Mac/Linux

# install dependencies and native modules
./do_install.sh

# serve with hot reload at localhost:9080
npm run dev

# build electron application for production
npm run build

Clone Repo and Build Setup for Windows

Note: you'll need to have OpenSSH installed and ssh.exe in your path

# install dependencies
yarn

# serve with hot reload at localhost:9080
yarn run dev

# build electron application for production
yarn run build

What is working thus far

Setup multipe organizations

Multiple Orgs

Add your AWS access keys per Organization and region (only needs ec2.describeInstances currently)

Access Keys

Scan for keys that are used for SSH access, and import them. Add custom users as well.

SSH Keys

Easily list out instances in regions you have setup

Region List

Setup a bastion host per region if you need to ssh into it first to access private ip servers behind

Bastion Host

Easily connect via ssh to a server with the click of a button. If no key has been impored for user it will fall back to password prompt.

SSH Connect

What's to come

So much more. Eventually would like to add regular server support, google cloud, etc.

Preferences, colors, styles, etc.

Ability to show more details about servers

Use native ssh2 module instead of relying on node-pty

Too much to list...