diff --git a/flake.nix b/flake.nix index f6d395e..be27f86 100644 --- a/flake.nix +++ b/flake.nix @@ -107,13 +107,13 @@ ]; }; - # vaultwarden.deployment = { - # targetHost = "192.168.1.154"; - # tags = [ - # "lxc" - # "bacco" - # ]; - # }; + plex.deployment = { + targetHost = "192.168.1.155"; + tags = [ + "lxc" + "node" + ]; + }; deadbeef.deployment = { allowLocalDeployment = true; diff --git a/hosts/plex/default.nix b/hosts/plex/default.nix new file mode 100644 index 0000000..5193026 --- /dev/null +++ b/hosts/plex/default.nix @@ -0,0 +1,40 @@ +{ + config, + pkgs, + lib, + ... +}: +{ + my = { + utils.commons.enable = true; + + services.plex = { + enable = true; + tautulli.enable = true; + ombi.enable = true; + }; + + networking.nas-samba-share = { + enable = true; + allowUsers = [ config.my.services.plex.user ]; + }; + + virtualisation.proxmox.enable = true; + }; + + time.timeZone = "Europe/Rome"; + + # Extra packages + environment.systemPackages = with pkgs; [ ]; + + services = { + openssh.enable = true; + }; + + networking = { + # firewall.allowedTCPPorts = [ 80 ]; + nameservers = [ "192.168.1.2" ]; + }; + + system.stateVersion = "24.11"; +} diff --git a/modules/services/default.nix b/modules/services/default.nix index c43bdd4..1b9ec11 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -2,7 +2,8 @@ imports = [ ./media-mgr.nix ./nextcloud.nix - ./searx.nix + ./plex.nix + # ./searx.nix ./vaultwarden.nix ]; } diff --git a/modules/services/plex.nix b/modules/services/plex.nix new file mode 100644 index 0000000..7df5f2e --- /dev/null +++ b/modules/services/plex.nix @@ -0,0 +1,55 @@ +{ + lib, + config, + pkgs, + ... +}: +let + cfg = config.my.services.plex; +in +{ + + options.my.services.plex = { + enable = lib.mkEnableOption "Enable Plex, Tautulli and Ombi"; + tautulli.enable = lib.mkEnableOption "Enable Tautulli"; + ombi.enable = lib.mkEnableOption "Enable Ombi"; + }; + + config = lib.mkMerge [ + (lib.mkIf cfg.enable { + + services.plex = { + enable = true; + openFirewall = true; + extraPlugins = [ + (builtins.path { + name = "Audnexus.bundle"; + path = pkgs.fetchFromGitHub { + owner = "djdembeck"; + repo = "Audnexus.bundle"; + rev = "v1.3.2"; + sha256 = "sha256-BpwyedIjkXS+bHBsIeCpSoChyWCX5A38ywe71qo3tEI="; + }; + }) + ]; + }; + + }) + + (lib.mkIf cfg.tautulli.enable { + services.tautulli = { + enable = true; + port = 8181; + openFirewall = true; + }; + }) + + (lib.mkIf cfg.ombi.enable { + services.ombi = { + enable = true; + port = 5000; + openFirewall = true; + }; + }) + ]; +} diff --git a/ssh-keys.nix b/ssh-keys.nix index 623b8fb..a44aa5a 100644 --- a/ssh-keys.nix +++ b/ssh-keys.nix @@ -13,6 +13,7 @@ rec { nextcloud = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBhRxaMK+swWcbd6dyBvPw74EtB5mghjgBzmIhXy9cRt"; vaultwarden = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKaDk98q5v8KO3cgIWG+gpdrfbpw+qZQBujK0FV95TM1"; search = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBhRxaMK+swWcbd6dyBvPw74EtB5mghjgBzmIhXy9cRt"; # TODO: Update this key + plex = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINp9itRJGSSVWLxwrcudyGUNOOKl+qqtf+IzLHrhffyt"; }; # Machines able to provision other machines