diff --git a/favicon.svg b/favicon.svg index 0519ecb..405ec3c 100644 --- a/favicon.svg +++ b/favicon.svg @@ -1 +1,16 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/flake.nix b/flake.nix index 5871ee4..1736249 100644 --- a/flake.nix +++ b/flake.nix @@ -30,7 +30,7 @@ installPhase = '' install -Dm755 ${./fragify.py} $out/bin/fragify mkdir -p $out/share/fragify - cp -r ${./templates} $out/share/fragify/ + cp -r ${./templates} $out/share/fragify/templates # Provide a WSGI entry file for uWSGI to load install -Dm644 ${./fragify.py} $out/share/fragify/fragify_wsgi.py # Install built assets if present diff --git a/module.nix b/module.nix index 3abe92b..7ee6e86 100644 --- a/module.nix +++ b/module.nix @@ -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 ]; + }; }