{ description = "Econom_app NixOS module"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; }; outputs = { self, nixpkgs }: let pkgs = nixpkgs.legacyPackages."x86_64-linux"; in { packages = rec { econom-app = pkgs.buildNpmPackage { pname = "econom-app"; version = "1.0.0"; src = ./.; npmDepsHash = "sha256-HzJV9bXwgn9WE9llPHLnYLNUIL6PDeoOh+K+RJ6Dd9s="; installPhase = '' mkdir -p $out; mv dist $out; ''; }; default = econom-app; }; nixosModules.econom-app = { config, lib, pkgs, ... }: with lib; let cfg = config.services.econom-app; in { options.services.econom-app = { enable = mkEnableOption "Deploy the econom-app service"; domain = mkOption { type = types.str; default = "localhost"; description = "Dommain name to serve econom-app on."; }; }; config = mkIf cfg.enable { services.nginx.virtualHosts.${cfg.domain} = { root = "${self.packages.econom-app}/dist"; locations."/" = { index = "index.html"; tryFiles = "$uri $uri/ /index.html"; }; }; }; }; }; }