Daapd Container - pairing and avahi daemon

Dear Linuxserver Team

after having problems to access the container via http [if interested have a look at the post Daapd Container not starting]: Now I’m struggling with the setup.

One suggestion: You might want to include the information that the container set-up includes changes to the file “forked-daapd.conf”.

My problems
I try to follow the instruction from here: http://ejurgensen.github.io/forked-daapd/

  • The docker log indicates, that a USER Avahi is included - but I have no access to the USER nor can I change anything. I don’t know if this is important or if I just ignore it.

  • I fail to access the web socket. I opened port 3688, But still can’t access the http-page.

  • I fail to pair the docker-application with iTunes / the iOS app “Remote”. The suggested method is not working (refresh with F5)

To make it a bit easier I like to include part of the conf file.

Thanks for your advice!

With regards

-------------------extract from config file--------------------------

A quick guide to configuring forked-daapd:

For regular use, the most important setting to configure is “directories”,

which should be the location of your media. Whatever user you have set as

“uid” must have read access to this location. If the location is a network

mount, please see the README.

In all likelihood, that’s all you need to do!

general {
# Username
# Make sure the user has read access to the library directories you set
# below, and full access to the databases, log and local audio
uid = “abc”

“abc” is the default. it works for port 3689 not for 3688; it’s a USER listed in my USER-List and the User has no access to any location on my drive - And I actually don’t really like to implement this “abc” into my list of USERs.

# Database location
db_path = "/config/dbase_and_logs/songs3.db"

# Log file and level
# Available levels: fatal, log, warning, info, debug, spam
logfile = "/config/dbase_and_logs/forked-daapd.log"
loglevel = log

# Admin password for the web interface
# Note that access to the web interface from computers in
# "trusted_network" (see below) does not require password
admin_password = ""

"admin_password = “” " actually works with the user admin - But can I establish additional USERS and how?

# Websocket port for the web interface.
websocket_port = 3688

websocket_port = 3688 not working

# Sets who is allowed to connect without authorisation. This applies to
# client types like Remotes, DAAP clients (iTunes) and to the web
# interface. Options are "any", "localhost" or the prefix to one or
# more ipv4/6 networks. The default is { "localhost", "192.168", "fd" }
trusted_networks = { "localhost", "192.168", "fd" }

“trusted_network”: is the default working - what do I have to change?

# ...hopefully less relevant


Library configuration

library {
# Name of the library as displayed by the clients (%h: hostname). If you
# change the name after pairing with Remote you may have to re-pair.
name = “LS.IO Music”

# TCP port to listen on. Default port is 3689 (daap)
port = 3689

# Password for the library. Optional.
password = ""

# Directories to index
directories = { "/music" }

# Follow symlinks. Default: true.

follow_symlinks = true

# ...hopefully less relevant


Local audio output

audio {
# Name - used in the speaker list in Remote
nickname = “Computer”

# ...hopefully less relevant


ALSA device settings

If you have multiple ALSA devices you can configure them individually via

sections like the below. Make sure to set the “card name” correctly. See the

README about ALSA for details. Note that these settings will override the ALSA

settings in the “audio” section above.

#alsa “card name” {
# Name - used in the speaker list in Remote
# If not set, the card name will be used

nickname = “Computer”

# Mixer channel to use for volume control
# If not set, PCM will be used if available, otherwise Master

mixer = “”

# Mixer device to use for volume control
# If not set, the card name will be used

mixer_device = “”


Pipe output

Allows forked-daapd to output audio data to a named pipe

#fifo {

nickname = “fifo”

path = “/path/to/fifo”


AirPlay/Airport Express device settings

(make sure you get the capitalization of the device name right)

#airplay “My AirPlay device” {
# forked-daapd’s volume goes to 11! If that’s more than you can handle
# you can set a lower value here

max_volume = 11

# Enable this option to exclude a particular AirPlay device from the
# speaker list

exclude = false

# Enable this option to keep a particular AirPlay device in the speaker
# list and thus ignore mdns notifications about it no longer being
# present. The speaker will remain until restart of forked-daapd.

permanent = false

# AirPlay password

password = “s1kr3t”


# ...hopefully less relevant

SQLite configuration (allows to modify the operation of the SQLite databases)

Make sure to read the SQLite documentation for the corresponding PRAGMA

statements as changing them from the defaults may increase the possibility of

database corruptions! By default the SQLite default values are used.

sqlite {
# Cache size in number of db pages for the library database
# (SQLite default page size is 1024 bytes and cache size is 2000 pages)

pragma_cache_size_library = 2000

# Cache size in number of db pages for the daap cache database
# (SQLite default page size is 1024 bytes and cache size is 2000 pages)

pragma_cache_size_cache = 2000

# Sets the journal mode for the database

pragma_journal_mode = DELETE

# Change the setting of the "synchronous" flag
# 0: OFF, 1: NORMAL, 2: FULL (default)

pragma_synchronous = 2

# Number of bytes set aside for memory-mapped I/O  for the library database
# (requires sqlite 3.7.17 or later)
# 0: disables mmap (default), any other value > 0: number of bytes for mmap

pragma_mmap_size_library = 0

# Number of bytes set aside for memory-mapped I/O for the cache database
# (requires sqlite 3.7.17 or later)
# 0: disables mmap (default), any other value > 0: number of bytes for mmap

pragma_mmap_size_cache = 0

# Should the database be vacuumed on startup? (increases startup time,
# but may reduce database size). Default is yes.

vacuum = yes


# ...hopefully less relevant

It’s not clear from your post what your problem is. Could you try to explain it again?
You linked to the documentation of forked-daapd and there is a lot of info, so hard for us to know what exactly you are trying to do.

As I said in your other post, you need to run the container using host network for it to work correctly.

Dear saarg

I deployed the container in the host-network and now I can reach via http the web-GUI. I´m also able to pair to the iOS app “Remote”.

So - first problem solved … But:

I’m not able to “klick” on the database in the iOS app “Remote”. The symbol for an itunes-archive is visible, but I can’t “open” the link. I’m not sure if this is related to the fact, that for now I didn’t start a streaming within the container?!?

I’m also not able to access the container via local network (by the MacOS desktop app Musik or by the iOS devices iPhone / iPad). And I’m not able to access the container from remote (by the iOS device iPhone).

I would be glad if you have further advice!

Thanks for your help.

I don’t have any apple devices so I can’t test it and I don’t know why you can’t access it.

Dear saarg

I went thru the docker log and I might have found an interesting / helpful information:
it say’s:
<Host name conflict, retrying with daapd-33>

[LOG] mdns: Avahi state change: client collision

the Host name conflict goes on for ever - now: daapd-1591

---- so I seached the internet and found this: https://github.com/oznu/docker-homebridge/issues/35
I think it’s about the avahi client settings and homebridge.

I would be glad, if you could find some time to look into it.