kudune 0.1.0

Utility to setup Antelope nodes in Docker
Documentation
# README

Here is a list of workflows that should be enabled by the `kudune` utility
and how they can be performed. This should serve both as design document
and end-to-end testing of the binary to assess its usefulness / ease-of-use.

By default, we run nodeos in a docker container with the name `vaulta_container`.

## Build a base image to be used for creating containers with all the tools installed

```sh
kudune build-image                # use a default Ubuntu base image
kudune build-image wackou:devbox  # use a provided base image
```


## Build a new container from scratch and run nodeos

```sh
kudune destroy    # ensure that we don't have a lingering docker container
kudune start-node
```

## Build a new container with a given config file

```sh
kudune destroy    # ensure that we don't have a lingering docker container
kudune start-node --config <CONFIG_FILE.INI>
```

## Set our own default config instead of nodeos default

in particular, we want to expose the http port to all listeners, not only localhost

```sh
kudune set-config default
```

you can set specific values like so:
```sh
kudune set-config http-server-address=0.0.0.0:8888 chain-state-db-size-mb=65536 contracts-console=true
```


# TODO / FIXME

- better error handling instead of unwrap, esp. on docker commands
  -> bubble up errors and display then with color_eyre?

- check some use cases from here: <https://docs.vaulta.com/docs/latest/node-operation/api-node>
  can we fulfill them?

- use IndexMap on the node config to ensure we do not mess up the config file order
  also ensure we're keeping comments from the config file when round-tripping it

- make sure we can generate a decent documentation

- try to follow guidelines from <https://clig.dev>

- try to optimize docker image using `dive` or `xray-tui` to check it