This is a Nixos module that aims to make the installation and management of a home media server as easy, and pain free, as possible.
If you have problems or feedback, feel free to join the discord.
Note that this is still in a somewhat beta state, beware!
If you do still use it, any feedback would be greatly appreciated.
nixarr.transmission.vpn.enable = true;
/data/.state/nixarr/*
nixarr.ddns.njalla.enable
option to dynamically update a DNS record that points to the dynamic public
IP of your server or your public VPN IP.To run services through a VPN, you must provide a wg-quick config file, that is provided by most VPN providers:
nixarr.vpn = {
enable = true;
# 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";
}
It is possible, but not recommended, to run the "*Arrs" behind a VPN, because it can cause rate limiting issues.
The documentation for the options can be found here
If you want to know how to setup DDNS with Njalla, how to manage secrets in nix or examples, check out the wiki
See the wiki.
To use this module, add it to your flake inputs in your nix flake file, like shown in this example flake:
{
description = "Your nix flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixarr.url = "github:rasmus-kirk/nixarr";
};
outputs = {
nixpkgs,
nixarr,
...
}@inputs: {
nixosConfigurations = {
servarr = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./nixos/servarr/configuration.nix
nixarr.nixosModules.default
];
specialArgs = { inherit inputs; };
};
};
};
}
Your VPN-provider should at the very least support wg-quick configurations, this module does not, and will not, support any other setup. Most VPN-providers should support this ATM.
Secondly, it's recommended that the VPN you're using has support for static port forwarding as this module has no builtin support for dynamic port forwarding. I suggest AirVpn, since they support static port forwarding, support wg-quick configurations and accept Monero, but you can use whatever you want.
Notice: There is an open issue regarding the DNS servers of AirVPN.
If you need a domain registrar I suggest Njalla, they are privacy-oriented, support DDNS and accept Monero. Note that you don't technically "own" the domain for privacy reasons, they "lease" it to you. However, this also means that you don't have to give any personal data.
A big thanks to Maroka-chan for the heavy lifting on the VPN-submodule, that was integral to making this project possible.
I would also like to thank Lasse for helping out with the website.