*Kapow!* HTTP Interfaces
========================

``kapow server`` sets up three HTTP server interfaces, each with a distinct and
clear purpose.


.. _http-user-interface:

HTTP User Interface
-------------------

The `HTTP User Interface` is used to serve final user requests.

By default it binds to address ``0.0.0.0`` and port ``8080``, but that can be
changed via the ``--bind`` flag.


.. _https-control-interface:

HTTPS Control Interface
-----------------------

The `HTTPS Control Interface` is used by the command ``kapow route`` to
administer the list of system routes.

This interface uses mTLS by default (double-pinned autogenerated certs).

By default it binds to address ``127.0.0.1`` and port ``8081``, but that can be
changed via the ``--control-bind`` flag.  If this is the case, consider
also ``--control-reachable-addr`` which will configure the autogenerated
certificate to match that address.


.. _http-data-interface:

HTTP Data Interface
-------------------

The `HTTP Data Interface` is used by the commands ``kapow get`` and ``kapow
set`` to exchange the data for a particular request.

By default it binds to address ``127.0.0.1`` and port ``8082``, but that can be
changed via the ``--data-bind`` flag.
