1{ config, pkgs, lib, mono, ... }:
2
3with lib;
4
5let
6 cfg = config.services.sonarr;
7in
8{
9 options = {
10 services.sonarr = {
11 enable = mkEnableOption "Sonarr";
12 };
13 };
14
15 config = mkIf cfg.enable {
16 systemd.services.sonarr = {
17 description = "Sonarr";
18 after = [ "network.target" ];
19 wantedBy = [ "multi-user.target" ];
20 preStart = ''
21 test -d /var/lib/sonarr/ || {
22 echo "Creating sonarr data directory in /var/lib/sonarr/"
23 mkdir -p /var/lib/sonarr/
24 }
25 chown -R sonarr /var/lib/sonarr/
26 chmod 0700 /var/lib/sonarr/
27 '';
28
29 serviceConfig = {
30 Type = "simple";
31 User = "sonarr";
32 Group = "nogroup";
33 PermissionsStartOnly = "true";
34 ExecStart = "${pkgs.sonarr}/bin/NzbDrone --no-browser";
35 Restart = "on-failure";
36 };
37 };
38
39 users.extraUsers.sonarr = {
40 home = "/var/lib/sonarr";
41 };
42
43 };
44}