From 9aec9d2a3d7072b9d4ca7d075b57ff23df9f400e Mon Sep 17 00:00:00 2001 From: Sridhar Ratnakumar Date: Fri, 10 Jan 2025 15:59:55 -0500 Subject: [PATCH] home-media: all local --- configurations/nixos/pureintent/default.nix | 8 --- .../nixos/pureintent/home-media.nix | 9 +-- configurations/nixos/vixen/default.nix | 6 +- configurations/nixos/vixen/home-media.nix | 71 +++++++++++++++++++ 4 files changed, 75 insertions(+), 19 deletions(-) create mode 100644 configurations/nixos/vixen/home-media.nix diff --git a/configurations/nixos/pureintent/default.nix b/configurations/nixos/pureintent/default.nix index 240b749..f27b167 100644 --- a/configurations/nixos/pureintent/default.nix +++ b/configurations/nixos/pureintent/default.nix @@ -11,8 +11,6 @@ in imports = [ self.nixosModules.default ./configuration.nix - (self + /webapps/host.nix) - ./home-media.nix ]; services.openssh.enable = true; @@ -21,12 +19,6 @@ in enable = true; package = pkgs.netdataCloud; }; - services.syncthing = rec { - enable = true; - user = flake.config.me.username; - dataDir = "/home/${user}/.syncthing"; - guiAddress = "100.113.68.55:8384"; - }; programs.nix-ld.enable = true; # for vscode server diff --git a/configurations/nixos/pureintent/home-media.nix b/configurations/nixos/pureintent/home-media.nix index 45b855e..eb8e7cc 100644 --- a/configurations/nixos/pureintent/home-media.nix +++ b/configurations/nixos/pureintent/home-media.nix @@ -1,13 +1,9 @@ -{ flake, config, pkgs, ... }: +{ pkgs, ... }: -let - inherit (flake) inputs; - inherit (inputs) self; -in { services.jellyfin = { enable = true; - openFirewall = true; + # openFirewall = true; }; environment.systemPackages = with pkgs; [ yt-dlp @@ -15,6 +11,7 @@ in aria2 tmux zellij + vlc ]; /* Not using this diff --git a/configurations/nixos/vixen/default.nix b/configurations/nixos/vixen/default.nix index 84ef7a7..ca21113 100644 --- a/configurations/nixos/vixen/default.nix +++ b/configurations/nixos/vixen/default.nix @@ -9,6 +9,7 @@ in self.nixosModules.default inputs.nixos-hardware.nixosModules.lenovo-thinkpad-p14s-amd-gen4 ./configuration.nix + ./home-media.nix (self + /modules/nixos/linux/distributed-build.nix) (self + /modules/nixos/linux/gui/logseq.nix) (self + /modules/nixos/linux/gui/hyprland) @@ -24,11 +25,6 @@ in services.openssh.enable = true; services.tailscale.enable = true; # services.fprintd.enable = true; -- bad UX - services.syncthing = rec { - enable = true; - user = flake.config.me.username; - dataDir = "/home/${user}/.syncthing"; - }; programs.nix-ld.enable = true; # for vscode server programs.steam.enable = true; diff --git a/configurations/nixos/vixen/home-media.nix b/configurations/nixos/vixen/home-media.nix new file mode 100644 index 0000000..dad42e7 --- /dev/null +++ b/configurations/nixos/vixen/home-media.nix @@ -0,0 +1,71 @@ +{ pkgs, ... }: + +{ + services.jellyfin = { + enable = true; + # openFirewall = true; + }; + environment.systemPackages = with pkgs; [ + yt-dlp + ffmpeg + aria2 + tmux + zellij + ]; + + /* Not using this + services.transmission = { + enable = true; + group = "jellyfin"; + openRPCPort = true; + settings = { + rpc-bind-address = "localhost"; + rpc-whitelist-enabled = false; # ACL managed through Tailscale + rpc-host-whitelist = "pureintent pureintent.rooster-blues.ts.net"; + download-dir = "/Self/Downloads"; + trash-original-torrent-files = true; + }; + }; + */ + + /* Disabled, because jellyfin has issues + age.secrets = { + "pureintent-basic-auth.age" = { + file = self + /secrets/pureintent-basic-auth.age; + owner = "nginx"; + }; + }; + services.nginx = { + enable = true; + recommendedProxySettings = true; + recommendedTlsSettings = true; + # virtualHosts."pureintent.rooster-blues.ts.net" = { + virtualHosts = rec { + "pureintent.rooster-blues.ts.net" = pureintent; + "pureintent" = { + locations = { + # Return index.html with likns to other two sites + "/" = { + extraConfig = '' + default_type text/html; + ''; + return = "200 ''"; + }; + # Transmission + "/transmission" = { + proxyPass = "http://localhost:9091/transmission"; + proxyWebsockets = true; + # transmission has no login page, so use basic auth + basicAuthFile = config.age.secrets."pureintent-basic-auth.age".path; + }; + # Jellyfin + "/web" = { + proxyPass = "http://localhost:8096"; + proxyWebsockets = true; + }; + }; + }; + }; + }; + */ +}