From 724a8626476915eeda6e0e173c7d1b9ef7b46127 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 11 Nov 2023 16:48:39 +0100 Subject: [PATCH] Added a module to flake --- .gitignore | 1 + default.nix | 2 +- flake.nix | 5 ++++ module.nix | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++ result | 1 - 5 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 module.nix delete mode 120000 result diff --git a/.gitignore b/.gitignore index 28200a3..861a7e3 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ faup1090 package-wheezy oneoff/convert_benchmark oneoff/decode_comm_b +result \ No newline at end of file diff --git a/default.nix b/default.nix index 16dc4b9..97a4e79 100644 --- a/default.nix +++ b/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { mkdir -p $out/bin $out/share cp -v dump1090 $out/bin/dump1090-afg - cp -vr public_html $out/share/dump1090 + cp -vr public_html $out/share/dump1090-afg runHook postInstall ''; diff --git a/flake.nix b/flake.nix index eddd5fc..88bb6c4 100644 --- a/flake.nix +++ b/flake.nix @@ -33,5 +33,10 @@ aarch64-linux.default = nixpkgs.legacyPackages.aarch64-linux.callPackage ./default.nix { }; armv6l-linux.default = nixpkgs.legacyPackages.armv6l-linux.callPackage ./default.nix { }; }; + + nixosModules.default = { config, pkgs, ... }: { + imports = [ ./module.nix ]; + _module.args.dump1090afg = self.packages; + }; }; } diff --git a/module.nix b/module.nix new file mode 100644 index 0000000..fbafe3e --- /dev/null +++ b/module.nix @@ -0,0 +1,67 @@ +{ lib, config, pkgs, dump1090afg, ... }: +with lib; +let + # Shorter name to access final settings a + # user of hello.nix module HAS ACTUALLY SET. + # cfg is a typical convention. + cfg = config.services.dump1090afg; +in +{ + + options.services.dump1090afg = { + enable = mkEnableOption "dump1090afg service"; + package = mkOption { + default = dump1090afg.x86_64-linux.cross-armv6l-linux; + type = types.package; + }; + user = mkOption { + type = types.str; + default = "afg"; + }; + domain = mkOption { + type = types.str; + default = "localhost"; + }; + enableSSL = mkEnableOption "use let's encrypt SSL certs for dump1090afg"; + }; + + + config = mkIf cfg.enable { + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = [ + cfg.package + ]; + + hardware.rtl-sdr.enable = true; + + systemd.services.dump1090afg = { + wantedBy = [ "multi-user.target" ]; + wants = [ "network.target" ]; + after = [ "network.target" ]; + description = "dump1090afg service"; + serviceConfig = { + Type = "exec"; + User = cfg.user; + Restart = "always"; + RestartSec = "3s"; + StartLimitIntervalSec = "0"; + RuntimeDirectory = "dump1090-afg"; + }; + script = '' + exec ${cfg.package}/bin/dump1090-afg --write-json /var/run/dump1090-afg --quiet + ''; + }; + + services.nginx = { + enable = true; + virtualHosts."${cfg.domain}" = { + root = "${cfg.package}/share/dump1090-afg"; + locations."/data/".alias = "/var/run/dump1090-afg/"; + enableACME = cfg.enableSSL; + forceSSL = cfg.enableSSL; + }; + }; + }; + +} diff --git a/result b/result deleted file mode 120000 index fb57a85..0000000 --- a/result +++ /dev/null @@ -1 +0,0 @@ -/nix/store/6czbzhsdidalrmwmxqh5xdvd6ma8ynp2-dump1090-afg-armv6l-unknown-linux-gnueabihf-1.0 \ No newline at end of file