klaus: a simple, easy-to-set-up Git web viewer that Just Works™.
(If it doesn’t Just Work for you, please file a bug.)
Super easy to set up – no configuration required
Syntax highlighting
Markdown + RestructuredText rendering support
Pull + push support (Git Smart HTTP)
Code navigation using Exuberant ctags
- Demo:
- Mailing list:
- On PyPI:
- Wiki:
- License:
ISC (BSD)
Running with Docker
The easiest way to get started. We maintain a Docker image that has syntax highlighting, Markdown rendering, code navigation, etc. pre-configured:
docker run -v /path/to/your/repos:/repos \
-p 7777:80 \
-it jonashaag/klaus:latest \
klaus --host 0.0.0.0 --port 80 /repos/repo1 /repos/repo2 ...
(Replace /path/to/your/repos with the folder that contains your Git repositories on the Docker host. You can also pass in multiple -v arguments if your repos are in multiple folders on the host.)
Go to http://localhost:7777 on the Docker host et voilà!
The command line above simply runs the klaus script – for usage details, see the “Using the klaus script” section below.
Local setup
pip install klaus
(Optional dependencies: see Markup rendering in the wiki.)
Usage
See also: Klaus wiki
Using the klaus script
NOTE: This is intended for testing/low-traffic local installations only! The klaus script uses wsgiref internally which doesn’t scale at all (in fact it’s single-threaded and non-asynchronous).
To run klaus using the default options:
# With Docker:
docker run ... jonashaag/klaus:latest klaus [repo1 [repo2 ...]]
# Local setup:
klaus [repo1 [repo2 ...]]
For more options, see:
# With Docker:
docker run ... jonashaag/klaus:latest klaus --help
# Local setup:
klaus --help
Using a real server
The klaus module contains a make_app function which returns a WSGI app.
An example WSGI helper script is provided with klaus (see klaus/contrib/wsgi.py), configuration being read from environment variables. Use it like this (uWSGI example):
uwsgi -w klaus.contrib.wsgi \
--env KLAUS_SITE_NAME="Klaus Demo" \
--env KLAUS_REPOS="/path/to/repo1 /path/to/repo2 ..." \
...
Gunicorn example:
gunicorn --env KLAUS_SITE_NAME="Klaus Demo" \
--env KLAUS_REPOS="/path/to/repo1 /path/to/repo2 ..." \
klaus.contrib.wsgi
The Docker image also has uwsgi preinstalled:
docker run ... jonashaag/klaus:latest uwsgi ...
See also deployment section in the wiki.
Contributing
Please do it!
I’m equally happy with bug reports/feature ideas and code contributions. If you have any questions/issues, I’m happy to help!
For starters, here are a few ideas what to work on. :-)
Metadata
Release files for klaus 3.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| klaus-3.0.1.tar.gz | 47.1 kB | Without provenance | Details for klaus-3.0.1.tar.gz |
Release files / klaus-3.0.1.tar.gz
| Download URL | klaus-3.0.1.tar.gz |
|---|---|
| Size | 47.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f42afac225ff3c0b7a8356c627703040c7d8b822c65e5be7796c5a4a4ba0daf0
|
|
BLAKE2b-256 checksum How to use checksums |
05279454750d2998a333d0f2ea5b8f7e83995a98909c5f5f26a33e587f05ed64
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.12.4
|
Security for klaus 3.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.