@@ -120,51 +120,53 @@ installed.
- The Kallithea source repository can be cloned and used -- it is kept stable and
can be used in production. The Kallithea maintainers use the development
branch in production. The advantage of installation from source and regularly
updating it is that you take advantage of the most recent improvements. Using
it directly from a DVCS also means that it is easy to track local customizations.
Running ``pip install -e .`` in the source will use pip to install the
necessary dependencies in the Python environment and create a
``.../site-packages/Kallithea.egg-link`` file there that points at the Kallithea
source.
- Kallithea can also be installed from ready-made packages using a package manager.
The official released versions are available on PyPI_ and can be downloaded and
installed with all dependencies using ``pip install kallithea``.
With this method, Kallithea is installed in the Python environment as any
other package, usually as a ``.../site-packages/Kallithea-X-py3.8.egg/``
directory with Python files and everything else that is needed.
(``pip install kallithea`` from a source tree will do pretty much the same
but build the Kallithea package itself locally instead of downloading it.)
.. note::
Kallithea includes front-end code that needs to be processed first.
The tool npm_ is used to download external dependencies and orchestrate the
processing. The ``npm`` binary must thus be available.
Kallithea includes front-end code that needs to be processed to prepare
static files that can be served at run time and used on the client side. The
tool npm_ is used to download external dependencies and orchestrate the
processing. The ``npm`` binary must thus be available at install time but is
not used at run time.
Web server
----------
Kallithea is (primarily) a WSGI_ application that must be run from a web
server that serves WSGI applications over HTTP.
Kallithea itself is not serving HTTP (or HTTPS); that is the web server's
responsibility. Kallithea does however need to know its own user facing URL
(protocol, address, port and path) for each HTTP request. Kallithea will
usually use its own HTML/cookie based authentication but can also be configured
to use web server authentication.
There are several web server options:
- Kallithea uses the Gearbox_ tool as command line interface. Gearbox provides
``gearbox serve`` as a convenient way to launch a Python WSGI / web server
from the command line. That is perfect for development and evaluation.
Actual use in production might have different requirements and need extra
work to make it manageable as a scalable system service.
Gearbox comes with its own built-in web server for development but Kallithea
defaults to using Waitress_. Gunicorn_ and Gevent_ are also options. These
@@ -33,49 +33,51 @@ This will prompt you for a "root" path.
Kallithea will store all of its repositories on the current machine. After
entering this "root" path ``db-create`` will also prompt you for a username
and password for the initial admin account which ``db-create`` sets
up for you.
The ``db-create`` values can also be given on the command line.
Example::
kallithea-cli db-create -c my.ini --user=nn --password=secret --email=nn@example.com --repos=/srv/repos
The ``db-create`` command will create all needed tables and an
admin account. When choosing a root path you can either use a new
empty location, or a location which already contains existing
repositories. If you choose a location which contains existing
repositories Kallithea will add all of the repositories at the chosen
location to its database. (Note: make sure you specify the correct
path to the root).
.. note:: the given path for Mercurial_ repositories **must** be write
accessible for the application. It's very important since
the Kallithea web interface will work without write access,
but when trying to do a push it will fail with permission
denied errors unless it has write access.
Finally, prepare the front-end by running::
Finally, the front-end files must be prepared. This requires ``npm`` version 6
or later, which needs ``node.js`` (version 12 or later). Prepare the front-end
by running::
kallithea-cli front-end-build
You are now ready to use Kallithea. To run it simply execute::
gearbox serve -c my.ini
- This command runs the Kallithea server. The web app should be available at
http://127.0.0.1:5000. The IP address and port is configurable via the
configuration file created in the previous step.
- Log in to Kallithea using the admin account created when running ``db-create``.
- The default permissions on each repository is read, and the owner is admin.
Remember to update these if needed.
- In the admin panel you can toggle LDAP, anonymous, and permissions
settings, as well as edit more advanced options on users and
repositories.
Internationalization (i18n support)
-----------------------------------
The Kallithea web interface is automatically displayed in the user's preferred
language, as indicated by the browser. Thus, different users may see the
application in different languages. If the requested language is not available
Status change: