Create README.md
This commit is contained in:
@@ -0,0 +1,116 @@
|
|||||||
|
# servarr.enable
|
||||||
|
|
||||||
|
This is a nixos module that aims to make the installation and management of
|
||||||
|
running the "*Arrs" as easy, and pain free, as possible.
|
||||||
|
|
||||||
|
**Features**
|
||||||
|
- **Run services through a VPN:** You can run any service that this module
|
||||||
|
supports through a VPN, fx `servarr.*.useVpn = true;`
|
||||||
|
- **Automatic Directories, Users and Permissions:** The module automatically
|
||||||
|
creates directories and users for your media library. It also sets sane
|
||||||
|
permissions.
|
||||||
|
- **State Management:** All services support state management and all state
|
||||||
|
that they manage is by default in `/data/.state/servarr/*`
|
||||||
|
- **Optional Automatic Port Forwarding:** This module has a UPNP module that
|
||||||
|
lets services request ports from your router automatically, if you enable it.
|
||||||
|
|
||||||
|
To run services through a VPN, you must provide a wg-quick config file:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
servarr.vpn = {
|
||||||
|
enable = true;
|
||||||
|
# IMPORTANT: 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";
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Full example can be seen below:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
servarr = {
|
||||||
|
enable = true;
|
||||||
|
# These two values are also the default, but you can set them to whatever
|
||||||
|
# else you want
|
||||||
|
mediaDir = "/data/media";
|
||||||
|
stateDir = "/data/media/.state/servarr";
|
||||||
|
|
||||||
|
vpn = {
|
||||||
|
enable = true;
|
||||||
|
# IMPORTANT: 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
|
||||||
|
nginx = {
|
||||||
|
enable = true;
|
||||||
|
domainName = "your.domain.com";
|
||||||
|
acmeMail = "your@email.com"; # Required for ACME-bot
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
transmission = {
|
||||||
|
enable = true;
|
||||||
|
useVpn = true;
|
||||||
|
peerPort = 50000; # Set this to the port forwarded by your VPN
|
||||||
|
};
|
||||||
|
|
||||||
|
# It is possible for this module to run the *Arrs through a VPN, but it
|
||||||
|
# is generally not recommended
|
||||||
|
sonarr.enable = true;
|
||||||
|
radarr.enable = true;
|
||||||
|
prowlarr.enable = true;
|
||||||
|
readarr.enable = true;
|
||||||
|
lidarr.enable = true;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
## Todo
|
||||||
|
|
||||||
|
### DDNS
|
||||||
|
|
||||||
|
Add DDNS-support.
|
||||||
|
|
||||||
|
- [ ] Njalla
|
||||||
|
|
||||||
|
### State Directories
|
||||||
|
|
||||||
|
- [ ] Jellyfin: PR is merged, wait for nixpkgs to update
|
||||||
|
- [ ] prowlarr: Works for vpn, probably need to create my own prowlarr systemd service...
|
||||||
|
- [x] sonarr: Works
|
||||||
|
- [x] radarr: Works
|
||||||
|
- [x] lidarr: Works
|
||||||
|
- [x] readarr: Works
|
||||||
|
|
||||||
|
### Buildarr
|
||||||
|
|
||||||
|
Using buildarr would allow setup services to integrate with each other upon
|
||||||
|
activation with no user input, definitely nice.
|
||||||
|
|
||||||
|
Needs to be added to nixpkgs, not too hard, but is not worth it if the
|
||||||
|
project is abandoned
|
||||||
|
|
||||||
|
- [ ] Package with nix
|
||||||
|
- [ ] Add to nixpkgs
|
||||||
|
|
||||||
|
### DNS leaks
|
||||||
|
|
||||||
|
Prevent DNS leaks _without using containerization,_ as is currently done. No
|
||||||
|
idea how this could be done, but would simplify things _a lot_.
|
||||||
|
|
||||||
|
### cross-seed
|
||||||
|
|
||||||
|
Create a cross-seed service.
|
||||||
|
|
||||||
|
- [ ] Package with nix
|
||||||
|
- [ ] Create nix service daemon
|
||||||
|
- [ ] Add to nixpkgs
|
||||||
|
|
||||||
|
### UPNP
|
||||||
|
|
||||||
|
I have created and tested a UPNP module, I just need to elegantly integrate
|
||||||
|
it to the module.
|
||||||
Reference in New Issue
Block a user