update module

This commit is contained in:
Jonas Heinrich 2025-08-20 13:59:25 +02:00
parent 2c095ff8c0
commit b2890353c1
3 changed files with 74 additions and 56 deletions

View file

@ -6,69 +6,72 @@
}:
let
cfg = config.services.fragify;
cfg = config.services.fragify;
in
{
options = {
services.fragify = {
options = {
services.fragify = {
enable = lib.mkEnableOption "Fragify web app";
enable = lib.mkEnableOption "Fragify web app";
};
};
};
};
config = lib.mkIf cfg.enable {
config = lib.mkIf cfg.enable {
# global uwsgi settings (once)
services.uwsgi = {
enable = true;
plugins = [ "python3" ];
# run the emperor
instance = {
type = "emperor";
vassals = {
fragify = {
type = "normal";
chdir = "/";
wsgi-file = "${pkgs.fragify}/share/fragify/fragify_wsgi.py";
module = "fragify:app";
socket = "unix:${config.services.uwsgi.runDir}/fragify.sock";
"chmod-socket" = "660";
umask = "0077";
vacuum = true;
master = true;
processes = 2;
threads = 2;
harakiri = 60;
"buffer-size" = 65535;
need-app = true;
"no-orphans" = true;
env = [
"PYTHONPATH=${pkgs.fragify.pythonPath}"
"FRAGIFY_TEMPLATES_DIR=${pkgs.fragify}/share/fragify/templates"
"FRAGIFY_STATIC_DIR=${pkgs.fragify}/share/fragify/assets"
];
settings = {
"static-map" = "/static=${pkgs.fragify}/share/fragify/assets";
};
};
};
};
};
services.uwsgi = {
enable = true;
plugins = [ "python3" ];
# Ensure fragify user and group exist
users.users.fragify = {
isSystemUser = true;
group = "fragify";
description = "fragify web application user";
};
instance = {
type = "emperor";
vassals = {
fragify = {
type = "normal";
chdir = "/";
users.groups.fragify = {};
};
module = "fragify_wsgi:app";
meta = {
maintainers = with lib.maintainers; [ onny ];
};
socket = "unix:${config.services.uwsgi.runDir}/fragify.sock";
"chmod-socket" = "660";
umask = "0077";
vacuum = true;
master = true;
processes = 2;
threads = 2;
harakiri = 60;
"buffer-size" = 65535;
need-app = true;
"no-orphans" = true;
env = [
"PYTHONPATH=${pkgs.fragify}/share/fragify:${pkgs.fragify.pythonPath}"
"FRAGIFY_TEMPLATES_DIR=${pkgs.fragify}/share/fragify/templates"
"FRAGIFY_STATIC_DIR=${pkgs.fragify}/share/fragify/assets"
];
settings = {
"static-map" = "/static=${pkgs.fragify}/share/fragify/assets";
};
};
};
};
};
# Ensure fragify user and group exist
users.users.fragify = {
isSystemUser = true;
group = "fragify";
description = "fragify web application user";
};
users.groups.fragify = { };
};
meta = {
maintainers = with lib.maintainers; [ onny ];
};
}