Convert INSTALL.md document to markdown

This commit is contained in:
marecabo 2020-06-13 23:50:32 +02:00
parent 0d61f5524e
commit 8e22f8db9a
2 changed files with 236 additions and 205 deletions

View File

@ -1,50 +1,46 @@
Installation instructions for forked-daapd # Installation instructions for forked-daapd
------------------------------------------
This document contains instructions for installing forked-daapd from the git This document contains instructions for installing forked-daapd from the git
tree. tree.
The source for this version of forked-daapd can be found here: The source for this version of forked-daapd can be found here:
[ejurgensen/forked-daapd](https://github.com/ejurgensen/forked-daapd.git)
<https://github.com/ejurgensen/forked-daapd.git>
The original (now unmaintained) source can be found here: The original (now unmaintained) source can be found here:
[jblache/forked-daapd](http://git.debian.org/?p=users/jblache/forked-daapd.git)
<http://git.debian.org/?p=users/jblache/forked-daapd.git> ## Quick version for Raspbian (Raspberry Pi)
Quick version for Raspbian (Raspberry Pi)
-----------------------------------------
See the instructions here: See the instructions here:
http://www.raspberrypi.org/phpBB3/viewtopic.php?t=49928 [Improved forked-daapd (iTunes server) -
Raspberry Pi Forums](http://www.raspberrypi.org/phpBB3/viewtopic.php?t=49928)
## Quick version for Debian/Ubuntu users
Quick version for Debian/Ubuntu users
-------------------------------------
If you are the lucky kind, this should get you all the required tools and If you are the lucky kind, this should get you all the required tools and
libraries: libraries:
sudo apt-get install \ ```bash
sudo apt-get install \
build-essential git autotools-dev autoconf automake libtool gettext gawk \ build-essential git autotools-dev autoconf automake libtool gettext gawk \
gperf antlr3 libantlr3c-dev libconfuse-dev libunistring-dev libsqlite3-dev \ gperf antlr3 libantlr3c-dev libconfuse-dev libunistring-dev libsqlite3-dev \
libavcodec-dev libavformat-dev libavfilter-dev libswscale-dev libavutil-dev \ libavcodec-dev libavformat-dev libavfilter-dev libswscale-dev libavutil-dev \
libasound2-dev libmxml-dev libgcrypt20-dev libavahi-client-dev zlib1g-dev \ libasound2-dev libmxml-dev libgcrypt20-dev libavahi-client-dev zlib1g-dev \
libevent-dev libplist-dev libsodium-dev libjson-c-dev libwebsockets-dev libevent-dev libplist-dev libsodium-dev libjson-c-dev libwebsockets-dev
```
Optional packages: Optional packages:
Feature | Configure argument | Packages Feature | Configure argument | Packages
--------------------|------------------------|--------------------------------------------- --------------------|--------------------------|------------------------------------------------
Chromecast | --enable-chromecast | libgnutls*-dev libprotobuf-c-dev Chromecast | `--enable-chromecast` | libgnutls*-dev libprotobuf-c-dev
LastFM | --enable-lastfm | libcurl4-[gnutls|openssl]-dev LastFM | `--enable-lastfm` | libcurl4-\[gnutls\|openssl\]-dev
Spotify | --enable-spotify | libcurl4-[gnutls|openssl]-dev libspotify-dev Spotify | `--enable-spotify` | libcurl4-\[gnutls\|openssl\]-dev libspotify-dev
iTunes XML | --disable-itunes | libplist-dev iTunes XML | `--disable-itunes` | libplist-dev
Device verification | --disable-verification | libplist-dev libsodium-dev Device verification | `--disable-verification` | libplist-dev libsodium-dev
Player web UI | --disable-webinterface | libwebsockets-dev Player web UI | `--disable-webinterface` | libwebsockets-dev
Live web UI | --with-libwebsockets | libwebsockets-dev Live web UI | `--with-libwebsockets` | libwebsockets-dev
Pulseaudio | --with-pulseaudio | libpulse-dev Pulseaudio | `--with-pulseaudio` | libpulse-dev
Note that while forked-daapd will work with versions of libevent between 2.0.0 Note that while forked-daapd will work with versions of libevent between 2.0.0
and 2.1.3, it is recommended to use 2.1.4+. Otherwise you may not have support and 2.1.3, it is recommended to use 2.1.4+. Otherwise you may not have support
@ -52,73 +48,76 @@ for Shoutcast metadata and simultaneous streaming to multiple clients.
Then run the following (adding configure arguments for optional features): Then run the following (adding configure arguments for optional features):
git clone https://github.com/ejurgensen/forked-daapd.git ```bash
cd forked-daapd git clone https://github.com/ejurgensen/forked-daapd.git
autoreconf -i cd forked-daapd
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var autoreconf -i
make ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
sudo make install make
sudo make install
```
Finally, read the section 'Long version - after installation' in the bottom of Finally, read the section [Long version - after installation
this document, which describes configuration, setting up init scripts and adding ](#Long-version---after-installation) in the bottom of this document, which
a system user. Also see the README for usage information. describes configuration, setting up init scripts and adding a system user.
Also see the [README.md](README.md) for usage information.
## Quick version for Fedora
Quick version for Fedora
------------------------
If you haven't already enabled the free RPM fusion packages do that, since you If you haven't already enabled the free RPM fusion packages do that, since you
will need ffmpeg. You can google how to do that. Then run: will need ffmpeg. You can google how to do that. Then run:
```bash
sudo yum install \ sudo yum install \
git automake autoconf gettext-devel gperf gawk libtool \ git automake autoconf gettext-devel gperf gawk libtool \
sqlite-devel libconfuse-devel libunistring-devel mxml-devel libevent-devel \ sqlite-devel libconfuse-devel libunistring-devel mxml-devel libevent-devel \
avahi-devel libgcrypt-devel zlib-devel alsa-lib-devel ffmpeg-devel \ avahi-devel libgcrypt-devel zlib-devel alsa-lib-devel ffmpeg-devel \
libplist-devel libsodium-devel json-c-devel libwebsockets-devel libplist-devel libsodium-devel json-c-devel libwebsockets-devel
```
Clone the forked-daapd repo: Clone the forked-daapd repo:
git clone https://github.com/ejurgensen/forked-daapd.git ```bash
cd forked-daapd git clone https://github.com/ejurgensen/forked-daapd.git
cd forked-daapd
```
Now you need to install ANTLR3, but you probably can't use the version that Now you need to install ANTLR3, but you probably can't use the version that
comes with the package manager (but do try that first). Instead you can install comes with the package manager (but do try that first). Instead you can install
it by running this script: it by running this script:
scripts/antlr35_install.sh ```bash
scripts/antlr35_install.sh
```
Then run the following: Then run the following:
autoreconf -i ```bash
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var autoreconf -i
make ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
sudo make install make
sudo make install
```
Finally, read the section 'Long version - after installation' in the bottom of Finally, read the section [Long version - after installation
this document, which describes configuration, setting up init scripts and adding ](#Long-version---after-installation) in the bottom of this document, which
a system user. Also see the README for usage information. describes configuration, setting up init scripts and adding a system user.
Also see the README for usage information.
## Quick version for FreeBSD
Quick version for FreeBSD
-------------------------
The build process for FreeBSD is rather complicated, but the good news is that The build process for FreeBSD is rather complicated, but the good news is that
there is a script in the 'scripts' folder that will at least attempt to do all there is a script in the 'scripts' folder that will at least attempt to do all
the work for you. And should the script not work for you, you can still look the work for you. And should the script not work for you, you can still look
through it and use it as an installation guide. through it and use it as an installation guide.
## Quick version for macOS (using Homebrew)
Quick version for macOS (using Homebrew)
----------------------------------------
This workflow file used for building forked-daapd via Github actions includes This workflow file used for building forked-daapd via Github actions includes
all the steps that you need to execute: all the steps that you need to execute:
[.github/workflows/macos.yml](.github/workflows/macos.yml)
https://github.com/ejurgensen/forked-daapd/blob/master/.github/workflows/macos.yml ## "Quick" version for macOS (using macports)
"Quick" version for macOS (using macports)
------------------------------------------
Caution: macports requires many downloads and lots of time to install Caution: macports requires many downloads and lots of time to install
(and sometimes build) ports... you'll want a decent network connection (and sometimes build) ports... you'll want a decent network connection
@ -134,9 +133,11 @@ Afterwards, you can optionally install Oracle's newer version, and then
choose it using the Java pref in the System Preferences: choose it using the Java pref in the System Preferences:
http://www.oracle.com/technetwork/java/javase/downloads/index.html http://www.oracle.com/technetwork/java/javase/downloads/index.html
```bash
sudo port install \ sudo port install \
autoconf automake libtool pkgconfig git gperf libgcrypt \ autoconf automake libtool pkgconfig git gperf libgcrypt \
libunistring libconfuse ffmpeg libevent json-c libwebsockets libunistring libconfuse ffmpeg libevent json-c libwebsockets
```
Download, configure, build and install the Mini-XML library: Download, configure, build and install the Mini-XML library:
http://www.msweet.org/projects.php/Mini-XML http://www.msweet.org/projects.php/Mini-XML
@ -144,114 +145,131 @@ Download, configure, build and install the Mini-XML library:
Download, configure, build and install the libinotify library: Download, configure, build and install the libinotify library:
https://github.com/libinotify-kqueue/libinotify-kqueue https://github.com/libinotify-kqueue/libinotify-kqueue
Add the following to .bashrc: Add the following to `.bashrc`:
# add /usr/local to pkg-config path
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig ```bash
# libunistring doesn't support pkg-config, set overrides # add /usr/local to pkg-config path
export LIBUNISTRING_CFLAGS=-I/opt/local/include export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig
export LIBUNISTRING_LIBS="-L/opt/local/lib -lunistring" # libunistring doesn't support pkg-config, set overrides
export LIBUNISTRING_CFLAGS=-I/opt/local/include
export LIBUNISTRING_LIBS="-L/opt/local/lib -lunistring"
```
Optional features require the following additional ports: Optional features require the following additional ports:
Feature | Configure argument | Ports Feature | Configure argument | Ports
--------------------|------------------------|-------------------------------------------- --------------------|--------------------------|-------------------
Chromecast | --enable-chromecast | gnutls protobuf-c Chromecast | `--enable-chromecast` | gnutls protobuf-c
LastFM | --enable-lastfm | curl LastFM | `--enable-lastfm` | curl
iTunes XML | --disable-itunes | libplist iTunes XML | `--disable-itunes` | libplist
Device verification | --disable-verification | libplist libsodium Device verification | `--disable-verification` | libplist libsodium
Pulseaudio | --with-pulseaudio | pulseaudio Pulseaudio | `--with-pulseaudio` | pulseaudio
Clone the forked-daapd repo: Clone the forked-daapd repo:
git clone https://github.com/ejurgensen/forked-daapd.git
cd forked-daapd ```bash
git clone https://github.com/ejurgensen/forked-daapd.git
cd forked-daapd
```
Install antlr3 and library using the included script: Install antlr3 and library using the included script:
scripts/antlr35_install.sh -p /usr/local
```bash
scripts/antlr35_install.sh -p /usr/local
```
Finally, configure, build and install, adding configure arguments for Finally, configure, build and install, adding configure arguments for
optional features: optional features:
autoreconf -i ```bash
./configure autoreconf -i
make ./configure
sudo make install make
sudo make install
```
Note: if for some reason you've installed the avahi port, you need to Note: if for some reason you've installed the avahi port, you need to
add '--without-avahi' to configure above. add `--without-avahi` to configure above.
Edit /usr/local/etc/forked-daapd.conf and change the 'uid' to a nice Edit `/usr/local/etc/forked-daapd.conf` and change the `uid` to a nice
system daemon (eg: unknown), and run the following: system daemon (eg: unknown), and run the following:
sudo mkdir -p /usr/local/var/run
sudo mkdir -p /usr/local/var/log # or change logfile in conf ```bash
sudo chown unknown /usr/local/var/cache/forked-daapd # or change conf sudo mkdir -p /usr/local/var/run
sudo mkdir -p /usr/local/var/log # or change logfile in conf
sudo chown unknown /usr/local/var/cache/forked-daapd # or change conf
```
Run forked-daapd: Run forked-daapd:
sudo /usr/local/sbin/forked-daapd
Verify it's running (you need to Ctrl-C to stop dns-sd): ```bash
dns-sd -B _daap._tcp sudo /usr/local/sbin/forked-daapd
```
Long version - requirements Verify it's running (you need to <kbd>Ctrl</kbd>+<kbd>C</kbd> to stop
--------------------------- dns-sd):
```bash
dns-sd -B _daap._tcp
```
## Long version - requirements
Required tools: Required tools:
- ANTLR v3 is required to build forked-daapd, along with its C runtime
(libantlr3c). Use a version between 3.1.3 and 3.5 of ANTLR v3 and the
matching C runtime version. Get it from <http://www.antlr3.org/>
- Java runtime: ANTLR is written in Java and as such a JRE is required to
run the tool. The JRE is enough, you don't need a full JDK.
- autotools: autoconf 2.63+, automake 1.10+, libtool 2.2. Run autoreconf -i
at the top of the source tree to generate the build system.
- gettext: libunistring requires iconv and gettext provides the autotools
macro definitions for iconv.
- gperf
- ANTLR v3 is required to build forked-daapd, along with its C runtime
(libantlr3c). Use a version between 3.1.3 and 3.5 of ANTLR v3 and the
matching C runtime version. Get it from <http://www.antlr3.org/>
- Java runtime: ANTLR is written in Java and as such a JRE is required to
run the tool. The JRE is enough, you don't need a full JDK.
- autotools: autoconf 2.63+, automake 1.10+, libtool 2.2. Run `autoreconf -i`
at the top of the source tree to generate the build system.
- gettext: libunistring requires iconv and gettext provides the autotools
macro definitions for iconv.
- gperf
Libraries: Libraries:
- libantlr3c (ANTLR3 C runtime, use the same version as antlr3)
from <https://github.com/antlr/website-antlr3/tree/gh-pages/download/C> - libantlr3c (ANTLR3 C runtime, use the same version as antlr3)
- Avahi client libraries (avahi-client), 0.6.24 minimum from <https://github.com/antlr/website-antlr3/tree/gh-pages/download/C>
from <http://avahi.org/> - Avahi client libraries (avahi-client), 0.6.24 minimum
- sqlite3 3.5.0+ with unlock notify API enabled (read below) from <http://avahi.org/>
from <http://sqlite.org/download.html> - sqlite3 3.5.0+ with unlock notify API enabled (read below)
- libav 9+ or ffmpeg 0.11+ from <http://sqlite.org/download.html>
from <http://libav.org/> or <http://ffmpeg.org/> - libav 9+ or ffmpeg 0.11+
- libconfuse from <http://libav.org/> or <http://ffmpeg.org/>
from <http://www.nongnu.org/confuse/> - libconfuse
- libevent 2.0+ (best with 2.1.4+) from <http://www.nongnu.org/confuse/>
from <http://libevent.org/> - libevent 2.0+ (best with 2.1.4+)
- MiniXML (aka mxml or libmxml) from <http://libevent.org/>
from <http://minixml.org/software.php> - MiniXML (aka mxml or libmxml)
- gcrypt 1.2.0+ from <http://minixml.org/software.php>
from <http://gnupg.org/download/index.en.html#libgcrypt> - gcrypt 1.2.0+
- zlib from <http://gnupg.org/download/index.en.html#libgcrypt>
from <http://zlib.net/> - zlib
- libunistring 0.9.3+ from <http://zlib.net/>
from <http://www.gnu.org/software/libunistring/#downloading> - libunistring 0.9.3+
- libjson-c from <http://www.gnu.org/software/libunistring/#downloading>
from <https://github.com/json-c/json-c/wiki> - libjson-c
- libasound (optional - ALSA local audio) from <https://github.com/json-c/json-c/wiki>
often already installed as part of your distro - libasound (optional - ALSA local audio)
- libpulse (optional - Pulseaudio local audio) often already installed as part of your distro
from <https://www.freedesktop.org/wiki/Software/PulseAudio/Download/> - libpulse (optional - Pulseaudio local audio)
- libplist 0.16+ (optional - iTunes XML support and Apple TV device verification) from <https://www.freedesktop.org/wiki/Software/PulseAudio/Download/>
from <http://github.com/JonathanBeck/libplist/downloads> - libplist 0.16+ (optional - iTunes XML support and Apple TV device verification)
- libsodium (optional - Apple TV device verification) from <http://github.com/JonathanBeck/libplist/downloads>
from <https://download.libsodium.org/doc/> - libsodium (optional - Apple TV device verification)
- libspotify (optional - Spotify support) from <https://download.libsodium.org/doc/>
from <https://developer.spotify.com> - libspotify (optional - Spotify support)
- libcurl (optional - LastFM support) from <https://developer.spotify.com>
from <http://curl.haxx.se/libcurl/> - libcurl (optional - LastFM support)
- libgnutls (optional - Chromecast support) from <http://curl.haxx.se/libcurl/>
from <http://www.gnutls.org/> - libgnutls (optional - Chromecast support)
- libprotobuf-c (optional - Chromecast support) from <http://www.gnutls.org/>
from <https://github.com/protobuf-c/protobuf-c/wiki> - libprotobuf-c (optional - Chromecast support)
- libwebsockets 2.0.2+ (optional - websocket support) from <https://github.com/protobuf-c/protobuf-c/wiki>
from <https://libwebsockets.org/> - libwebsockets 2.0.2+ (optional - websocket support)
from <https://libwebsockets.org/>
If using binary packages, remember that you need the development packages to If using binary packages, remember that you need the development packages to
build forked-daapd (usually named -dev or -devel). build forked-daapd (usually named -dev or -devel).
@ -260,103 +278,115 @@ sqlite3 needs to be built with support for the unlock notify API; this isn't
always the case in binary packages, so you may need to rebuild sqlite3 to always the case in binary packages, so you may need to rebuild sqlite3 to
enable the unlock notify API (you can check for the presence of the enable the unlock notify API (you can check for the presence of the
sqlite3_unlock_notify symbol in the sqlite3 library). Refer to the sqlite3 sqlite3_unlock_notify symbol in the sqlite3 library). Refer to the sqlite3
documentation, look for SQLITE_ENABLE_UNLOCK_NOTIFY. documentation, look for `SQLITE_ENABLE_UNLOCK_NOTIFY`.
libav (or ffmpeg) is a central piece of forked-daapd and most other FLOSS libav (or ffmpeg) is a central piece of forked-daapd and most other FLOSS
multimedia applications. The version of libav you use will potentially have a multimedia applications. The version of libav you use will potentially have a
great influence on your experience with forked-daapd. great influence on your experience with forked-daapd.
## Long version - building and installing
Long version - building and installing Start by generating the build system by running `autoreconf -i`. This will
-------------------------------------- generate the configure script and `Makefile.in`.
Start by generating the build system by running autoreconf -i. This will
generate the configure script and Makefile.in.
The configure script will look for a wrapper called antlr3 in the PATH to The configure script will look for a wrapper called antlr3 in the PATH to
invoke ANTLR3. If your installation of ANTLR3 does not come with such a invoke ANTLR3. If your installation of ANTLR3 does not come with such a
wrapper, create one as follows: wrapper, create one as follows:
#!/bin/sh ```bash
CLASSPATH=... #!/bin/sh
exec /path/to/java -cp $CLASSPATH org.antlr.Tool "$@" CLASSPATH=...
exec /path/to/java -cp $CLASSPATH org.antlr.Tool "$@"
```
Adjust the CLASSPATH as needed so that Java will find all the jars needed Adjust the `CLASSPATH` as needed so that Java will find all the jars needed
by ANTLR3. by ANTLR3.
The parsers will be generated during the build, no manual intervention is The parsers will be generated during the build, no manual intervention is
needed. needed.
To display the configure options run ./configure --help To display the configure options `run ./configure --help`.
Support for Spotify is optional. Use --enable-spotify to enable this feature. Support for Spotify is optional. Use `--enable-spotify` to enable this feature.
If you enable this feature libspotify/api.h is required at compile time. If you enable this feature `libspotify/api.h` is required at compile time.
Forked-daapd uses runtime dynamic linking to the libspotify library, so even Forked-daapd uses runtime dynamic linking to the libspotify library, so even
though you compiled with --enable-spotify, the executable will still be able though you compiled with `--enable-spotify`, the executable will still be able
to run on systems without libspotify (the Spotify features will then be to run on systems without libspotify (the Spotify features will then be disabled).
disabled).
Support for LastFM scrobbling is optional. Use --enable-lastfm to enable this Support for LastFM scrobbling is optional. Use `--enable-lastfm` to enable this
feature. feature.
Support for iTunes Music Library XML format is optional. Use --disable-itunes Support for iTunes Music Library XML format is optional. Use `--disable-itunes`
to disable this feature. to disable this feature.
Support for the MPD protocol is optional. Use --disable-mpd to disable this Support for the MPD protocol is optional. Use `--disable-mpd` to disable this
feature. feature.
Support for Apple TV device verification is optional. Use --disable-verification Support for Apple TV device verification is optional. Use `--disable-verification`
to disable this feature. to disable this feature.
Support for Chromecast devices is optional. Use --enable-chromecast to enable Support for Chromecast devices is optional. Use `--enable-chromecast` to enable
this feature. this feature.
The player web interface is optional. Use --disable-webinterface to disable The player web interface is optional. Use `--disable-webinterface` to disable
this feature. this feature.
If enabled, 'sudo make install' will install the prebuild html, js, css files. If enabled, `sudo make install` will install the prebuild html, js, css files.
The prebuild files are: The prebuild files are:
- htdocs/index.html
- htdocs/player/* - `htdocs/index.html`
The source for the player web interface is located under the web-src folder and - `htdocs/player/*`
requires nodejs >= 6.0 to be built. In the web-src folder run 'npm install' to
install all dependencies for the player web interface. After that run 'npm run build'. The source for the player web interface is located under the `web-src` folder and
This will build the web interface and update the htdocs folder. requires nodejs >= 6.0 to be built. In the `web-src` folder run `npm install` to
(See README_PLAYER_WEBINTERFACE.md for more informations) install all dependencies for the player web interface. After that run `npm run build`.
This will build the web interface and update the `htdocs` folder.
(See [README_PLAYER_WEBINTERFACE.md](README_PLAYER_WEBINTERFACE.md) for more
informations)
Building with libwebsockets is optional, but required if you want the player Building with libwebsockets is optional, but required if you want the player
web interface (so not required for the admin web interface, where websockets web interface (so not required for the admin web interface, where websockets
only improve the UI). It will be enabled if the library is present (with only improve the UI). It will be enabled if the library is present (with
headers). Use --without-libwebsockets to disable. headers). Use `--without-libwebsockets` to disable.
Building with Pulseaudio is optional. It will be enabled if the library is Building with Pulseaudio is optional. It will be enabled if the library is
present (with headers). Use --without-pulseaudio to disable. present (with headers). Use `--without-pulseaudio` to disable.
Recommended build settings: Recommended build settings:
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
After configure run the usual make, and if that went well, 'sudo make install' ```bash
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
```
After configure run the usual make, and if that went well, `sudo make install`.
You may see two kinds of warnings during make. You may see two kinds of warnings during make.
First, /usr/bin/antlr3 may generate a long series of warnings that First, `/usr/bin/antlr3` may generate a long series of warnings that
begin like this: begin like this:
warning(24): template error: context ...
```log
warning(24): template error: context ...
```
Second, you may see compiler warnings that look like this: Second, you may see compiler warnings that look like this:
RSPLexer.c: In function `mESCAPED':
RSPLexer.c:2674:16: warning: unused variable `_type' [-Wunused-variable] ```log
ANTLR3_UINT32 _type; RSPLexer.c: In function `mESCAPED':
^~~~~ RSPLexer.c:2674:16: warning: unused variable `_type' [-Wunused-variable]
ANTLR3_UINT32 _type;
^~~~~
```
You can safely ignore all of these warnings. You can safely ignore all of these warnings.
Long version - after installation ## Long version - after installation
---------------------------------
After installation: After installation:
- edit the configuration file, /etc/forked-daapd.conf
- make sure the Avahi daemon is installed and running (Debian: 'apt install
avahi-daemon')
Note that 'sudo make install' will not install any system files to start the - edit the configuration file, `/etc/forked-daapd.conf`
- make sure the Avahi daemon is installed and running (Debian:
`apt install avahi-daemon`)
Note that `sudo make install` will not install any system files to start the
service after boot, and it will not setup a system user. service after boot, and it will not setup a system user.
forked-daapd will drop privileges to any user you'll specify in the forked-daapd will drop privileges to any user you'll specify in the
@ -364,27 +394,29 @@ configuration file if it's started as root.
This user must have read permission on your library (you can create a group for This user must have read permission on your library (you can create a group for
this and make the user a member of the group, for instance) and read/write this and make the user a member of the group, for instance) and read/write
permissions on the database location ($localstatedir/cache/forked-daapd by permissions on the database location (`$localstatedir/cache/forked-daapd` by
default). default).
If your system uses systemd then you might be able to use the service file If your system uses systemd then you might be able to use the service file
included, see forked-daapd.service. included, see `forked-daapd.service`.
Otherwise you might need an init script to start forked-daapd at boot. A simple Otherwise you might need an init script to start forked-daapd at boot. A simple
init script will do, forked-daapd daemonizes all by itself and creates a init script will do, forked-daapd daemonizes all by itself and creates a
pidfile under /var/run. Different distributions have different standards for pidfile under `/var/run`. Different distributions have different standards for
init scripts and some do not use init scripts anymore; check the documentation init scripts and some do not use init scripts anymore; check the documentation
for your distribution. for your distribution.
For dependency-based boot systems, here are the forked-daapd dependencies: For dependency-based boot systems, here are the forked-daapd dependencies:
- local filesystems
- network filesystems, if needed in your setup (library on NFS, ...) - local filesystems
- networking - network filesystems, if needed in your setup (library on NFS, ...)
- NTP - networking
- Avahi daemon - NTP
- Avahi daemon
The LSB header below sums it up: The LSB header below sums it up:
```bash
### BEGIN INIT INFO ### BEGIN INIT INFO
# Provides: forked-daapd # Provides: forked-daapd
# Required-Start: $local_fs $remote_fs $network $time # Required-Start: $local_fs $remote_fs $network $time
@ -401,3 +433,4 @@ The LSB header below sums it up:
# AirPlay devices. It also supports streaming to RSP clients # AirPlay devices. It also supports streaming to RSP clients
# (Roku devices) and streaming from Spotify. # (Roku devices) and streaming from Spotify.
### END INIT INFO ### END INIT INFO
```

View File

@ -29,8 +29,7 @@ match the version of forked-daapd that you are using. Go to
forked-daapd. forked-daapd.
If you are looking for help on building forked-daapd (not using it), then If you are looking for help on building forked-daapd (not using it), then
please see the please see the [INSTALL.md](INSTALL.md) file.
[INSTALL](https://github.com/ejurgensen/forked-daapd/blob/master/INSTALL) file.
## Contents ## Contents
@ -58,8 +57,7 @@ please see the
## Getting started ## Getting started
After installation (see [INSTALL](https://github.com/ejurgensen/forked-daapd/blob/master/INSTALL)) After installation (see [INSTALL.md](INSTALL.md)) do the following:
do the following:
1. Edit the configuration file (usually `/etc/forked-daapd.conf`) to suit your 1. Edit the configuration file (usually `/etc/forked-daapd.conf`) to suit your
needs needs