diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md index d9e066ffad61..1bd403948058 100644 --- a/nixos/doc/manual/release-notes/rl-2405.section.md +++ b/nixos/doc/manual/release-notes/rl-2405.section.md @@ -106,6 +106,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m - [transfer-sh](https://github.com/dutchcoders/transfer.sh), a tool that supports easy and fast file sharing from the command-line. Available as [services.transfer-sh](#opt-services.transfer-sh.enable). +- [FCast Receiver](https://fcast.org), an open-source alternative to Chromecast and AirPlay. Available as [programs.fcast-receiver](#opt-programs.fcast-receiver.enable). + - [MollySocket](https://github.com/mollyim/mollysocket) which allows getting Signal notifications via UnifiedPush. - [Suwayomi Server](https://github.com/Suwayomi/Suwayomi-Server), a free and open source manga reader server that runs extensions built for [Tachiyomi](https://tachiyomi.org). Available as [services.suwayomi-server](#opt-services.suwayomi-server.enable). diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 0a15360f6ea5..c0b29ce476e9 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -177,6 +177,7 @@ ./programs/environment.nix ./programs/evince.nix ./programs/extra-container.nix + ./programs/fcast-receiver.nix ./programs/feedbackd.nix ./programs/file-roller.nix ./programs/firefox.nix diff --git a/nixos/modules/programs/fcast-receiver.nix b/nixos/modules/programs/fcast-receiver.nix new file mode 100644 index 000000000000..8da07a66e222 --- /dev/null +++ b/nixos/modules/programs/fcast-receiver.nix @@ -0,0 +1,31 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.fcast-receiver; +in +{ + meta = { + maintainers = pkgs.fcast-receiver.meta.maintainers; + }; + + options.programs.fcast-receiver = { + enable = mkEnableOption (lib.mdDoc "FCast Receiver"); + openFirewall = mkOption { + type = types.bool; + default = false; + description = lib.mdDoc '' + Open ports needed for the functionality of the program. + ''; + }; + package = mkPackageOption pkgs "fcast-receiver" { }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + networking.firewall = mkIf cfg.openFirewall { + allowedTCPPorts = [ 46899 ]; + }; + }; +}