Parts of this documentation is also available in the Tvheadend man page.

Starting Tvheadend
If you already have Tvheadend up and running you can skip this part.

Command line options:

-f
Fork and become a background process (daemon). Default no.
-u username
Run as 'username'. Only applicable if daemonizing. Default is to use the uid of 1 (daemon on most systems).
-g groupname
Run as group 'groupname'. Only applicable if daemonizing. Default is to use the 'video' group. If the 'video' group does not exist, gid 1 (daemon) will be used.
-s path
Store settings in path. Default values varies depending on if daemonizing or not. See settings storage section below for details.
Default configuration
All configuration in Tvheadend is maintained via its embedded web server running on port 9981. Just point your browser to:

http://hostname:9981/

By default everyone (also from remote hosts)is allowed full access to all features / settings in the web user interface. If this is the first time you setup Tvheadend you are most encouraged to enter the web user interface, selected the 'Configuration' + 'Access Control' tab and make reasonable changes. Futher help / documentationcan be obtained inside the web interface.

Settings storage
Settings are stored in different locations depending on how Tvheadend was started.

If the (-s) argument is given, that path is always used.

Otherwise, tvheadend will try to store settings in /var/lib/hts/tvheadend. If this is not possible (due to access permission restriction) it will store it in the current user home directory under .hts/tvheadend.

If daemonizing, tvheadend will writes its running pid in /var/run/tvheadend.pid

Logging
All activity inside tvheadend is logged to syslog using log facility. Also, if logged in to the web interface you will receive the same log in the bottom tab (System log).
Permission to access video adapters
In order for Tvheadend to control video adapters on the system it must be granted access to those devices. Most systems have a 'video' group with write access to the video adapter devices. When Tvheadend is started as a daemon (if Tvheadend is installed from a distibution package this is most likely the way it is) it will change its primary group to 'video' in order to access these groups. If your system is configured in a different way you can either change the group membership of the video adapters (/dev/dvb, etc) or reconfigure the Tvheadend startup parameters.

If Tvheadend is started without the '-f' argument it will not daemonize nor change its primary userid/groupid. Rather it will run with the permissions granted to the user executing the binary. If that's the case you must make sure the current user is granted with access to the video devices.

Open ports
Tvheadend listens to the following TCP ports by default:
  • 9981 - HTTP server (web interface)
  • 9982 - HTSP server (Showtime protocol)
There is currently no way of disabling these TCP servers, nor bind the services to specific interfaces or other ports. To limit access, please read the section about 'Access Control' in the configuration chapter.
Building Tvheadend from source
If you want to build tvheadend from source, visit this page. Please notice that wiki development site only reflects the work in HEAD (-current). The instructions should not deviate much should you want to build a released version from source, but you never know.