sync setup not working yet

This commit is contained in:
Ingolf Wagner 2023-05-04 10:12:52 +02:00
parent f5b76b2f83
commit b4e4e9850b
Signed by: palo
GPG key ID: 76BF5F1928B9618B
4 changed files with 114 additions and 6 deletions

View file

@ -31,7 +31,7 @@
#./tdarr.nix #./tdarr.nix
./rbackup.nix ./rbackup.nix
./sync-transmission.nix ./sync-torrent.nix
]; ];

View file

@ -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;

View file

@ -56,6 +56,7 @@
./sync-opentracker.nix ./sync-opentracker.nix
./sync-torrent.nix
]; ];

View 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}";
};
};
};
};
}