Simple to use, packaged, continuously deployed solution to start 3 monitored ethereum nodes in your local environment.
- Nix version 2.18.2 or higher. Follow the installation instructions for your operating system
- Github personal access token. Follow the official documentation or take a look at the detailed application specific documentation in this repository
- Direnv. Follow the installation instructions
Create a .env
file in the repository root, adding your github access token
export GITHUB_TOKEN=<your-github-access-token>
If you would like to use the development shell provided by the nix flake, run:
direnv allow
In the shell you can use tools such as kind
flux
kubectl
and kubectx
To start a kubernetes cluster and deploy 3 ethereum full nodes (two clients each), grafana and prometheus in the ethereum-node-automation namespace, run:
nix run
This will start each deployment and continuously sync with the main branch of this repository, with Flux
To stop and destroy the cluster on your local machine, you can run:
nix run .#delete
To stop Flux from continuously syncing the cluster, you can suspend the Flux kustomization, run:
flux suspend kustomization ethereum-node-automation
To see the status of the deployment, run:
flux get kustomizations
After deploying the applications, there will be a Grafana and a Prometheus deployment in the namespace. To access the Grafan UI, you should port-forward the HTTP port of Grafana:
kubectl port-forward svc/grafana 3000:3000
After that you can access the UI from your browser at localhost:3000
.
The password for the admin user is admin
. After logging in it is advised to update the password.
The instance is provisioned with two dashboards that use Prometheus as a datasource. Prometheus is configured to scrape data from the ethereum clients themselves and the kubernetes resources.
If you would wish to read more about implementation details check out the detailed documentation in the docs folder.
Contributions are welcome, feel free to open a discussion on the repository.