diff --git a/flake.nix b/flake.nix index 4e34de1..f8c1cf5 100644 --- a/flake.nix +++ b/flake.nix @@ -95,5 +95,7 @@ packages = { inherit start; }; defaultPackage.x86_64-linux = start; + nixosModule = (import ./module.nix); + }; } diff --git a/module.nix b/module.nix new file mode 100644 index 0000000..8fafa5c --- /dev/null +++ b/module.nix @@ -0,0 +1,53 @@ +{ + config, + lib, + pkgs, + options, + ... +}: +let + + cfg = config.services.verwaltungstracker; + +in +{ + + options = { + services.verwaltungstracker = { + + enable = lib.mkEnableOption "Verwaltungstracker web app"; + + } // options.services.froide-govplan.settings; + }; + + config = lib.mkIf cfg.enable { + + nixpkgs.overlays = [ + (self: super: { + froide-govplan = super.froide-govplan.overridePythonAttrs (oldAttrs: { + src = pkgs.fetchFromGitea { + domain = "git.project-insanity.org"; + owner = "onny"; + repo = "verwaltungstracker"; + rev = "e5acfdf19d5af71bc5223c72713c128f3948f39f"; + hash = "sha256-SRxPKherMz9xv/1XZjmwYg74r7Qln+vfLWgHyG5RbxQ="; + }; + dependencies = oldAttrs.dependencies ++ [ oldAttrs.passthru.python.pkgs.mastodon-py ]; + passthru = oldAttrs.passthru // { + pythonPath = "${pkgs.python3.pkgs.makePythonPath [pkgs.python3.pkgs.mastodon-py]}:${oldAttrs.passthru.pythonPath}"; + }; + }); + }) + ]; + + services.froide-govplan = { + enable = true; + settings = cfg.settings; + }; + + }; + + meta = { + maintainers = with lib.maintainers; [ onny ]; + }; +}