Kallithea Setup Docs
Mads Kiilerich
mads at kiilerich.com
Mon Dec 12 15:12:40 UTC 2022
Hi David
The Kallithea docs aim to help getting a very basic setup with the
essentials. Something that perhaps can be used directly, but mainly
serve as a starting point for further setup which is outside the scope
of Kallithea. It is important to keep the configuration examples focused
without introducing unnecessary concepts, or even worse: mixing up
different concepts. We must assume that those who want to use advanced
features (of uWSGI or other very configurable servers like Apache or
Ngingx) will know how to use these or find the information elsewhere.
The uWSGI template *is* for setting up an uWSGI server. And yes, that
uWSGI server is serving the HTTP protocol directly, not the uwsgi
protocol. That seems like a fine setup for Kallithea, per
https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html#can-i-use-uwsgi-s-http-capabilities-in-production
. I assume you are asking for clarification that the template is serving
the HTTP protocol and not the uwsgi protocol?
The first lines of the generated uWSGI section mention HTTP basics and
configure http-socket . uWSGI is mentioned in the documentation, both
overview and setup, but only very clearly in the context of web/http
server. That all seems quite clear to me. Mentioning the uwsgi protocol
doesn't seem helpful when the goal is to help people focus on the
essentials to get something working, and enumerating things that are
outside scope is out of scope.
We do for convenience put an [uwsgi] section inside the Kallithea .ini
where the uwsgi binary with one of the --ini-paste options can pick it
up. The section name is mandated by uWSGI. In a bigger setup that use
the uwsgi protocol, there will probably be several layers of servers
with different configuration, and you will not be using the Kallithea
.ini file.
The --ini-paste-logged option might be a bit of an odd uWSGI feature
that doesn't scale to bigger setups. There could *perhaps* be a point in
giving an example or hinting towards more complex setups with a separate
uwsgi.ini file without relying heavily on the paste configuration.
I have no doubt that uWSGI can do great things, also with the uwsgi
protocol. As far as I can see, that can be as simple and trivial as
using "socket" instead of "http-socket". (I can not find any
uwsgi-socket option, and manage-script-name only seems relevant when
using mount points.) But when using uwsgi protocol you need another
server in front that can serve it as http. That seems like a more
complex setup, where I doubt even less that one size fits all. I'm sure
there are many guides and documentation that can help with that. Or is
there something particularly relevant for Kallithea setups?
It is indeed possible to "mount" several WSGI applications inside most
HTTP/WSGI servers (or directly in paste), but that is a more complex
(for example because manage-script-name becomes relevant). New users
shouldn't have to read and understand that just to get started. But that
seems unrelated to the uwsgi protocol.
We already have some (old and possibly outdated) mentioning of setups
with apache and ngingx etc around
https://kallithea.readthedocs.io/en/default/setup.html#proxy-setups and
random setup files in
https://kallithea-scm.org/repos/kallithea/files/stable/init.d .
Something more elaborate for uWSGI with some examples and qualified
recommendations could fit in there.
With this context in mind, can you clarify what changes you would propose?
/Mads
On 27/11/2022 19:25, David Griffin wrote:
> Hello all,
>
> I just set up Kallithea and there's one area of the docs that could
> use clarification: emphasizing that setting up Kallithea with the
> uwsgi template sets it up to use uwsgi as an HTTP server, and not a
> uwsgi server. The name "uwsgi" is not particularly clear about this,
> because the uwsgi server application can operate multiple protocols -
> perhaps it would be better to name it as "uwsgi-http" to make it clear
> which protocol the configuration is for.
>
> Incidentally, Kallithea appears to work great running under uwsgi as a
> uwsgi server (with the additional configuration option of
> manage-script-name = true, and setting uwsgi-socket instead of
> http-socket). This might be a better option for running behind nginx /
> lighttpd than the proxy_pass method you've got on your docs currently.
> I can write this up if it's useful.
>
> All the best,
> - David
>
> _______________________________________________
> kallithea-general mailing list
> kallithea-general at sfconservancy.org
> https://lists.sfconservancy.org/mailman/listinfo/kallithea-general
More information about the kallithea-general
mailing list