custom-components / healthchecksio

Update and display the status of your healthchecks.io checks.
MIT License
52 stars 9 forks source link

Support for self hosted instances #8

Closed markusressel closed 3 years ago

markusressel commented 4 years ago

fixes #4

Adds support for self hosted instances by introducing two new configuration parameters:

The naming of the parameters is inspired by the official environment variables used by Healthcheck.io .

TODO:

markusressel commented 4 years ago

@ludeeus Ok so I have done a few new things:

I changed the config flow to include a "self hosted" toggle. This will make the config flow only a single step for users of the official site, while self-hosters have to do a second step to enter URL details. My initial goal was to make the config flow display UI elements dynamically (hide URL stuff with a toggle), but all the things I tried did not work (and the official documentation is really sparse...), so I used a two step flow instead. Please let me know what you think about this and if it can be improved.

I formatted everything with black (using no arguments).

I tested the official site and everything works on my end.

I tested my self-hosted instance (a lot...) and still ran into the network issue I mentioned in #4. I was able to work around this by introducing a tiny await asyncio.sleep(0.00001) between the api request and the ping request. I still don't have a clue where this is coming from. It might be coming from my setup, from some docker networking, kubernetes networking, FreeBSD jail networking... there is just too much stuff I don't know nearly enough about to debug this in a timely fashion. Therefore I'd appreciate it if this workaround is acceptable, even though it adds code bloat (two lines) and a tiny delay which shouldn't matter at all for this application.

Thx

markusressel commented 3 years ago

@ludeeus Ping :yum:

ludeeus commented 3 years ago

@markusressel pong :ping_pong:

markusressel commented 3 years ago

Seems like the black-action is not working correctly :(