Permanently Deleted
Honestly, taking the time learn Docker and then learn more about the specific containers that you want to use is probably going to be the easiest way forward in your position. If you have any specific questions about Docker or the containers you're looking at, I can try to help.
When it comes to network mounts, I've found it a lot easier to use rclone for that purpose, and that's currently what I use for the backend of my Plex server.
I installed CasaOs on Debian with a one line command on a laptop with a brocken screen, then from another laptop on my network I installed jellyfin within Casa Os app store, I plugged my multimedia hard drive, now everyone at home can watch movies and shows from their device
- Disregard Docker. You've got NixOS, you don't need Docker. Thank god.
- Configure the services:
{config, pkgs, ...}: { # Jellyfin services.jellyfin.enable = true; # enable the other *arrs, whichever you want to use services.sonarr.enable = true; # qbittorrent user and service users = { groups.torrent = { # put users that should be allowed to access torrented media members = [config.services.jellyfin.user "you"]; }; users.torrent = { isSystemUser = true; description = "qbittorrent user"; group = "torrent"; createHome = true; home = "/var/lib/torrent"; }; }; systemd.services.qbittorrent = let qbittorrent = pkgs.qbittorrent.override {guiSupport = false;}; in { enable = true; description = "qbittorrent daemon"; documentation = ["man:qbittorrent-nox(1)"]; wants = ["network-online.target"]; after = ["network-online.target" "nss-lookup.target"]; wantedBy = ["multi-user.target"]; serviceConfig = { ExecStart = "${qbittorrent}/bin/qbittorrent-nox"; User = "torrent"; }; }; # VPN configuration networking.wg-quick.interfaces = { mullvad = { # Insert options for Mullvad address = [...]; dns = [...]; peers = [ { publicKey = "..."; allowedIPs = ["0.0.0.0/0" "::0/0"]; endpoint = "..."; } ]; }; }; # file server, SMB unfortunately works the best for all the operating systems services.samba = { enable = true; shares = { storage = { # where do you store your stuff? path = "/path/to/linux/ISOs"; browseable = "yes"; "read only" = "no"; "guest ok" = "yes"; "create mask" = "0644"; "directory mask" = "0755"; }; }; extraConfig = '' workgroup = WORKGROUP server string = ${config.networking.hostName} netbios name = ${config.networking.hostName} guest account = nobody map to guest = bad user # No printers load printers = no printing = bsd printcap name = /dev/null disable spoolss = yes show add printer wizard = no dos charset = CP850 unix charset = UTF-8 unix extensions = yes ; mangled names = no map archive = no map system = no map hidden = no ''; }; }
This is a minimal config that doesn't set up specific stuff like qbittorrent's file storage location or network interface, I'd tell you how to do it but I don't actually have such a setup. This is just copied from what I have/had in my configuration and looking up services on https://search.nixos.org (very useful site if you don't know about it).
Use Void as the basis. Most of the tools you'll need are in the repo (add the non-free repo as well), the ones that aren't, are in xbps-src and you compile from source (it's only a few commands after you clone the repo).
Regarding samba, holler, I'll share what I use. Also, don't forget to install nss-mdns for discoverability. Also holler if you need help getting the services to autostart on boot up.