Diplonat ======== ## Feature set * [ ] (Re)Configure NAT via UPNP/IGD (prio: high) * [ ] (Re)Configure nftable (prio: low) * [ ] (Re)Configure DNS via ??? (prio: low) ## Operate ```bash cargo build consul agent -dev # in a separate terminal # adapt following values to your configuratio export DIPLONAT_PRIVATE_IP="192.168.0.18" export DIPLONAT_REFRESH_TIME="60" export DIPLONAT_EXPIRATION_TIME="300" export DIPLONAT_CONSUL_NODE_NAME="lheureduthe" export RUST_LOG=debug cargo run ``` ## About Consul Catalog * We query the `/v1/catalog/node/` endpoint * We can watch it thanks to [Blocking Queries](https://www.consul.io/api/features/blocking.html) eg: ```bash curl -vvv http://127.0.0.1:8500/v1/catalog/node/lheureduthe # returns X-Consul-Index: 15 curl -vvv http://127.0.0.1:8500/v1/catalog/node/lheureduthe?index=15 ``` Each time you do the request, the whole list of services bound to the node is returned. To test the Consul Catalog part, you can do: ```bash consul agent -dev #in a separate terminal, if not already running consul services register -name=example -port=1337 consul services -id=example ```