commit
4b661693cb
@ -212,6 +212,7 @@
|
|||||||
shell = "Shell Turner <cam.turn@gmail.com>";
|
shell = "Shell Turner <cam.turn@gmail.com>";
|
||||||
shlevy = "Shea Levy <shea@shealevy.com>";
|
shlevy = "Shea Levy <shea@shealevy.com>";
|
||||||
simons = "Peter Simons <simons@cryp.to>";
|
simons = "Peter Simons <simons@cryp.to>";
|
||||||
|
simonvandel = "Simon Vandel Sillesen <simon.vandel@gmail.com>";
|
||||||
sjagoe = "Simon Jagoe <simon@simonjagoe.com>";
|
sjagoe = "Simon Jagoe <simon@simonjagoe.com>";
|
||||||
sjmackenzie = "Stewart Mackenzie <setori88@gmail.com>";
|
sjmackenzie = "Stewart Mackenzie <setori88@gmail.com>";
|
||||||
skeidel = "Sven Keidel <svenkeidel@gmail.com>";
|
skeidel = "Sven Keidel <svenkeidel@gmail.com>";
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para><literal>brltty</literal></para></listitem>
|
<listitem><para><literal>brltty</literal></para></listitem>
|
||||||
<listitem><para><literal>marathon</literal></para></listitem>
|
<listitem><para><literal>marathon</literal></para></listitem>
|
||||||
|
<listitem><para><literal>Tvheadend</literal></para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -221,6 +221,7 @@
|
|||||||
skydns = 197;
|
skydns = 197;
|
||||||
ripple-rest = 198;
|
ripple-rest = 198;
|
||||||
nix-serve = 199;
|
nix-serve = 199;
|
||||||
|
tvheadend = 200;
|
||||||
|
|
||||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||||
|
|
||||||
@ -420,6 +421,7 @@
|
|||||||
#skydns = 197; #unused
|
#skydns = 197; #unused
|
||||||
#ripple-rest = 198; #unused
|
#ripple-rest = 198; #unused
|
||||||
#nix-serve = 199; #unused
|
#nix-serve = 199; #unused
|
||||||
|
#tvheadend = 200; #unused
|
||||||
|
|
||||||
# When adding a gid, make sure it doesn't match an existing
|
# When adding a gid, make sure it doesn't match an existing
|
||||||
# uid. Users and groups with the same name should have equal
|
# uid. Users and groups with the same name should have equal
|
||||||
|
@ -333,6 +333,7 @@
|
|||||||
./services/networking/tftpd.nix
|
./services/networking/tftpd.nix
|
||||||
./services/networking/tlsdated.nix
|
./services/networking/tlsdated.nix
|
||||||
./services/networking/tox-bootstrapd.nix
|
./services/networking/tox-bootstrapd.nix
|
||||||
|
./services/networking/tvheadend.nix
|
||||||
./services/networking/unbound.nix
|
./services/networking/unbound.nix
|
||||||
./services/networking/unifi.nix
|
./services/networking/unifi.nix
|
||||||
./services/networking/vsftpd.nix
|
./services/networking/vsftpd.nix
|
||||||
|
61
nixos/modules/services/networking/tvheadend.nix
Normal file
61
nixos/modules/services/networking/tvheadend.nix
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
{ config, coreutils, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.services.tvheadend;
|
||||||
|
pidFile = "${config.users.extraUsers.tvheadend.home}/tvheadend.pid";
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
services.tvheadend = {
|
||||||
|
enable = mkEnableOption "Tvheadend";
|
||||||
|
httpPort = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 9981;
|
||||||
|
description = "Port to bind HTTP to.";
|
||||||
|
};
|
||||||
|
|
||||||
|
htspPort = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 9982;
|
||||||
|
description = "Port to bind HTSP to.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
users.extraUsers.tvheadend = {
|
||||||
|
description = "Tvheadend Service user";
|
||||||
|
home = "/var/lib/tvheadend";
|
||||||
|
createHome = true;
|
||||||
|
uid = config.ids.uids.tvheadend;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.tvheadend = {
|
||||||
|
description = "Tvheadend TV streaming server";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "forking";
|
||||||
|
PIDFile = pidFile;
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = 5;
|
||||||
|
User = "tvheadend";
|
||||||
|
Group = "video";
|
||||||
|
ExecStart = ''
|
||||||
|
${pkgs.tvheadend}/bin/tvheadend \
|
||||||
|
--http_port ${toString cfg.httpPort} \
|
||||||
|
--htsp_port ${toString cfg.htspPort} \
|
||||||
|
-f \
|
||||||
|
-C \
|
||||||
|
-p ${pidFile} \
|
||||||
|
-u tvheadend \
|
||||||
|
-g video
|
||||||
|
'';
|
||||||
|
ExecStop = "${pkgs.coreutils}/bin/rm ${pidFile}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
31
pkgs/servers/tvheadend/default.nix
Normal file
31
pkgs/servers/tvheadend/default.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{avahi, dbus, fetchurl, git, gzip, libav, libiconv, openssl, pkgconfig, python, stdenv, which, zlib}:
|
||||||
|
|
||||||
|
let version = "4.0.4";
|
||||||
|
pkgName = "tvheadend"; in
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "${pkgName}-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/tvheadend/tvheadend/archive/v${version}.tar.gz";
|
||||||
|
sha256 = "acc5c852bccb32d6a281f523e78a1cceb4d41987fe015aba3f66e1898b02c168";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
buildInputs = [ avahi dbus git gzip libav libiconv openssl pkgconfig python which zlib];
|
||||||
|
|
||||||
|
preConfigure = "patchShebangs ./configure";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "TV steaming server";
|
||||||
|
longDescription = ''
|
||||||
|
Tvheadend is a TV streaming server and recorder for Linux, FreeBSD and Android
|
||||||
|
supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, SAT>IP and HDHomeRun as input sources.
|
||||||
|
Tvheadend offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming.'';
|
||||||
|
homepage = "https://tvheadend.org";
|
||||||
|
license = stdenv.lib.licenses.gpl3;
|
||||||
|
platforms = stdenv.lib.platforms.unix;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.simonvandel ];
|
||||||
|
};
|
||||||
|
}
|
@ -14775,6 +14775,8 @@ let
|
|||||||
|
|
||||||
tup = callPackage ../development/tools/build-managers/tup { };
|
tup = callPackage ../development/tools/build-managers/tup { };
|
||||||
|
|
||||||
|
tvheadend = callPackage ../servers/tvheadend { };
|
||||||
|
|
||||||
utf8proc = callPackage ../development/libraries/utf8proc { };
|
utf8proc = callPackage ../development/libraries/utf8proc { };
|
||||||
|
|
||||||
vbam = callPackage ../misc/emulators/vbam {
|
vbam = callPackage ../misc/emulators/vbam {
|
||||||
|
Loading…
Reference in New Issue
Block a user