119 lines
2.8 KiB
Nix
119 lines
2.8 KiB
Nix
# {
|
|
# config,
|
|
# pkgs,
|
|
# lib,
|
|
# ...
|
|
# }:
|
|
|
|
# let
|
|
# sonarrPort = 8989;
|
|
# dataDir = "/var/lib/sonarr";
|
|
# downloadDir = "/downloads";
|
|
# mediaDir = "/media";
|
|
# sonarrUserId = config.users.users.nix-apps.uid;
|
|
# sonarrGroupId = config.users.groups.jallen-nas.gid;
|
|
# in
|
|
# {
|
|
# containers.sonarr = {
|
|
# autoStart = true;
|
|
# privateNetwork = true;
|
|
# hostAddress = "10.0.1.18";
|
|
# localAddress = "10.0.1.50";
|
|
# hostAddress6 = "fc00::1";
|
|
# localAddress6 = "fc00::2";
|
|
|
|
# config =
|
|
# {
|
|
# config,
|
|
# pkgs,
|
|
# lib,
|
|
# ...
|
|
# }:
|
|
# {
|
|
# # Enable Sonarr service
|
|
# services.sonarr = {
|
|
# enable = true;
|
|
# user = "sonarr";
|
|
# group = "media";
|
|
# dataDir = dataDir;
|
|
# };
|
|
|
|
# # Create required users and groups
|
|
# users.users.sonarr = {
|
|
# isSystemUser = true;
|
|
# uid = lib.mkForce sonarrUserId;
|
|
# group = "media";
|
|
# extraGroups = [ "downloads" ];
|
|
# };
|
|
|
|
# users.groups = {
|
|
# media = {
|
|
# gid = lib.mkForce sonarrGroupId;
|
|
# };
|
|
# downloads = { };
|
|
# };
|
|
|
|
# # System packages
|
|
# environment.systemPackages = with pkgs; [
|
|
# sqlite
|
|
# mono
|
|
# mediainfo
|
|
# ];
|
|
|
|
# # Create and set permissions for required directories
|
|
# system.activationScripts.sonarr-dirs = ''
|
|
# mkdir -p ${dataDir}
|
|
# mkdir -p ${downloadDir}
|
|
# mkdir -p ${mediaDir}
|
|
|
|
# chown -R sonarr:media ${dataDir}
|
|
# chown -R sonarr:media ${downloadDir}
|
|
# chown -R sonarr:media ${mediaDir}
|
|
|
|
# chmod -R 775 ${dataDir}
|
|
# chmod -R 775 ${downloadDir}
|
|
# chmod -R 775 ${mediaDir}
|
|
|
|
# '';
|
|
|
|
# networking = {
|
|
# firewall = {
|
|
# enable = true;
|
|
# allowedTCPPorts = [ sonarrPort ];
|
|
# };
|
|
# # Use systemd-resolved inside the container
|
|
# # Workaround for bug https://github.com/NixOS/nixpkgs/issues/162686
|
|
# useHostResolvConf = lib.mkForce false;
|
|
# };
|
|
|
|
# services.resolved.enable = true;
|
|
# system.stateVersion = "23.11";
|
|
# };
|
|
|
|
# # Bind mount directories from host
|
|
# bindMounts = {
|
|
# "/var/lib/sonarr" = {
|
|
# hostPath = "/media/nas/ssd/nix-app-data/sonarr";
|
|
# isReadOnly = false;
|
|
# };
|
|
# "/downloads" = {
|
|
# hostPath = "/media/nas/ssd/ssd_app_data/downloads";
|
|
# isReadOnly = false;
|
|
# };
|
|
# "/media" = {
|
|
# hostPath = "/media/nas/main/tv";
|
|
# isReadOnly = false;
|
|
# };
|
|
# };
|
|
# };
|
|
|
|
# networking.nat = {
|
|
# forwardPorts = [
|
|
# {
|
|
# destination = "10.0.1.50:8989";
|
|
# sourcePort = 8989;
|
|
# }
|
|
# ];
|
|
# };
|
|
# }
|