You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

447 lines
17 KiB

  1. # A quick guide to configuring OwnTone:
  2. #
  3. # For regular use, the most important setting to configure is "directories",
  4. # which should be the location of your media. Whatever user you have set as
  5. # "uid" must have read access to this location. If the location is a network
  6. # mount, please see the README.
  7. #
  8. # In all likelihood, that's all you need to do!
  9. general {
  10. # Username
  11. # Make sure the user has read access to the library directories you set
  12. # below, and full access to the databases, log and local audio
  13. uid = "owntone"
  14. # Database location
  15. # db_path = "/var/cache/owntone/songs3.db"
  16. # Database backup location
  17. # Uncomment and specify a full path to enable abilty to use REST endpoint
  18. # to initiate backup of songs3.db
  19. # db_backup_path = "/var/cache/owntone/songs3.bak"
  20. # Log file and level
  21. # Available levels: fatal, log, warning, info, debug, spam
  22. logfile = "/var/log/owntone.log"
  23. loglevel = log
  24. # Admin password for the web interface
  25. # Note that access to the web interface from computers in
  26. # "trusted_network" (see below) does not require password
  27. # admin_password = ""
  28. # Websocket port for the web interface.
  29. # websocket_port = 3688
  30. # Websocket interface to bind listener to (e.g. "eth0"). Default is
  31. # disabled, which means listen on all interfaces.
  32. # websocket_interface = ""
  33. # Sets who is allowed to connect without authorisation. This applies to
  34. # client types like Remotes, DAAP clients (iTunes) and to the web
  35. # interface. Options are "any", "localhost" or the prefix to one or
  36. # more ipv4/6 networks. The default is { "localhost", "192.168", "fd" }
  37. # trusted_networks = { "localhost", "192.168", "fd" }
  38. # Enable/disable IPv6
  39. ipv6 = yes
  40. # Set this if you want the server to bind to a specific IP address. Can
  41. # be ipv6 or ipv4. Default (commented out or "::") is to listen on all
  42. # IP addresses.
  43. # bind_address = "::"
  44. # Location of cache database
  45. # cache_path = "/var/cache/owntone/cache.db"
  46. # DAAP requests that take longer than this threshold (in msec) get their
  47. # replies cached for next time. Set to 0 to disable caching.
  48. # cache_daap_threshold = 1000
  49. # When starting playback, autoselect speaker (if none of the previously
  50. # selected speakers/outputs are available)
  51. # speaker_autoselect = no
  52. # Most modern systems have a high-resolution clock, but if you are on an
  53. # unusual platform and experience audio drop-outs, you can try changing
  54. # this option
  55. # high_resolution_clock = yes
  56. }
  57. # Library configuration
  58. library {
  59. # Name of the library as displayed by the clients (%h: hostname). If you
  60. # change the name after pairing with Remote you may have to re-pair.
  61. name = "My Music on %h"
  62. # TCP port to listen on. Default port is 3689 (daap)
  63. port = 3689
  64. # Password for the library. Optional.
  65. # password = ""
  66. # Directories to index
  67. directories = { "/srv/music" }
  68. # Follow symlinks. Default: true.
  69. # follow_symlinks = true
  70. # Directories containing podcasts
  71. # For each directory that is indexed the path is matched against these
  72. # names. If there is a match all items in the directory are marked as
  73. # podcasts. Eg. if you index /srv/music, and your podcasts are in
  74. # /srv/music/Podcasts, you can set this to "/Podcasts".
  75. # (changing this setting only takes effect after rescan, see the README)
  76. podcasts = { "/Podcasts" }
  77. # Directories containing audiobooks
  78. # For each directory that is indexed the path is matched against these
  79. # names. If there is a match all items in the directory are marked as
  80. # audiobooks.
  81. # (changing this setting only takes effect after rescan, see the README)
  82. audiobooks = { "/Audiobooks" }
  83. # Directories containing compilations (eg soundtracks)
  84. # For each directory that is indexed the path is matched against these
  85. # names. If there is a match all items in the directory are marked as
  86. # compilations.
  87. # (changing this setting only takes effect after rescan, see the README)
  88. compilations = { "/Compilations" }
  89. # Compilations usually have many artists, and sometimes no album artist.
  90. # If you don't want every artist to be listed in artist views, you can
  91. # set a single name which will be used for all compilation tracks
  92. # without an album artist, and for all tracks in the compilation
  93. # directories.
  94. # (changing this setting only takes effect after rescan, see the README)
  95. compilation_artist = "Various Artists"
  96. # If your album and artist lists are cluttered, you can choose to hide
  97. # albums and artists with only one track. The tracks will still be
  98. # visible in other lists, e.g. songs and playlists. This setting
  99. # currently only works in some remotes.
  100. # hide_singles = false
  101. # Internet streams in your playlists will by default be shown in the
  102. # "Radio" library, like iTunes does. However, some clients (like
  103. # TunesRemote+) won't show the "Radio" library. If you would also like
  104. # to have them shown like normal playlists, you can enable this option.
  105. # radio_playlists = false
  106. # These are the default playlists. If you want them to have other names,
  107. # you can set it here.
  108. # name_library = "Library"
  109. # name_music = "Music"
  110. # name_movies = "Movies"
  111. # name_tvshows = "TV Shows"
  112. # name_podcasts = "Podcasts"
  113. # name_audiobooks = "Audiobooks"
  114. # name_radio = "Radio"
  115. # Artwork file names (without file type extension)
  116. # OwnTone will look for jpg and png files with these base names
  117. # artwork_basenames = { "artwork", "cover", "Folder" }
  118. # Enable searching for artwork corresponding to each individual media
  119. # file instead of only looking for album artwork. This is disabled by
  120. # default to reduce cache size.
  121. # artwork_individual = false
  122. # File types the scanner should ignore
  123. # Non-audio files will never be added to the database, but here you
  124. # can prevent the scanner from even probing them. This might improve
  125. # scan time. By default .db, .ini, .db-journal, .pdf and .metadata are
  126. # ignored.
  127. # filetypes_ignore = { ".db", ".ini", ".db-journal", ".pdf", ".metadata" }
  128. # File paths the scanner should ignore
  129. # If you want to exclude files on a more advanced basis you can enter
  130. # one or more POSIX regular expressions, and any file with a matching
  131. # path will be ignored.
  132. # filepath_ignore = { "myregex" }
  133. # Disable startup file scanning
  134. # When OwnTone starts it will do an initial file scan of your
  135. # library (and then watch it for changes). If you are sure your library
  136. # never changes while OwnTone is not running, you can disable the
  137. # initial file scan and save some system ressources. Disabling this scan
  138. # may lead to OwnTone's database coming out of sync with the
  139. # library. If that happens read the instructions in the README on how
  140. # to trigger a rescan.
  141. # filescan_disable = false
  142. # Should metadata from m3u playlists, e.g. artist and title in EXTINF,
  143. # override the metadata we get from radio streams?
  144. # m3u_overrides = false
  145. # Should iTunes metadata override ours?
  146. # itunes_overrides = false
  147. # Should we import the content of iTunes smart playlists?
  148. # itunes_smartpl = false
  149. # Decoding options for DAAP clients
  150. # Since iTunes has native support for mpeg, mp4a, mp4v, alac and wav,
  151. # such files will be sent as they are. Any other formats will be decoded
  152. # to raw wav. If OwnTone detects a non-iTunes DAAP client, it is
  153. # assumed to only support mpeg and wav, other formats will be decoded.
  154. # Here you can change when to decode. Note that these settings have no
  155. # effect on AirPlay.
  156. # Formats: mp4a, mp4v, mpeg, alac, flac, mpc, ogg, wma, wmal, wmav, aif, wav
  157. # Formats that should never be decoded
  158. # no_decode = { "format", "format" }
  159. # Formats that should always be decoded
  160. # force_decode = { "format", "format" }
  161. # Watch named pipes in the library for data and autostart playback when
  162. # there is data to be read. To exclude specific pipes from watching,
  163. # consider using the above _ignore options.
  164. # pipe_autostart = true
  165. # Enable automatic rating updates
  166. # If enabled, rating is automatically updated after a song has either been
  167. # played or skipped (only skipping to the next song is taken into account).
  168. # The calculation is taken from the beets plugin "mpdstats" (see
  169. # https://beets.readthedocs.io/en/latest/plugins/mpdstats.html).
  170. # It consist of calculating a stable rating based only on the play- and
  171. # skipcount and a rolling rating based on the current rating and the action
  172. # (played or skipped). Both results are combined with a mix-factor of 0.75:
  173. # new rating = 0.75 * stable rating + 0.25 * rolling rating)
  174. # rating_updates = false
  175. # Allows creating, deleting and modifying m3u playlists in the library directories.
  176. # Only supported by the player web interface and some mpd clients
  177. # Defaults to being disabled.
  178. # allow_modifying_stored_playlists = false
  179. # A directory in one of the library directories that will be used as the default
  180. # playlist directory. OwnTone creates new playlists in this directory if only
  181. # a playlist name is provided (requires "allow_modify_stored_playlists" set to true).
  182. # default_playlist_directory = ""
  183. }
  184. # Local audio output
  185. audio {
  186. # Name - used in the speaker list in Remote
  187. nickname = "Computer"
  188. # Type of the output (alsa, pulseaudio, dummy or disabled)
  189. # type = "alsa"
  190. # For pulseaudio output, an optional server hostname or IP can be
  191. # specified (e.g. "localhost"). If not set, connection is made via local
  192. # socket.
  193. # server = ""
  194. # Audio PCM device name for local audio output - ALSA only
  195. # card = "default"
  196. # Mixer channel to use for volume control - ALSA only
  197. # If not set, PCM will be used if available, otherwise Master.
  198. # mixer = ""
  199. # Mixer device to use for volume control - ALSA only
  200. # If not set, the value for "card" will be used.
  201. # mixer_device = ""
  202. # Enable or disable audio resampling to keep local audio in sync with
  203. # e.g. Airplay. This feature relies on accurate ALSA measurements of
  204. # delay, and some devices don't provide that. If that is the case you
  205. # are better off disabling the feature.
  206. # sync_disable = false
  207. # Here you can adjust when local audio is started relative to other
  208. # speakers, e.g. Airplay. Negative values correspond to moving local
  209. # audio ahead, positive correspond to delaying it. The unit is
  210. # milliseconds. The offset must be between -1000 and 1000 (+/- 1 sec).
  211. # offset_ms = 0
  212. # To calculate what and if resampling is required, local audio delay is
  213. # measured each second. After a period the collected measurements are
  214. # used to estimate drift and latency, which determines if corrections
  215. # are required. This setting sets the length of that period in seconds.
  216. # adjust_period_seconds = 100
  217. }
  218. # ALSA device settings
  219. # If you have multiple ALSA devices you can configure them individually via
  220. # sections like the below. Make sure to set the "card name" correctly. See the
  221. # README about ALSA for details. Note that these settings will override the ALSA
  222. # settings in the "audio" section above.
  223. #alsa "card name" {
  224. # Name used in the speaker list. If not set, the card name will be used.
  225. # nickname = "Computer"
  226. # Mixer channel to use for volume control
  227. # If not set, PCM will be used if available, otherwise Master
  228. # mixer = ""
  229. # Mixer device to use for volume control
  230. # If not set, the card name will be used
  231. # mixer_device = ""
  232. #}
  233. # Pipe output
  234. # Allows OwnTone to output audio data to a named pipe
  235. #fifo {
  236. # nickname = "fifo"
  237. # path = "/path/to/fifo"
  238. #}
  239. # AirPlay settings common to all devices
  240. #airplay_shared {
  241. # UDP ports used when airplay devices make connections back to
  242. # OwnTone (choosing specific ports may be helpful when running
  243. # OwnTone behind a firewall)
  244. # control_port = 0
  245. # timing_port = 0
  246. #}
  247. # AirPlay per device settings
  248. # (make sure you get the capitalization of the device name right)
  249. #airplay "My AirPlay device" {
  250. # OwnTone's volume goes to 11! If that's more than you can handle
  251. # you can set a lower value here
  252. # max_volume = 11
  253. # Enable this option to exclude a particular AirPlay device from the
  254. # speaker list
  255. # exclude = false
  256. # Enable this option to keep a particular AirPlay device in the speaker
  257. # list and thus ignore mdns notifications about it no longer being
  258. # present. The speaker will remain until restart of OwnTone.
  259. # permanent = false
  260. # Some devices spuriously disconnect during playback, and based on the
  261. # device type OwnTone may attempt to reconnect. Setting this option
  262. # overrides this so reconnecting is either always enabled or disabled.
  263. # reconnect = false
  264. # AirPlay password
  265. # password = "s1kr3t"
  266. # Disable AirPlay 1 (RAOP)
  267. # raop_disable = false
  268. # Name used in the speaker list, overrides name from the device
  269. # nickname = "My speaker name"
  270. #}
  271. # Chromecast settings
  272. # (make sure you get the capitalization of the device name right)
  273. #chromecast "My Chromecast device" {
  274. # OwnTone's volume goes to 11! If that's more than you can handle
  275. # you can set a lower value here
  276. # max_volume = 11
  277. # Enable this option to exclude a particular device from the speaker
  278. # list
  279. # exclude = false
  280. # Name used in the speaker list, overrides name from the device
  281. # nickname = "My speaker name"
  282. #}
  283. # Spotify settings (only have effect if Spotify enabled - see README/INSTALL)
  284. spotify {
  285. # The server can stream from Spotify using either its own implementation
  286. # or using Spotify's libspotify (which was deprecated many years ago)
  287. # use_libspotify = false
  288. # Directory where user settings should be stored (credentials)
  289. # (only has effect with libspotify)
  290. # settings_dir = "/var/cache/owntone/libspotify"
  291. # Cache directory
  292. # (only has effect with libspotify)
  293. # cache_dir = "/tmp"
  294. # Set preferred bitrate for music streaming
  295. # 0: No preference (default), 1: 96kbps, 2: 160kbps, 3: 320kbps
  296. # bitrate = 0
  297. # Your Spotify playlists will by default be put in a "Spotify" playlist
  298. # folder. If you would rather have them together with your other
  299. # playlists you can set this option to true.
  300. # base_playlist_disable = false
  301. # Spotify playlists usually have many artist, and if you don't want
  302. # every artist to be listed when artist browsing in Remote, you can set
  303. # the artist_override flag to true. This will use the compilation_artist
  304. # as album artist for Spotify items.
  305. # artist_override = false
  306. # Similar to the different artists in Spotify playlists, the playlist
  307. # items belong to different albums, and if you do not want every album
  308. # to be listed when browsing in Remote, you can set the album_override
  309. # flag to true. This will use the playlist name as album name for
  310. # Spotify items. Notice that if an item is in more than one playlist,
  311. # it will only appear in one album when browsing (in which album is
  312. # random).
  313. # album_override = false
  314. }
  315. # MPD configuration (only have effect if MPD enabled - see README/INSTALL)
  316. mpd {
  317. # TCP port to listen on for MPD client requests.
  318. # Default port is 6600, set to 0 to disable MPD support.
  319. # port = 6600
  320. # HTTP port to listen for artwork requests (only supported by some MPD
  321. # clients and will need additional configuration in the MPD client to
  322. # work). Set to 0 to disable serving artwork over http.
  323. # http_port = 0
  324. # By default OwnTone will - like iTunes - clear the playqueue if
  325. # playback stops. Setting clear_queue_on_stop_disable to true will keep
  326. # the playlist like MPD does. Note that some dacp clients do not show
  327. # the playqueue if playback is stopped.
  328. # clear_queue_on_stop_disable = false
  329. }
  330. # SQLite configuration (allows to modify the operation of the SQLite databases)
  331. # Make sure to read the SQLite documentation for the corresponding PRAGMA
  332. # statements as changing them from the defaults may increase the possibility of
  333. # database corruptions! By default the SQLite default values are used.
  334. sqlite {
  335. # Cache size in number of db pages for the library database
  336. # (SQLite default page size is 1024 bytes and cache size is 2000 pages)
  337. # pragma_cache_size_library = 2000
  338. # Cache size in number of db pages for the daap cache database
  339. # (SQLite default page size is 1024 bytes and cache size is 2000 pages)
  340. # pragma_cache_size_cache = 2000
  341. # Sets the journal mode for the database
  342. # DELETE (default), TRUNCATE, PERSIST, MEMORY, WAL, OFF
  343. # pragma_journal_mode = DELETE
  344. # Change the setting of the "synchronous" flag
  345. # 0: OFF, 1: NORMAL, 2: FULL (default)
  346. # pragma_synchronous = 2
  347. # Number of bytes set aside for memory-mapped I/O for the library database
  348. # (requires sqlite 3.7.17 or later)
  349. # 0: disables mmap (default), any other value > 0: number of bytes for mmap
  350. # pragma_mmap_size_library = 0
  351. # Number of bytes set aside for memory-mapped I/O for the cache database
  352. # (requires sqlite 3.7.17 or later)
  353. # 0: disables mmap (default), any other value > 0: number of bytes for mmap
  354. # pragma_mmap_size_cache = 0
  355. # Should the database be vacuumed on startup? (increases startup time,
  356. # but may reduce database size). Default is yes.
  357. # vacuum = yes
  358. }
  359. # Streaming audio settings for remote connections (ie stream.mp3)
  360. streaming {
  361. # Sample rate, typically 44100 or 48000
  362. # sample_rate = 44100
  363. # Set the MP3 streaming bit rate (in kbps), valid options: 64 / 96 / 128 / 192 / 320
  364. # bit_rate = 192
  365. }