diff --git a/configuration.nix b/configuration.nix index d83997d..6f78b1f 100644 --- a/configuration.nix +++ b/configuration.nix @@ -38,6 +38,7 @@ # $ nix-env -qaP | grep wget nixpkgs.overlays = [ (import ./overlays/riot-web.nix) + (import ./overlays/lidarr.nix) ]; environment.systemPackages = with pkgs; [ neovim diff --git a/overlays/lidarr.nix b/overlays/lidarr.nix new file mode 100644 index 0000000..c600c36 --- /dev/null +++ b/overlays/lidarr.nix @@ -0,0 +1,5 @@ +self: super: + +{ + lidarr = super.callPackage ../pkgs/lidarr { }; +} diff --git a/pkgs/lidarr/default.nix b/pkgs/lidarr/default.nix new file mode 100644 index 0000000..a20da5f --- /dev/null +++ b/pkgs/lidarr/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, mono58, sqlite, curl, libmediainfo, makeWrapper }: + +stdenv.mkDerivation rec { + name = "lidarr-${version}"; + version = "0.2.0.371"; + + src = fetchurl { + url = "https://github.com/lidarr/Lidarr/releases/download/v${version}/Lidarr.develop.${version}.linux.tar.gz"; + sha256 = "0lpyp9pj1cwlls4qkr5933k4ymhigp1f621clwrnxrr6hc2yhg90"; + }; + + buildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/{bin,share/${name}} + cp -r * $out/share/${name}/. + makeWrapper "${mono58}/bin/mono" $out/bin/lidarr \ + --add-flags "$out/share/${name}/Lidarr.exe" \ + --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ + curl sqlite libmediainfo ]} + ''; + + meta = with stdenv.lib; { + description = "A Usenet/BitTorrent music downloader."; + homepage = http://lidarr.audio/; + license = licenses.gpl3; + maintainers = with maintainers; [ nyanloutre ]; + platforms = platforms.all; + }; +} diff --git a/services.nix b/services.nix index b8ab4d8..8e186b9 100644 --- a/services.nix +++ b/services.nix @@ -14,6 +14,7 @@ in imports = [ ./services/haproxy-acme.nix ./services/mail-server.nix + ./services/lidarr.nix ]; services.haproxy-acme.enable = true; @@ -23,6 +24,7 @@ in emby = { ip = "127.0.0.1"; port = 8096; auth = false; }; radarr = { ip = "127.0.0.1"; port = 7878; auth = false; }; sonarr = { ip = "127.0.0.1"; port = 8989; auth = false; }; + lidarr = { ip = "127.0.0.1"; port = 8686; auth = false; }; transmission = { ip = "127.0.0.1"; port = 9091; auth = true; }; syncthing = { ip = "127.0.0.1"; port = 8384; auth = true; }; jackett = { ip = "127.0.0.1"; port = 9117; auth = true; }; diff --git a/services/lidarr.nix b/services/lidarr.nix new file mode 100644 index 0000000..8e98f14 --- /dev/null +++ b/services/lidarr.nix @@ -0,0 +1,24 @@ +{ config, pkgs, lib, ... }: + +{ + systemd.services.lidarr = { + description = "Lidarr"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + User = "lidarr"; + Group = "lidarr"; + ExecStart = "${pkgs.lidarr}/bin/lidarr"; + Restart = "on-failure"; + }; + }; + + users.extraUsers.lidarr = { + home = "/var/lib/lidarr"; + createHome = true; + group = "lidarr"; + isSystemUser = true; + }; + + users.extraGroups.lidarr = {}; +} diff --git a/users.nix b/users.nix index 25e0531..2215ef9 100644 --- a/users.nix +++ b/users.nix @@ -18,6 +18,6 @@ }; users.extraGroups.medias = - { members = [ "slimserver" "radarr" "sonarr" "emby" "transmission" ]; + { members = [ "slimserver" "radarr" "sonarr" "emby" "transmission" "lidarr" ]; }; }