sozu icon indicating copy to clipboard operation
sozu copied to clipboard

web interface for administration

Open Geal opened this issue 7 years ago • 5 comments

the sozuctl command line can already be used to manage the proxy, but administration through a web interface could be useful. The command library should be easy enough to plug in a separate application with a web API built with rocket or something else.

Geal avatar Apr 12 '17 13:04 Geal

The command library used to talk to the proxy is here: https://github.com/sozu-proxy/sozu/tree/master/command

You need to open the unix socket used for communication with sozu, then the messages are sent as JSON objects separated by a null character. The Channel abstraction used everywhere in the code supports both blocking and non blocking communication.

Geal avatar Apr 12 '17 14:04 Geal

What kind of informations we need to display on this interface?

Freyskeyd avatar Apr 21 '17 09:04 Freyskeyd

a lot of things that are not there right now, like the number of concurrent connections, the requests per second, the bandwidth. It could also display the actual configuration (domains, certificates, backend servers, etc). The goal right now would be to have the structure to launch a webserver, connect to the proxy's command socket, query the proxy, and update the information. Once it is done for one type of information, we will see what we can add first.

Geal avatar Apr 23 '17 11:04 Geal

Hello, I started to explore sozu today, and this might be a good issue for me to start contributing. Just to be clear I would do this on my spare time and I still have a lot to learn so I might take me some time.

They are many framework out there. I've started to experiment with nickel, iron, actix and rocket but I 've no idea yet about which one would fit the best (pick one).

Although I need clarification about what i required here exactly. What you need is a restfull API to perform the command already available via sozuctl, not writing the UI, right ?

oknozor avatar Jun 20 '19 12:06 oknozor

this could be integrated in sozu's main process now. I'm not sure integrating a large web framework would be the key here, a simple status page for now would be enough

Geal avatar Jul 29 '21 10:07 Geal