sync setup not working yet
This commit is contained in:
parent
f5b76b2f83
commit
b4e4e9850b
4 changed files with 114 additions and 6 deletions
|
@ -31,7 +31,7 @@
|
||||||
#./tdarr.nix
|
#./tdarr.nix
|
||||||
|
|
||||||
./rbackup.nix
|
./rbackup.nix
|
||||||
./sync-transmission.nix
|
./sync-torrent.nix
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
containers.torrent = {
|
containers.sync-torrent = {
|
||||||
|
|
||||||
# mount host folders
|
# mount host folders
|
||||||
bindMounts = {
|
bindMounts = {
|
||||||
|
@ -14,7 +14,7 @@ in
|
||||||
isReadOnly = false;
|
isReadOnly = false;
|
||||||
};
|
};
|
||||||
lib = {
|
lib = {
|
||||||
hostPath = "/srv/transmission";
|
hostPath = "/srv/sync-torrent";
|
||||||
mountPoint = "/var/lib/transmission";
|
mountPoint = "/var/lib/transmission";
|
||||||
isReadOnly = false;
|
isReadOnly = false;
|
||||||
};
|
};
|
||||||
|
@ -31,7 +31,7 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
download-dir = "/media";
|
download-dir = "/media";
|
||||||
incomplete-dir = "/var/lib/transmission/incomplete";
|
incomplete-dir = "/var/lib/transmission/incomplete"; # todo put this somewhere with frequent snapshots but low keep.
|
||||||
incomplete-dir-enabled = true;
|
incomplete-dir-enabled = true;
|
||||||
message-level = 1;
|
message-level = 1;
|
||||||
umask = 2;
|
umask = 2;
|
||||||
|
@ -86,8 +86,8 @@ in
|
||||||
|
|
||||||
# host nginx setup
|
# host nginx setup
|
||||||
# ----------------
|
# ----------------
|
||||||
# curl -H "Host: transmission.robi.private" https://robi.private/ < will work
|
# curl -H "Host: sync.chungus.private" https://robi.private/ < will work
|
||||||
# curl -H "Host: transmission.robi.private" https://144.76.13.147/ < wont work
|
# curl -H "Host: sync.chungus.private" https://144.76.13.147/ < wont work
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
recommendedProxySettings = true;
|
recommendedProxySettings = true;
|
|
@ -56,6 +56,7 @@
|
||||||
|
|
||||||
|
|
||||||
./sync-opentracker.nix
|
./sync-opentracker.nix
|
||||||
|
./sync-torrent.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
107
nixos/machines/robi/sync-torrent.nix
Normal file
107
nixos/machines/robi/sync-torrent.nix
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
let
|
||||||
|
uiPort = 9099;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
|
||||||
|
containers.sync-torrent = {
|
||||||
|
|
||||||
|
# mount host folders
|
||||||
|
bindMounts = {
|
||||||
|
media = {
|
||||||
|
hostPath = "/media/new";
|
||||||
|
mountPoint = "/media"; # must be here otherwise transmission can't see the folder
|
||||||
|
isReadOnly = false;
|
||||||
|
};
|
||||||
|
lib = {
|
||||||
|
hostPath = "/srv/sync-torrent";
|
||||||
|
mountPoint = "/var/lib/transmission";
|
||||||
|
isReadOnly = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
autoStart = true;
|
||||||
|
|
||||||
|
config = { config, pkgs, lib, ... }: {
|
||||||
|
|
||||||
|
system.stateVersion = "22.11";
|
||||||
|
services.journald.extraConfig = "SystemMaxUse=1G";
|
||||||
|
|
||||||
|
services.transmission = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
download-dir = "/media";
|
||||||
|
incomplete-dir = "/var/lib/transmission/incomplete"; # todo put this somewhere with frequent snapshots but low keep.
|
||||||
|
incomplete-dir-enabled = true;
|
||||||
|
message-level = 1;
|
||||||
|
umask = 2;
|
||||||
|
rpc-whitelist-enabled = false;
|
||||||
|
rpc-host-whitelist-enabled = false;
|
||||||
|
rpc-port = uiPort;
|
||||||
|
rpc-enable = true;
|
||||||
|
rpc-bind-address = "0.0.0.0";
|
||||||
|
|
||||||
|
# "normal" speed limits
|
||||||
|
speed-limit-down-enabled = false;
|
||||||
|
speed-limit-down = 800;
|
||||||
|
speed-limit-up-enabled = true;
|
||||||
|
speed-limit-up = 3000;
|
||||||
|
upload-slots-per-torrent = 8;
|
||||||
|
# Queuing
|
||||||
|
# When true, Transmission will only download
|
||||||
|
# download-queue-size non-stalled torrents at once.
|
||||||
|
download-queue-enabled = true;
|
||||||
|
download-queue-size = 3;
|
||||||
|
|
||||||
|
# When true, torrents that have not shared data for
|
||||||
|
# queue-stalled-minutes are treated as 'stalled'
|
||||||
|
# and are not counted against the queue-download-size
|
||||||
|
# and seed-queue-size limits.
|
||||||
|
queue-stalled-enabled = true;
|
||||||
|
queue-stalled-minutes = 60;
|
||||||
|
|
||||||
|
# When true. Transmission will only seed seed-queue-size
|
||||||
|
# non-stalled torrents at once.
|
||||||
|
seed-queue-enabled = false;
|
||||||
|
seed-queue-size = 10;
|
||||||
|
|
||||||
|
# Enable UPnP or NAT-PMP.
|
||||||
|
peer-port = 51413;
|
||||||
|
port-forwarding-enabled = false;
|
||||||
|
# Start torrents as soon as they are added
|
||||||
|
|
||||||
|
start-added-torrents = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# open ports for logging
|
||||||
|
#networking.firewall.interfaces."ve-torrent".allowedTCPPorts =
|
||||||
|
# [ 5044 12304 12305 ];
|
||||||
|
#networking.firewall.interfaces."ve-torrent".allowedUDPPorts =
|
||||||
|
# [ 5044 12304 12305 ];
|
||||||
|
|
||||||
|
# host nginx setup
|
||||||
|
# ----------------
|
||||||
|
# curl -H "Host: sync.robi.private" https://robi.private/ < will work
|
||||||
|
# curl -H "Host: sync.robi.private" https://144.76.13.147/ < wont work
|
||||||
|
services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
recommendedProxySettings = true;
|
||||||
|
virtualHosts = {
|
||||||
|
"sync.${config.networking.hostName}.private" = {
|
||||||
|
extraConfig = ''
|
||||||
|
allow ${config.tinc.private.subnet};
|
||||||
|
deny all;
|
||||||
|
'';
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://127.0.0.1:${toString uiPort}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue