mirror of
https://github.com/callumio/nixfiles.git
synced 2025-12-17 03:29:20 +00:00
initial commit
This commit is contained in:
commit
c45c7f26a4
28 changed files with 1531 additions and 0 deletions
148
hosts/hermes/media.nix
Normal file
148
hosts/hermes/media.nix
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
mediaDir = "/var/lib/media";
|
||||
in {
|
||||
users = {
|
||||
groups.multimedia = {gid = 994;};
|
||||
users."root".extraGroups = ["multimedia"];
|
||||
users."media".extraGroups = ["multimedia"];
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d ${mediaDir} 0775 - multimedia - -"
|
||||
|
||||
"d ${mediaDir}/torrents 0775 - multimedia -"
|
||||
"d ${mediaDir}/torrents/Downloads 0775 - multimedia -"
|
||||
|
||||
"d ${mediaDir}/usenet 0775 - multimedia -"
|
||||
"d ${mediaDir}/usenet/Downloads 0775 - multimedia -"
|
||||
"d ${mediaDir}/usenet/Done 0775 - multimedia -"
|
||||
|
||||
"d ${mediaDir}/library/Movies 0775 - multimedia - -"
|
||||
"d ${mediaDir}/library/TV 0775 - multimedia - -"
|
||||
"d ${mediaDir}/library/Music 0775 - multimedia - -"
|
||||
|
||||
"d /var/lib/tdarr 0775 - multimedia - "
|
||||
"d /var/lib/tdarr/server 0775 - multimedia - "
|
||||
"d /var/lib/tdarr/configs 0775 - multimedia - "
|
||||
"d /var/lib/tdarr/logs 0775 - multimedia - "
|
||||
];
|
||||
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
vaapiIntel = pkgs.vaapiIntel.override {enableHybridCodec = true;};
|
||||
};
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver
|
||||
intel-vaapi-driver # previously vaapiIntel
|
||||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in)
|
||||
vpl-gpu-rt # QSV on 11th gen or newer
|
||||
#intel-media-sdk # QSV up to 11th gen
|
||||
];
|
||||
};
|
||||
|
||||
services = {
|
||||
caddy = {
|
||||
enable = true;
|
||||
email = "acme@cleslie.uk";
|
||||
virtualHosts = {
|
||||
"media.cleslie.uk".extraConfig = ''
|
||||
redir /radarr /radarr/
|
||||
redir /sonarr /sonarr/
|
||||
redir /lidarr /lidarr/
|
||||
redir /bazarr /bazarr/
|
||||
redir /prowlarr /prowlarr/
|
||||
redir /tdarr /tdarr/
|
||||
redir /deluge /deluge/
|
||||
reverse_proxy /radarr/* 127.0.0.1:7878
|
||||
reverse_proxy /sonarr/* 127.0.0.1:8989
|
||||
reverse_proxy /lidarr/* 127.0.0.1:8686
|
||||
reverse_proxy /bazarr/* 127.0.0.1:6767
|
||||
reverse_proxy /prowlarr/* 127.0.0.1:9696
|
||||
reverse_proxy /tdarr/* http://127.0.0.1:8265 {
|
||||
header_up Host {host}
|
||||
header_up X-Real-IP {remote}
|
||||
header_up X-Forwarded-For {remote}
|
||||
}
|
||||
route /deluge/* {
|
||||
uri strip_prefix deluge
|
||||
reverse_proxy 127.0.0.1:8112 {
|
||||
header_up X-Real-IP {remote}
|
||||
header_up X-Deluge-Base "/deluge"
|
||||
|
||||
}
|
||||
}
|
||||
'';
|
||||
"watch.cleslie.uk".extraConfig = ''
|
||||
reverse_proxy http://localhost:8096
|
||||
'';
|
||||
"request.cleslie.uk".extraConfig = ''
|
||||
reverse_proxy http://localhost:5055
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
homepage-dashboard = {
|
||||
enable = false;
|
||||
};
|
||||
|
||||
jellyfin = {
|
||||
enable = true;
|
||||
package = pkgs.jellyfin;
|
||||
group = "multimedia";
|
||||
openFirewall = false;
|
||||
};
|
||||
jellyseerr = {
|
||||
enable = true;
|
||||
openFirewall = false;
|
||||
};
|
||||
sonarr = {
|
||||
enable = true;
|
||||
group = "multimedia";
|
||||
openFirewall = false;
|
||||
};
|
||||
radarr = {
|
||||
enable = true;
|
||||
group = "multimedia";
|
||||
openFirewall = false;
|
||||
};
|
||||
bazarr = {
|
||||
enable = true;
|
||||
group = "multimedia";
|
||||
openFirewall = false;
|
||||
};
|
||||
prowlarr = {
|
||||
enable = true;
|
||||
openFirewall = false;
|
||||
};
|
||||
deluge = {
|
||||
enable = true;
|
||||
group = "multimedia";
|
||||
web.enable = true;
|
||||
web.openFirewall = false;
|
||||
dataDir = "${mediaDir}/torrents";
|
||||
declarative = true;
|
||||
config = {
|
||||
enabled_plugins = ["Label"];
|
||||
outgoing_interface = "wg1";
|
||||
allow_remote = true;
|
||||
openFirewall = false;
|
||||
sequential_download = true;
|
||||
};
|
||||
authFile = pkgs.writeTextFile {
|
||||
name = "deluge-auth";
|
||||
text = ''
|
||||
localclient::10
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue