mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 20:39:18 -08:00
fix(hass): nfandroidtv proxy
the service on the TV is unreliable, so proxy it with a fake success response when offline to satisfy the home-assistant integration
This commit is contained in:
parent
9af174aab8
commit
eb8b519394
5 changed files with 93 additions and 3 deletions
|
|
@ -113,7 +113,7 @@ let
|
|||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (gensokyo-zone.lib) mkAlmostOptionDefault;
|
||||
inherit (gensokyo-zone.lib) mkAlmostOptionDefault mkAddress6;
|
||||
inherit (lib.options) mkOption;
|
||||
inherit (lib.modules) mkIf mkOptionDefault mkForce;
|
||||
inherit (lib.attrsets) attrValues mapAttrs;
|
||||
|
|
@ -123,7 +123,7 @@ let
|
|||
enabledCfg = filter (port: port.enable) cfg;
|
||||
mkListen = listen: addr: let
|
||||
listenAttrs = {
|
||||
inherit addr;
|
||||
addr = mkAddress6 addr;
|
||||
inherit (listen) port ssl extraParameters proxyProtocol;
|
||||
};
|
||||
in
|
||||
|
|
|
|||
|
|
@ -216,10 +216,11 @@ let
|
|||
|
||||
config = let
|
||||
enabledServers = filterAttrs (_: server: server.enable) config.servers;
|
||||
activeServers = filterAttrs (_: server: server.settings.backup or false == false) enabledServers;
|
||||
assertServers = v: assert enabledServers != {}; v;
|
||||
in {
|
||||
ssl.enable = mkIf (any (server: server.ssl.enable) (attrValues enabledServers)) (mkAlmostOptionDefault true);
|
||||
defaultServerName = findSingle (_: true) null null (attrNames enabledServers);
|
||||
defaultServerName = findSingle (_: true) null null (attrNames activeServers);
|
||||
upstreamConfig = mkMerge (
|
||||
mapAttrsToList (_: server: mkIf server.enable server.serverDirective) config.servers
|
||||
++ [config.extraConfig]
|
||||
|
|
|
|||
16
modules/system/exports/nfandroidtv.nix
Normal file
16
modules/system/exports/nfandroidtv.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
lib,
|
||||
gensokyo-zone,
|
||||
...
|
||||
}: let
|
||||
inherit (gensokyo-zone.lib) mkAlmostOptionDefault;
|
||||
in {
|
||||
config.exports.services.nfandroidtv = {config, ...}: {
|
||||
displayName = mkAlmostOptionDefault "Notifications for Android TV";
|
||||
ports.default = {
|
||||
port = mkAlmostOptionDefault 7676;
|
||||
protocol = "http";
|
||||
#status.enable = mkAlmostOptionDefault true;
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue