steps to setup a good typescript dev environment on windows, mac, or linux
- nvm
- windows https://github.com/coreybutler/nvm-windows
- MAC/LINUX https://github.com/creationix/nvm
- vscode https://code.visualstudio.com/
- git https://git-scm.com/
- keybase https://keybase.io/ (required only to access secure repos)
- enable file+git capabilities
- reboot your computer
- join the novaleaf_keybase.ops team to access secstore subrepo
- sourcetree
- gcloud sdk (required only if interacting with google cloud technologies)
- install important node packages
npm install -g shelljs typescript mocha node-dev windows-build-tools yarn
- winscp https://winscp.net/eng/index.php
- vnc viewer: http://tightvnc.net/download.php
- used to connection to bastion instances
gcp = google cloud platform. our cloud provider of choice.
if you want to use 3rd party tools (not gcloud.exe)
- an example using
winscponwindows- install winscp, make sure to also choose pageant in the options
- have your private key you want to use to login.
- add your key to pageant
- in your gcp project, go to
Compute Engine-->Metadata - click
SSH Keys, thenEdit - add the key, specifying the gcp user it'll be associated with. for example:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAgEA4+fjC1OwrBCjC7zsZtj8fjTZzKnCSo5ygkduYAg7hCO425NTPkjMEoMLLQjyEJuIrrnTBFA8AIaID+8r2uzPNvRxPNj3KGG/xpNuhvD2m2VBVWoVCpzRa8AjdSOgA8Oo4hkUFt2MuMF4bq5/jmVdpuCS6Xpw6n2+yvjOfAm5pn+Cm8LC2As08MLCTfFlFLN9NjIyDu4j0VxnV6LWMBbCRdDK8U1Ju54VbQGAqZJPekdO/K+o+uBrTr3FRjFi0zGMfoj+k7ugGZw2COCtBISe7B1DKqXiYTMQuMJHZldYNsNb9f9klfW54WPbuFLl3zzKx2OVr91+/w1i7mLzB8ervw+F+lHAEMFU885A4eJnxv44jd92EiZqoJN27TrHK+xxYSfpyVKEB99PXwkb9IpEz67Dlx+ml6FJlH9nX8nAWmFUzXVSL8CdhbGiSd/8JaGssQkOU2yjVoSLwiHRuQD61PL+K5/WDjdIArrD1WQUgXGpRwtUbaBQJr1w65w7p1nlowWAOl6HWALGtj/08lgfkiXbDC9A8au0s+pjyvfFo7j391T0+Xocv4+SFtUI2/MpfnIxR9T0dBuo0eNOBYmS49X1LcQeZA76fNKifnRrT4Nwk4fFCjEWcuOSQ0UXrGShV2RDznDNxh7Hs9AYxcPF+SrvA2RVVmPdfFRNWNPii80= jasons@novaleaf.com - connect to the server with
winscp, use the short username not full email (in the above example key, you would usejasons)
interact with vm's without external ip's
If you can do everything you need via console (no gui), use byobu.
- http://byobu.co/
- https://www.digitalocean.com/community/tutorials/how-to-install-and-use-byobu-for-terminal-management-on-ubuntu-16-04
- once you figure out byobu, follow the instructions in the SSH subsection below
you can SSH to the bastion host and then SSH to the target's internal ip address:
gcloud compute ssh bastion-us-c1- Once you are connected:
- If you need to persist your session (risk getting disconnected) you can now
byobu(ortmuxorscreen) - next you can
gcloud compute ssh target --internal-ip(see https://cloud.google.com/sdk/gcloud/reference/beta/compute/ssh#--internal-ip)- or if you are using normal
sshyou canssh -A INTERNAL_IPwithin 2 minutes of the first ssh call due to key expiration, as described here: https://cloud.google.com/compute/docs/ssh-in-browser#known_issues
- or if you are using normal
- If you need to persist your session (risk getting disconnected) you can now
- teamviewer+gnome method is stuck at a low res (1300x780 or something)
- vnc+gnome method (ubuntu 1804 default) uses too much ram and seems to have a memory leak (1.4gb on idle after an hour)