1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7let
8 cfg = config.services.openwebrx;
9in
10{
11 options.services.openwebrx = with lib; {
12 enable = mkEnableOption "OpenWebRX Web interface for Software-Defined Radios on http://localhost:8073";
13
14 package = mkPackageOption pkgs "openwebrx" { };
15 };
16
17 config = lib.mkIf cfg.enable {
18 systemd.services.openwebrx = {
19 wantedBy = [ "multi-user.target" ];
20 path = with pkgs; [
21 csdr
22 digiham
23 codec2
24 js8call
25 m17-cxx-demod
26 alsa-utils
27 netcat
28 ];
29 serviceConfig = {
30 ExecStart = "${cfg.package}/bin/openwebrx";
31 Restart = "always";
32 DynamicUser = true;
33 # openwebrx uses /var/lib/openwebrx by default
34 StateDirectory = [ "openwebrx" ];
35 };
36 };
37 };
38}