The first Git web viewer that Just Works™.
Project description
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. :-)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file klaus-3.0.1.tar.gz
.
File metadata
- Download URL: klaus-3.0.1.tar.gz
- Upload date:
- Size: 47.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f42afac225ff3c0b7a8356c627703040c7d8b822c65e5be7796c5a4a4ba0daf0 |
|
MD5 | 0af5cf1f339c35ee4f2f22f5372e4277 |
|
BLAKE2b-256 | 05279454750d2998a333d0f2ea5b8f7e83995a98909c5f5f26a33e587f05ed64 |