Guvnor
Convert Cosmos on-chain governance proposals into an RSS feed.
Setup
Golang
If you are new to Golang, please follow the setup instructions here.
Environment
Before running guvnord
, please ensure that you have the following environment variables set:
|
Description |
GUVNOR_PORT |
The port that guvnor should run on (e.g.: 3000 ) |
GUVNOR_CONFIG |
The full path to the config.toml file. |
GUVNOR_DOMAIN |
The domain that guvnor is being run on. |
REDIS_URL |
The Redis URL (e.g.: localhost:6379 ). |
REDIS_PASSWORD |
The Redis password (leave blank if no password is set). |
PROPOSAL_FEED_AUTHOR |
The name of the author, for the feed. |
PROPOSAL_FEED_EMAIL |
The email address of the author, for the feed. |
Config
Setup
To setup the config, please run:
make setup-config
This will create a ~/.guvnor/config
directory and copy the example config file into. It will also set the GUVNOR_CONFIG
environment variable.
You can easily override the config location by changing GUVNOR_CONFIG
.
Chains
Remove the placeholder content and update it with those that are relevant to the chains that you wish to generate feeds for. The structure of the config file is very simple, and you add a given chain like so:
[[chain]]
chain_id = "<chain_id>"
api = "<api_host>"
Run
You can run guvnord
on any cloud or bare metal provider. A Heroku Procfile
(please see here for how to launch this on Heroku) as also been included.
Please ensure that you have a Redis instance available, as guvnor
makes use of Redis to cache requests (for up to 6 hours).
Install
To install the binary, run:
make clean install
Start
To then to start the service:
make run-guvnor-service
Once running, you may access the feed at <hostname>/<chain_id>/proposals/rss
.
Development
Linter
To run the linter:
make lint
Tests
To run the tests and see test coverage:
make tests
Cache
As mentioned above, Redis is used to cache frequently requested objects. To start a local Redis instance, run:
make docker-redis