/goo

Goo is a command runner that sits on your server and listens for incoming requests, it then executes pre defined scripts according to the requests which are authenticated with api keys generated by goo.

Primary LanguageGoOtherNOASSERTION

Goo

Goo is a command runner that sits on your server and listens for incoming requests, it then executes pre defined scripts according to the requests which are authenticated with api keys generated by goo.

Installation

You can find a list of all the releases Here

Goo is only avalaible for Linux. Run the installation script and everything will be done for you

sudo curl -sSL https://github.com/TheWisePigeon/goo/raw/main/install.sh | sh -s <release-tag>

Goo uses systemd as service manager so make sure you have it installed on your machine. Goo will also listen on port 9090 by default so make sure that port is free.

Goo stores data in a sqlite database under ~/.goo/goo.db

Usage

Actions

Goo is a command runner. You create actions and call these actions over http

To create an action you do

goo action create --name=name --workdir=where_to_run_command --command=what_to_run --recover=what_to_run_if_command_fails

Or you can use the interactive mode

goo action create --i

And you will be prompted for all the parameters

To view the list of actions you can run

goo action ls

You can delete an action with

goo action rm <action_id>

Keys

When you are done creating actions you want to run them via HTTP. All requests need to be authenticated. You can create an authentication key like this

goo key create

It will try to send the created key into your clipboard but if that fails the key will be displayed as a result

You can view a list of all keys with

goo key ls

You can also delete a key with

goo key rm <key_id>

Running actions

To run an action you send a GET request to Goo at the run endpoint. If you are working locally it would look like

curl -H "Authorization: api_key" http://localhost:9090/run/action_name

Goo will respond with 200 if the action was run without problem, 401 if the api key is invalid, 404 if the action was not found and 500 if something went wrong

Logs

Goo logs everything that happens and you can check the logs whether by going directly in the database at ~/.goo/goo.db or using

goo log ls