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.
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
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>
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>
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
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