From 4dde5f976b6bf928a744d977851ed44d16acc756 Mon Sep 17 00:00:00 2001 From: tux Date: Mon, 13 Jul 2026 21:30:31 +0530 Subject: [PATCH] feat: setup mediaflow-proxy module --- modules/nixos/services/mediaflow-proxy.nix | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 modules/nixos/services/mediaflow-proxy.nix diff --git a/modules/nixos/services/mediaflow-proxy.nix b/modules/nixos/services/mediaflow-proxy.nix new file mode 100644 index 0000000..b14bb93 --- /dev/null +++ b/modules/nixos/services/mediaflow-proxy.nix @@ -0,0 +1,57 @@ +{ + flake.modules.nixos.services = + { + config, + lib, + ... + }: + with lib; + let + cfg = config.tnix.services.mediaflow-proxy; + in + { + options.tnix.services.mediaflow-proxy = { + enable = mkEnableOption "Enable MediaFlow Proxy"; + + port = mkOption { + type = types.int; + default = 8888; + }; + + environment = mkOption { + type = with types; attrsOf str; + default = { }; + }; + + environmentFile = mkOption { + type = with types; path; + default = ""; + }; + }; + + config = mkIf cfg.enable { + virtualisation.oci-containers.containers.mediaflow-proxy = { + autoStart = true; + image = "ghcr.io/mhdzumair/mediaflow-proxy-light:latest"; + ports = [ + "${toString cfg.port}:8888" + ]; + + environment = cfg.environment; + environmentFiles = [ cfg.environmentFile ]; + }; + + services.nginx.virtualHosts = { + "mf-proxy.lab.tux.rs" = { + forceSSL = true; + useACMEHost = "lab.tux.rs"; + locations = { + "/" = { + proxyPass = "http://localhost:${toString cfg.port}"; + }; + }; + }; + }; + }; + }; +}