Files
@ 70e29dc91deb
Branch filter:
Location: kallithea/docs/usage/git_support.rst - annotation
70e29dc91deb
1.1 KiB
text/prs.fallenstein.rst
ini file: clarify that beaker.session.key should be unique
When several instances of Kallithea are running on the same machine, the
same browser cannot be logged into both instances at the same time without
conflicts. The login session are saved into the same cookie; logging into
one instance closes the session on the second instance and vice-versa.
This is caused because the cookie name is simply 'kallithea', combined with
the fact that the cookie specification (RFC6265) states that there is no
isolation of cookies based on port. This means that the browser sends all
cookies from a given domain with all services (Kallithea instances) running
on that domain, irrespective of port.
The services thus need to handle any such issue themselves, for example by
using unique cookie names and only interacting with one's own cookie.
Making the key unique when creating the configuration file proved difficult:
- it does not seem possible to hook into 'paster make-config'
- since Beaker directly interprets the beaker.session.key, changing it on
the fly from SessionMiddleware will not work correctly.
There is a kallithea-config script that is an alternative to 'paster
make-config' which would be the ideal place to make such changes. However,
it seems this method is not advocated over 'paster make-config' (yet?).
Instead, simply add a comment in the config file and let the user take care
of it.
When several instances of Kallithea are running on the same machine, the
same browser cannot be logged into both instances at the same time without
conflicts. The login session are saved into the same cookie; logging into
one instance closes the session on the second instance and vice-versa.
This is caused because the cookie name is simply 'kallithea', combined with
the fact that the cookie specification (RFC6265) states that there is no
isolation of cookies based on port. This means that the browser sends all
cookies from a given domain with all services (Kallithea instances) running
on that domain, irrespective of port.
The services thus need to handle any such issue themselves, for example by
using unique cookie names and only interacting with one's own cookie.
Making the key unique when creating the configuration file proved difficult:
- it does not seem possible to hook into 'paster make-config'
- since Beaker directly interprets the beaker.session.key, changing it on
the fly from SessionMiddleware will not work correctly.
There is a kallithea-config script that is an alternative to 'paster
make-config' which would be the ideal place to make such changes. However,
it seems this method is not advocated over 'paster make-config' (yet?).
Instead, simply add a comment in the config file and let the user take care
of it.
c45fb78969a3 c45fb78969a3 17c9393e9645 c45fb78969a3 c45fb78969a3 c45fb78969a3 c45fb78969a3 03bbd33bc084 03bbd33bc084 18d34a56a736 03bbd33bc084 03bbd33bc084 8b8edfc25856 03bbd33bc084 c45fb78969a3 03bbd33bc084 03bbd33bc084 c45fb78969a3 03bbd33bc084 8b8edfc25856 c45fb78969a3 c45fb78969a3 18d34a56a736 18d34a56a736 18d34a56a736 8b8edfc25856 8b8edfc25856 03bbd33bc084 c45fb78969a3 8b8edfc25856 8b8edfc25856 8b8edfc25856 8b8edfc25856 370e995e46c2 03bbd33bc084 03bbd33bc084 8b8edfc25856 8b8edfc25856 03bbd33bc084 c45fb78969a3 c45fb78969a3 8b8edfc25856 c45fb78969a3 c45fb78969a3 c45fb78969a3 c45fb78969a3 c45fb78969a3 c45fb78969a3 8b8edfc25856 | .. _git_support:
===========
GIT support
===========
Kallithea Git support is enabled by default. You just need a git
command line client installed on the server to make Git work fully.
Web server with chunked encoding
--------------------------------
Large Git pushes do however require a http server with support for chunked encoding for POST.
The Python web servers waitress_ and gunicorn_ (linux only) can be used.
By default, Kallithea uses waitress_ for `paster serve` instead of the built-in `paste` WSGI server.
The default paste server is controlled in the .ini file::
use = egg:waitress#main
or::
use = egg:gunicorn#main
Also make sure to comment out the following options::
threadpool_workers =
threadpool_max_requests =
use_threadpool =
Disabling Git
-------------
You can always disable git/hg support by editing a
file **kallithea/__init__.py** and commenting out the backend.
.. code-block:: python
BACKENDS = {
'hg': 'Mercurial repository',
#'git': 'Git repository',
}
.. _waitress: http://pypi.python.org/pypi/waitress
.. _gunicorn: http://pypi.python.org/pypi/gunicorn
|