goto

module
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2024 License: MIT

README

GOTO - A simple SSH manager

License Codecov

This tiny app helps to maintain a list of ssh servers. Unlike PuTTY it doesn't incorporate any connection logic, but relying on ssh utility which should be installed on your system.

Supported platforms: macOS, Linux, Windows.

1. Installation

  • Download the latest version from the Releases section;
  • Choose a binary file which matches your platform;
  • Place the binary into your user's binary path;
  • Optionally: rename gg-${YOUR_PLATFORM_TYPE} to gg.
  • If you're on Linux or macOS, ensure that the binary has execution permissions:
    chmod +x gg
    

2. Functional demo

2.1. Edit and connect to a remote box

Small demo where we open ssh session using goto

2.2. Duplicate an existing record

Small demo where duplicate an existing record in goto database

2.3. Find a requried host easily among all your records

Small demo where we open ssh session using goto

3. Configuration

3.1. Command line options
  • -f - application home folder;
  • -l - log verbosity level. Only info(default) or debug values are currently supported;
  • -v - display version and configuration details.
3.2. Environment variables
  • GG_HOME - application home folder;
  • GG_LOG_LEVEL - log verbosity level. Only info(default) or debug values are currently supported.

4. File storage structure

Currently you can only store your hosts in a yaml file, which is called hosts.yaml. The file is located in your user config folder which exact path depends on a running platform:

  • on Linux, it's in $XDG_CONFIG_HOME/goto or $HOME/.config/goto;
  • on Mac, it's in $HOME/Library/Application Support/goto;
  • on Windows, it's in %AppData%\goto.

Usually you don't need to edit this file manually, but sometimes it's much more convenient to edit it into your favorite text editor, than using goto utility. The file structure is very simple and self-explanatory:

- host:
    title: kernel.org
    description: Server 1
    address: 127.0.0.1
- host:
    title: microsoft.com
    description: Server 2
    address: 127.0.0.1
    network_port: 22
    username: satya
    identity_file_path: /home/user/.ssh/id_rsa_microsoft

5. Contributing guidelines

6. Changelog

7. License

Directories

Path Synopsis
cmd
goto
Package main contains application entry point
Package main contains application entry point
internal
config
Package config contains application configuration
Package config contains application configuration
constant
Package constant contains shared app constants
Package constant contains shared app constants
logger
Package logger incapsulates logger functions
Package logger incapsulates logger functions
model/host
Package host contains definition of Host data model.
Package host contains definition of Host data model.
model/ssh
Package ssh contains SSH related models and methods.
Package ssh contains SSH related models and methods.
state
Package state is in charge of storing and reading application state.
Package state is in charge of storing and reading application state.
storage
Package storage contains methods for interaction with database.
Package storage contains methods for interaction with database.
test
Package test contains utility methods for unit tests.
Package test contains utility methods for unit tests.
ui
Package ui - contains UI iteraction code.
Package ui - contains UI iteraction code.
ui/component/hostedit
Package hostedit contains UI components for editing host model attributes.
Package hostedit contains UI components for editing host model attributes.
ui/component/hostlist
Package hostlist implements the host list view.
Package hostlist implements the host list view.
ui/component/input
Package input implements generic UI input component.
Package input implements generic UI input component.
ui/message
Package message contains shared messages which are used to communicate between bubbletea components
Package message contains shared messages which are used to communicate between bubbletea components
utils
Package utils contains various utility methods
Package utils contains various utility methods
version
Package version is a singleton module which stores project build information.
Package version is a singleton module which stores project build information.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL