Klaus: Difference between revisions
imported>Fin444 Created page with " The recommended method for deploying Klaus according to the developer is using uWSGI or Gunicorn. This article provides an example deployment using uWSGI. <syntaxhighlight l..." |
imported>Fin444 Fix faulty information about repo locations |
||
Line 17: | Line 17: | ||
]; | ]; | ||
env = [ | env = [ | ||
" | "KLAUS_REPOS=/repos/repo1 /repos/repo2" | ||
"PATH=${pkgs.git}/bin" # klaus makes a direct call to git | "PATH=${pkgs.git}/bin" # klaus makes a direct call to git | ||
]; | ]; | ||
Line 28: | Line 28: | ||
== Autoreloading == | == Autoreloading == | ||
By default, Klaus will | By default, Klaus will only be able to to track the repos specified in the <code>KLAUS_REPOS</code> environment variable. In order to have it keep track of a set of unknown repos, Klaus needs to be configured to autoreload. | ||
<syntaxhighlight lang="nix> | <syntaxhighlight lang="nix> | ||
Line 35: | Line 35: | ||
enable-threads = true; | enable-threads = true; | ||
lazy-apps = true; | lazy-apps = true; | ||
env = [ "KLAUS_REPOS_ROOT=/repos" ]; | |||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 22:12, 26 October 2023
The recommended method for deploying Klaus according to the developer is using uWSGI or Gunicorn. This article provides an example deployment using uWSGI.
services.uwsgi = {
enable = true;
plugins = [ "python3" ];
instance = {
type = "normal";
master = true;
http-socket = ":8080";
module = "klaus.contrib.wsgi:application";
chdir = pkgs.klaus;
pythonPackages = self: with self; [
klaus
markdown # adds markdown support, optional
];
env = [
"KLAUS_REPOS=/repos/repo1 /repos/repo2"
"PATH=${pkgs.git}/bin" # klaus makes a direct call to git
];
};
};
When loading a repository, you may encounter a 500, traced back to a git
command call in the uWSGI logs. Try setting services.uwsgi.user
and services.uwsgi.group
to match the ownership of the repository.
Autoreloading
By default, Klaus will only be able to to track the repos specified in the KLAUS_REPOS
environment variable. In order to have it keep track of a set of unknown repos, Klaus needs to be configured to autoreload.
services.uwsgi.instance = {
module = "klaus.contrib.wsgi_autoreload:application";
enable-threads = true;
lazy-apps = true;
env = [ "KLAUS_REPOS_ROOT=/repos" ];
};