This commit is contained in:
tulg 2026-05-06 16:04:54 +03:00
parent 0875e05f71
commit 8c44e6e6cc
7 changed files with 284 additions and 15 deletions

View file

@ -0,0 +1,35 @@
{
config,
lib,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix
./disko.nix
./nixarr.nix
../../modules/nixos/networking/ssh.nix
../../modules/nixos/users/tulg.nix
];
networking.hostName = "pirate";
environment.systemPackages = with pkgs; [
nano
fastfetch
kitty
];
services.openssh = {
settings = {
AllowTcpForwarding = true;
X11Forwarding = true;
GatewayPorts = "yes";
};
};
programs.bash.interactiveShellInit = ''
PS1="\[\e[38;5;177m\]\u\[\e[0m\]@\[\e[38;5;220m\]\h\[\e[0m\] \[\e[38;5;33m\]\w\[\e[0m\] \$ "
'';
nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = ["nix-command" "flakes"];
system.stateVersion = "25.05";
}

37
hosts/pirate/disko.nix Normal file
View file

@ -0,0 +1,37 @@
{
disko.devices = {
disk = {
main = {
type = "disk";
device = "/dev/sda";
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02";
priority = 1;
};
ESP = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
}

View file

@ -0,0 +1,17 @@
{
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
boot.loader.grub = {
enable = true;
efiSupport = true;
};
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}

65
hosts/pirate/nixarr.nix Normal file
View file

@ -0,0 +1,65 @@
{
nixarr = {
enable = true;
# These two values are also the default, but you can set them to whatever
# else you want
# WARNING: Do _not_ set them to `/home/user/whatever`, it will not work!
mediaDir = "/data/media";
stateDir = "/data/media/.state/nixarr";
vpn = {
enable = false;
# WARNING: This file must _not_ be in the config git directory
# You can usually get this wireguard file from your VPN provider
wgConf = "/data/.secret/wg.conf";
};
jellyfin = {
enable = true;
# These options set up a nginx HTTPS reverse proxy, so you can access
# Jellyfin on your domain with HTTPS
expose.https = {
enable = true;
domainName = "your.domain.com";
acmeMail = "your@email.com"; # Required for ACME-bot
};
};
qbittorrent = {
enable = true;
#peerPort = 50000; # Set this to the port forwarded by your VPN
webuiPort = 5252; # Port for the qui WebUI (default)
openFirewall = true;
# Disable DHT/PeX for private trackers (optional)
# privateTrackers.disableDhtPex = true;
# Extra qBittorrent configuration (optional)
# See: https://github.com/qbittorrent/qBittorrent/wiki/Explanation-of-Options-in-qBittorrent
extraConfig = {
BitTorrent = {
"Session\\MaxActiveDownloads" = 3;
"Session\\MaxActiveTorrents" = 5;
};
};
};
prowlarr = {
enable = true;
openFirewall = true;
settings-sync.enable-nixarr-apps = true;
# Define tags for organizing indexers
};
# It is possible for this module to run the *Arrs through a VPN, but it
# is generally not recommended, as it can cause rate-limiting issues.
bazarr.enable = false;
lidarr.enable = false;
#prowlarr.enable = true;
radarr.enable = false;
sonarr.enable = false;
};
services.prowlarr.settings.auth.required = "DisabledForLocalAddresses";
networking.firewall.allowedTCPPorts = [6881];
}