add tdarr

This commit is contained in:
Ingolf Wagner 2023-05-04 20:59:26 +02:00
parent d2008a09e5
commit 56b1c6c29d
No known key found for this signature in database
GPG key ID: 76BF5F1928B9618B
4 changed files with 96 additions and 24 deletions

View file

@ -17,7 +17,10 @@
#./borg.nix #./borg.nix
#./taskwarrior-pushover.nix #./taskwarrior-pushover.nix
./tdarr.nix
#./jellyfin.nix #./jellyfin.nix
#./wireguard.nix #./wireguard.nix
# logging # logging
@ -28,7 +31,6 @@
./telegraf.nix ./telegraf.nix
#./home-display.nix #./home-display.nix
#./tdarr.nix
./rbackup.nix ./rbackup.nix
./sync-torrent.nix ./sync-torrent.nix

View file

@ -10,7 +10,7 @@
# #
# #
{pkgs, ...}: { pkgs, ... }:
{ {
environment.systemPackages = [ environment.systemPackages = [
(pkgs.writers.writeBashBin "torrent-sync" '' (pkgs.writers.writeBashBin "torrent-sync" ''

View file

@ -31,6 +31,7 @@ in
services.transmission = { services.transmission = {
enable = true; enable = true;
settings = { settings = {
download-dir = "/media"; download-dir = "/media";
incomplete-dir = "/var/lib/transmission/incomplete"; # todo put this somewhere with frequent snapshots but low keep. incomplete-dir = "/var/lib/transmission/incomplete"; # todo put this somewhere with frequent snapshots but low keep.

View file

@ -0,0 +1,69 @@
{ config, lib, pkgs, ... }:
{
# To set password:
# nix-shell -p samba --run "smbpasswd -a media"
custom.samba-share.enable = true;
custom.samba-share.private.media = {
folder = "/media";
users = "media";
};
users.groups."media".gid = config.ids.gids.transmission;
users.users."media" = {
uid = config.ids.uids.transmission;
group = "media";
};
services.permown."/media" = {
owner = "media";
group = "media";
};
# https://docs.tdarr.io/docs/installation/docker/run-compose
virtualisation.oci-containers = {
#backend = "podman";
containers.tdarr = {
volumes = [
"/srv/tdarr/server:/app/server"
"/srv/tdarr/configs:/app/configs"
"/srv/tdarr/logs:/app/logs"
"/srv/tdarr/transcode_cache:/temp"
"/media:/media"
];
environment = {
serverIP = "0.0.0.0";
serverPort = "8266";
webUIPort = "8265";
internalNode = "false";
inContainer = "true";
nodeName = "ServerNode";
TZ = "Europe/London";
PUID = toString config.ids.uids.transmission;
PGID = toString config.ids.gids.transmission;
};
ports = [
"8265:8265" # WebUI
"8266:8266" # server port
];
image = "ghcr.io/haveagitgat/tdarr:latest"; # Warning: if the tag does not change, the image will not be updated
extraOptions = [ "--network=bridge" ];
};
};
networking.firewall.allowedTCPPorts = [ 8266 ];
networking.firewall.allowedUDPPorts = [ 8266 ];
services.nginx.virtualHosts."tdarr.${config.networking.hostName}.private" = {
serverAliases = [ "tdarr.${config.networking.hostName}" ];
extraConfig = ''
allow ${config.tinc.private.subnet};
deny all;
'';
locations."/" = {
proxyPass = "http://localhost:8265";
proxyWebsockets = true;
};
};
}