1;#<?php exit(); ?>##
2;#########################################################
3; General Config                                         #
4;#########################################################
5
6; This value is used to detect if this config file is up to date
7; this is compared against a constant called CONFIG_VERSION
8; that is located in src/Config/Init/InitializationHandlerConfig.php
9config_version = 56
10
11;#########################################################
12; Auto Update                                            #
13;#########################################################
14
15; Allow you to hard code a default git branch for Ampache
16; If you set this value the inbuilt updater will use this branch for updates.
17; POSSIBLE VALUES: master develop
18; DEFAULT: none
19;github_force_branch = "develop"
20
21; This value allows to override the composer binary path to distinguish between multiple composer versions
22; Either a binary name in $PATH as well as a fully qualified path is possible
23; DEFAULT: composer
24;composer_binary_path = "composer"
25
26; We sometimes need to talk and will show a warning to admin users
27; Enable this setting if you don't want to see warnings (When we enable them)
28; DEFAULT: false
29;hide_ampache_messages = "true"
30
31;#########################################################
32; Path Vars                                              #
33;#########################################################
34
35; The public http host of your server.
36; If not set, retrieved automatically from client request.
37; This setting is required for WebSocket server
38; DEFAULT: none
39;http_host = "localhost"
40
41; The public http port of your server.
42; If not set, retrieved automatically from client request.
43; DEFAULT: none
44;http_port = 80
45
46; The public path to your Ampache install
47; Do not put a trailing / on this path
48; For example if your site is located at http://localhost
49; than you do not need to enter anything for the web_path
50; if it is located at http://localhost/music you need to
51; set web_path to /music
52; DEFAULT: none
53web_path = "/ampache"
54
55; The local http url of your server.
56; This is used to access the server from within the
57; same host where ampache is running.
58; For example, if the ampache server is not
59; directly accessed via the public domain but via a reverse
60; proxy, local_web_path would need to be changed
61; to a localhost URL.
62; If not set, retrieved automatically from server information.
63; DEFAULT: none
64;local_web_path = "http://localhost/ampache"
65
66;#########################################################
67; Database                                               #
68;#########################################################
69
70; Hostname of your database
71; For socket authentication, set the path to socket file (e.g. /var/run/mysqld/mysqld.sock)
72; DEFAULT: localhost
73database_hostname = localhost
74
75; Port to use when connecting to your database
76; DEFAULT: none
77;database_port = 3306
78
79; Name of your Ampache database
80; DEFAULT: none
81database_name = ampache
82
83; Username for your Ampache database
84; DEFAULT: none
85database_username = username
86
87; Password for your Ampache database, this can not be blank
88; this is a 'forced' security precaution, the default value
89; will not work (except if using socket authentication)
90; DEFAULT: none
91database_password = password
92
93; Set a default charset for your database
94; Don't change this unless you understand how to BACKUP and RESTORE a database!
95;
96; DEFAULT: "utf8mb4"
97;database_charset = "utf8mb4"
98
99; Set a default collation for your database
100; Don't change this unless you understand how to BACKUP and RESTORE a database!
101;
102; There are a ton of options but you'll probably want one of these.
103; "utf8_unicode_ci"        = Regular unicode (3 bytes per character)
104; "utf8mb4_unicode_ci"     = 4 bytes per character
105; "utf8mb4_unicode_520_ci" = Supports more characters and is based on UCA 5.2.0 weight keys
106;   http://www.unicode.org/Public/UCA/5.2.0/allkeys.txt
107; DEFAULT: "utf8mb4_unicode_ci"
108;database_collation = "utf8mb4_unicode_ci"
109
110;#########################################################
111; Session and Security                                   #
112;#########################################################
113
114; Cryptographic secret
115; This MUST BE changed with your own secret key. Ampache-specific, just pick any random string you want.
116secret_key = "abcdefghijklmnoprqstuvwyz0123456"
117
118; Length that a session will last expressed in seconds. Default is
119; one hour.
120; DEFAULT: 3600
121session_length = 3600
122
123; Length that the session for a single streaming instance will last
124; the default is two hours. With some clients, and long songs this can
125; cause playback to stop, increase this value if you experience that
126; DEFAULT: 7200
127stream_length = 7200
128
129; This length defines how long a 'remember me' session and cookie will
130; last, the default is 86400, same as length. It is up to the administrator
131; of the box to increase this, for reference 86400 = 1 day,
132; 604800 = 1 week, and 2419200 = 1 month
133; DEFAULT: 604800
134remember_length = 604800
135
136; Name of the Session/Cookie that will sent to the browser
137; default should be fine
138; DEFAULT: ampache
139session_name = ampache
140
141; Lifetime of the Cookie, 0 == Forever (until browser close) , otherwise in terms of seconds
142; If you want cookies to last past a browser close set this to a value in seconds.
143; DEFAULT: 0
144session_cookielife = 0
145
146; Is the cookie a "secure" cookie? This should only be set to 1 (true) if you are
147; running a secure site (HTTPS).
148; DEFAULT: 0
149session_cookiesecure = 0
150
151; Auth Methods
152; This defines which auth methods Auth will attempt to use and in which order.
153; If auto_create isn't enabled the user must exist locally.
154; DEFAULT: mysql
155; VALUES: mysql,ldap,http,pam,external,openid
156auth_methods = "mysql"
157
158; External authentication
159; This sets the helper used for external authentication.  It should conform to
160; the interface used by mod_authnz_external
161; DEFAULT: none
162;external_authenticator = "/usr/sbin/pwauth"
163
164; Automatic local password updating
165; Determines whether successful authentication against an external source
166; will result in an update to the password stored in the database.
167; A locally stored password is needed for API access.
168; DEFAULT: "false"
169;auth_password_save = "true"
170
171; Log out redirection target
172; Defaults to our own login.php, but we can override it here if, for instance,
173; we want to redirect to an SSO provider instead.
174;logout_redirect = "http://sso.example.com/logout"
175
176; Use Access List
177; Toggle this on if you want Ampache to pay attention to the access list
178; and only allow streaming/downloading/api-rpc from known hosts api-rpc
179; will not work without this on.
180; NOTE: Default Behavior is DENY FROM ALL
181; DEFAULT: "true"
182access_control = "true"
183
184; Require Session
185; If this is set to true Ampache will make sure that the URL passed when
186; attempting to retrieve a song contains a valid Session ID This prevents
187; others from guessing URL's. This setting is ignored if you have use_auth
188; disabled.
189; DEFAULT: "true"
190require_session = "true"
191
192; Require LocalNet Session
193; If this is set to true then Ampache will require that a valid session
194; is passed even on hosts defined in the Local Network ACL. This setting
195; has no effect if access_control is not enabled
196; DEFAULT: "true"
197require_localnet_session = "true"
198
199; Multiple Logins
200; Added by Vlet 07/25/07
201; When this setting is enabled a user may only be logged in from a single
202; IP address at any one time, this is to prevent sharing of accounts
203; DEFAULT: "false"
204;prevent_multiple_logins = "true"
205
206;#########################################################
207; Metadata                                               #
208;#########################################################
209
210; This determines the tag order for all cataloged
211; music. If none of the listed tags are found then
212; Ampache will randomly use whatever was found.
213; POSSIBLE VALUES: ape asf avi id3v1 id3v2 lyrics3 matroska mpeg quicktime riff
214;     vorbiscomment
215; DEFAULT: vorbiscomment id3v2 id3v1 quicktime matroska ape asf avi mpeg riff
216getid3_tag_order = "vorbiscomment,id3v2,id3v1,quicktime,matroska,ape,asf,avi,mpeg,riff"
217
218; This determines whether we try to autodetect the encoding for id3v2 tags.
219; May break valid tags.
220; DEFAULT: "false"
221;getid3_detect_id3v2_encoding = "true"
222
223; This determines if we write the changes to files (as id3 tags) when modifying metadata, or only keep them in Ampache (the default).
224; DEFAULT: "false"
225;write_id3 = "true"
226
227; This determines if we write the changes to files (as id3 tags) when modifying album art, or only keep them in Ampache (the default)
228; as id3 metadata when updated.
229; DEFAULT: "false"
230;write_id3_art = "true"
231
232; This determines the order in which metadata sources are used (and in the
233; case of plugins, checked)
234; POSSIBLE VALUES (builtins): filename and getID3
235; POSSIBLE VALUES (plugins): MusicBrainz,TheAudioDb, plus any others you've installed.
236; DEFAULT: getID3 filename
237metadata_order = "getID3,MusicBrainz,TheAudioDb,filename"
238
239; This determines the order in which metadata sources are used (and in the
240; case of plugins, checked) for video files
241; POSSIBLE VALUES (builtins): filename and getID3
242; POSSIBLE VALUES (plugins): Tvdb,Tmdb,Omdb, plus any others you've installed.
243; DEFAULT: filename getID3
244metadata_order_video = "filename,getID3"
245
246; This determines if extended metadata grabbed from external services should be deferred.
247; If enabled, extended metadata is retrieved when browsing the library item.
248; If disabled, extended metadata is retrieved at catalog update.
249; Today, only Artist information (summary, place formed, ...) can be deferred.
250; DEFAULT: "true"
251deferred_ext_metadata = "true"
252
253; Some taggers use delimiters other than \0 for fields
254; This list specifies possible delimiters additional to \0
255; This setting takes a regex pattern. TODO: explain that this is not just for genres until we can replace this safely
256; DEFAULT: // / \ | , ;
257additional_genre_delimiters = "[/]{2}|[/\\\\|,;]"
258
259; Enable importing custom metadata from files.
260; This will need a bit of time during the import. So you may want to disable this
261; if you have troubles with huge databases.
262; DEFAULT: "false"
263;enable_custom_metadata = "true"
264
265;#########################################################
266; File Tags                                             #
267;#########################################################
268
269; This determines if we write metadata to files when modifying metadata, or only keep them in Ampache (the default).
270; DEFAULT: "false"
271;write_tags = "true"
272
273; Overwrite tags
274; This switch allows removal of id3v1 tags from the files.
275; DEFAULT: "false"
276;overwrite_tags = "true"
277
278;#########################################################
279; Catalog                                                #
280;#########################################################
281
282; File Pattern
283; This defines which file types Ampache will attempt to catalog
284; You can specify any file extension you want in here separating them with a |
285; DEFAULT: mp3|mpc|m4p|m4a|aac|ogg|oga|wav|aif|aiff|rm|wma|asf|flac|opus|spx|ra|ape|shn|wv
286catalog_file_pattern = "mp3|mpc|m4p|m4a|aac|ogg|oga|wav|aif|aiff|rm|wma|asf|flac|opus|spx|ra|ape|shn|wv"
287
288; Video Pattern
289; This defines which video file types Ampache will attempt to catalog
290; You can specify any file extension you want in here separating them with
291; a | but Ampache may not be able to parse them
292; DEAFULT: avi|mpg|mpeg|flv|m4v|mp4|webm|mkv|wmv|ogv|mov|divx|m2ts
293catalog_video_pattern = "avi|mpg|mpeg|flv|m4v|mp4|webm|mkv|wmv|ogv|mov|divx|m2ts"
294
295; Playlist Pattern
296; This defines which playlist types Ampache will attempt to catalog
297; You can specify any file extension you want in here separating them with
298; a | but Ampache may not be able to parse them
299; DEFAULT: m3u|m3u8|pls|asx|xspf
300catalog_playlist_pattern = "m3u|m3u8|pls|asx|xspf"
301
302; Prefix Pattern
303; This defines which prefix Ampache will ignore when importing tags from
304; your music. You may add any prefix you want separating them with a |
305; DEFAULT: The|An|A|Die|Das|Ein|Eine|Les|Le|La
306catalog_prefix_pattern = "The|An|A|Die|Das|Ein|Eine|Les|Le|La"
307
308; Ignore Pattern
309; Ignore files that match this pattern
310; You can specify any file extension you want in here separating them with a |
311; DEFAULT: None
312; catalog_ignore_pattern = "\(HTOA\)"
313
314; Catalog disable
315; This defines if catalog can be disabled without removing database entries
316; WARNING: this increase sensibly sql requests and slow down Ampache a lot
317; DEFAULT: "false"
318;catalog_disable = "true"
319
320; Catalog filter
321; This defines if catalog can be filtered per user.
322; The filters are set in the catalog management pages.
323; WARNING: this increase sensibly sql requests and slow down Ampache a lot
324; DEFAULT: false
325;catalog_filter = "true"
326
327; Delete from disk
328; This determines if catalog manager users can delete media from disk.
329; DEFAULT: "false"
330;delete_from_disk = "true"
331
332; Catalog verify by time
333; Only verify the files that have been modified since the last verify.
334; For large catalogs the verify process can be terribly long so this will help
335; speed things up by checking modification date using filemtime() before loading
336; DEFAULT: "true"
337catalog_verify_by_time = "false"
338
339;#########################################################
340; Program Settings                                       #
341;#########################################################
342
343; Downsample Remote
344; If this is set to true and access control is on any users who are not
345; coming from a defined 'network' ACL will be automatically downsampled
346; regardless of their preferences. Requires access_control to be enabled
347; DEFAULT: "false"
348;downsample_remote = "true"
349
350; Track User IPs
351; If this is enabled Ampache will log the IP of every completed login
352; it will store user, ip and time at one row per login. The results are
353; displayed in Admin --> Users
354; DEFAULT: "false"
355;track_user_ip = "true"
356
357; User IP Cardinality
358; This defines how many days worth of IP history Ampache will track
359; As it is one row per login on high volume sites you will want to
360; clear it every now and then.
361; DEFAULT: 42 days
362;user_ip_cardinality = "42"
363
364; Allow Zip Download
365; This setting allows/disallows using zlib to zip up an entire
366; playlist/album for download. Even if this is turned on you will
367; still need to enabled downloading for the specific user you
368; want to be able to use this function
369; DEFAULT: "false"
370;allow_zip_download = "true"
371
372; Allow Zip Types
373; This setting allows/disallows zip download of specific object types
374; If empty, all supported object types can be zipped.
375; Otherwise, only the given object list can be zipped.
376; POSSIBLE VALUES: artist, album, playlist, search, tmp_playlist
377; DEFAULT: none
378;allow_zip_types = "album"
379
380; Art Zip Add
381; This settings allows/disallows to include Album Art to the Zip
382; If 'album_art_preferred_filename' exists this is included
383; DEFAULT: false
384;art_zip_add = "true"
385
386; File Zip Comment
387; This is an optional configuration option that adds a comment
388; to your zip files, this only applies if you've got allow_zip_downloads
389; DEFAULT: Ampache - Zip Batch Download
390;file_zip_comment = "Ampache - Zip Batch Download"
391
392; Waveform
393; This settings tells Ampache to attempt to generate a waveform
394; for each song. It requires transcode and encode_args_wav settings.
395; You must also set tmp_dir_path in order for this to work
396; DEFAULT: "false"
397;waveform = "true"
398
399; Waveform color
400; The waveform color.
401; DEFAULT: #FF0000
402;waveform_color = "#FF0000"
403
404; Waveform height
405; The waveform height.
406; DEFAULT: 32
407;waveform_height = 32
408
409; Waveform width
410; The waveform width.
411; DEFAULT: 400
412;waveform_width = 400
413
414; Temporary Directory Path
415; If Waveform is enabled this must be set to tell
416; Ampache which directory to save the temporary file to. Do not put a
417; trailing slash or this will not work.
418; DEFAULT: "false"
419;tmp_dir_path = "true"
420
421; This setting throttles a persons downloading to the specified
422; bytes per second. This is not a 100% guaranteed function, and
423; you should really use a server based rate limiter if you want
424; to do this correctly.
425; DEFAULT: off
426; VALUES: any whole number (in bytes per second)
427;throttle_download = 10
428
429; This determines if a preview image should be retrieved from video files
430; It requires encode_get_image transcode settings.
431; DEFAULT: "false"
432;generate_video_preview = "true"
433
434; Uncomment if don't want Ampache to follow symlinks
435; DEFAULT: "false"
436;no_symlinks = "true"
437
438; Use auth?
439; If this is set to "Yes" Ampache will require a valid
440; Username and password. If this is set to false then Ampache
441; will not ask you for a username and password. false is only
442; recommended for internal only instances
443; DEFAULT: "true"
444use_auth = "true"
445
446; Default Auth Level
447; If use_auth is set to false then this option is used
448; to determine the permission level of the 'default' users
449; default is administrator. This setting only takes affect
450; if use_auth is false
451; POSSIBLE VALUES: user, admin, manager, guest
452; DEFAULT: guest
453default_auth_level = "guest"
454
455; Skip Timer Threshold
456; This allows custom times to decide when a track is skipped
457; Allows an integer to denote seconds, or a float to denote percentage
458; POSSIBLE VALUES:
459; 20  = 20 seconds.
460; 0.3 = 30%
461; DEFAULT: 20
462;skip_timer = 20
463
464; 5 Star Ratings
465; This allows ratings for almost any object in Ampache
466; POSSIBLE VALUES: false true
467; DEFAULT: "true"
468ratings = "true"
469
470; Enable filtering on browse pages for artists and albums.
471; If you enable this setting the get_random and browse pages
472; will remove artists and albums that are <= to that rating
473; DEFAULT: "false"
474;rating_browse_filter = "true"
475
476; Set the rating that will be filtered
477; e.g. 2 will filter 1 and 2 star albums and artists
478; this setting must be set for the filter to work
479; DEFAULT: null
480;rating_browse_minimum_stars = 1
481
482; By default Ampache assigns the rating set in files tags to
483; the system user (-1). If you would like ALL file tags to be
484; assigned to a specific user set their user ID here.
485; DEFAULT: -1
486;rating_file_tag_user = 1
487
488; User flags/favorites
489; This allows user flags for almost any object in Ampache as favorite
490; POSSIBLE VALUES: false true
491; DEFAULT: "true"
492userflags = "true"
493
494; Direct play
495; This allows user to play directly a song or album
496; POSSIBLE VALUES: false true
497; DEFAULT: "true"
498directplay = "true"
499
500; Sociable
501; This turns on / off all of the "social" features of Ampache
502; default is on, but if you don't care and just want music
503; turn this off to disable all social features.
504; DEFAULT: "true"
505sociable = "true"
506
507; License
508; This turns on / off all licensing features on Ampache
509; DEFAULT: "false"
510;licensing = "true"
511
512; This options will turn on/off Demo Mode
513; If Demo mode is on you can not play songs or update your catalog
514; in other words.. leave this commented out
515; DEFAULT: "false"
516;demo_mode = "true"
517
518; This options will turn on/off Simple User Mode
519; If simple_user_mode is true you can not edit your profile or make
520; changes to your account unless you are an admin
521; This is for shared accounts or simple sites like the ampache demo
522; DEFAULT: "false"
523;simple_user_mode = "true"
524
525; Caching
526; This turns the caching mechanisms on or off, due to a large number of
527; problems with people with very large catalogs and low memory settings
528; this is off by default as it does significantly increase the memory
529; requirements on larger catalogs. If you have the memory this can create
530; a 2-3x speed improvement.
531; DEFAULT: "false"
532;memory_cache = "true"
533
534; Memory Limit
535; This defines the "Min" memory limit for PHP if your php.ini
536; has a lower value set Ampache will set it up to this. If you
537; set it below 16MB getid3() will not work!
538; DEFAULT: 32
539;memory_limit = 32
540
541; Album Art Preferred Filename
542; Specify a filename to look for if you always give the same filename
543; i.e. "folder.jpg" Ampache currently only supports jpg/gif and png
544; Especially useful if you have a front and a back image in a folder
545; comment out if Ampache should search for any jpg, gif or png
546; DEFAULT: folder.jpg
547;album_art_preferred_filename = "folder.jpg"
548
549; Artist Art Preferred Filename
550; Specify a filename to look for artist specific art, either in the
551; same folder as your files or in the parent folder
552; e.g. /mnt/music/Artist/Album/artist.jpg
553;      /mnt/music/Artist/artist.jpg
554; DEFAULT: folder.jpg
555;artist_art_preferred_filename = "folder.jpg"
556
557; Artist Art Dump Folder
558; Specify a local folder to search for art using name/title to identify
559; i.e. "/var/www/art/" is filled with artist images named by artist
560; e.g. "Megadeth.jpg", "Judas Priest.png", "The Smashing Pumpkins.jpg"
561; When enabled; gather_folder will check this folder for artist images
562; DEFAULT: "false"
563;artist_art_folder = "/var/www/art"
564
565; Album Art Store on Disk
566; This defines if arts should be stored on disk instead of database.
567; DEFAULT: "false"
568;album_art_store_disk = "true"
569
570; Local Metadata Directory
571; This define a local metadata directory with write access where to store
572; heavy data if enabled (album arts, ...)
573; DEFAULT: none
574;local_metadata_dir = "/metadata"
575
576; Maximal upload size
577; Specify the maximal allowed upload size for images, in bytes.
578; DEFAULT: 1048576
579;max_upload_size = 1048576
580
581; Album Art Minimum Width
582; Specify the minimum width for arts (in pixel).
583; DEFAULT: none
584;album_art_min_width = 100
585
586; Album Art Maximum Width
587; Specify the maximum width for arts (in pixel).
588; DEFAULT: none
589;album_art_max_width = 1024
590
591; Album Art Minimum Height
592; Specify the minimum height for arts (in pixel).
593; DEFAULT: none
594;album_art_min_height = 100
595
596; Album Art Maximum Height
597; Specify the maximum height for arts (in pixel).
598; DEFAULT: none
599;album_art_max_height = 1024
600
601; Resize Images * Requires PHP-GD *
602; Set this to true if you want Ampache to resize the Album
603; art on the fly, this increases load time and CPU usage
604; and also requires the PHP-GD library. This is very useful
605; If you have high-quality album art and a small upload cap
606; DEFAULT: "false"
607;resize_images = "true"
608
609; Playlist Cover Art
610; Set this to true if you want Ampache to generate
611; cover art for playlists automatically based on
612; the content.
613; DEFAULT: "false"
614;playlist_art = "true"
615
616; Statistical Graphs * Requires PHP-GD *
617; Set this to true if you want Ampache to generate statistical graphs on usages / users.
618; This is false by default due to issues around the licensing of c-pchart.
619;  https://github.com/ampache/ampache/issues/1515
620;  http://www.pchart.net/license
621; REFERENCE: https://github.com/ampache/ampache/wiki/chart-faq
622; You can enable c-chart with the following command
623;  composer require szymach/c-pchart "2.*"
624; DEFAULT: "false"
625;statistical_graphs = "true"
626
627; Art Gather Order
628; Simply arrange the following in the order you would like
629; Ampache to search. If you want to disable one of the search
630; methods simply leave it out. DB should be left as the first
631; method unless you want it to overwrite what's already in the
632; database
633; POSSIBLE VALUES (builtins): db tags folder lastfm musicbrainz google
634; POSSIBLE VALUES (plugins): Amazon,TheAudioDb,Tmdb,Omdb,Flickr
635; DEFAULT: db,tags,folder,spotify,musicbrainz,lastfm,google
636art_order = "db,spotify,TheAudioDb,musicbrainz,lastfm,tags,folder"
637
638; Gather song art
639; Gather song art additionally to the album art. This will add each
640; image of a song into the database. If your database contains
641; many songs not related to an album this should possibly be set to true.
642; Otherwise for an environment that contains mainly full albums
643; this should remain false to avoid multiple entries of the same image.
644; You need to set show_song_art to true if you want to make the song images visible.
645; DEFAULT = false
646;gather_song_art = "true"
647
648; Show song art
649; Show song art instead of album art in web UI and Subsonic API.
650; This will only work when gather_song_art is set to true AND when
651; there is song art in the database.
652; DEFAULT: false
653;show_song_art = "true"
654
655; Spotify Album art search filter
656;  Narrow the search.
657;  POSSIBLE VALUES:  artist,(year:1991 or year:1991-2000)
658; POSSIBLE  VALUES: empty string("") or commented out for no filter
659; DEFAULT: none;
660;spotify_art_filter = "artist"
661
662; Art search limit
663;  Limit the total images returned
664;  DEFAULT: 5
665;art_search_limit = 15
666
667; Recommendations
668; Set this to true to enable display of similar artists or albums
669; while browsing. Requires Last.FM.
670; DEFAULT: "false"
671;show_similar = "true"
672
673; Hide Searches from the API
674; Set this to true and the get_indexes and playlists methods will not automatically include
675; searches/smart lists in the results.
676; Older versions of the Kodi Add-on will require this for playlists to work
677; DEFAULT: "false"
678;hide_search = "true"
679
680;#########################################################
681;      API keys                                          #
682;#########################################################
683
684; Last.FM API Key
685; Set this to your Last.FM api key to actually use Last.FM for
686; recommendations and metadata.
687lastfm_api_key = "d5df942424c71b754e54ce1832505ae2"
688
689; Last.FM API secret
690; Set this to your Last.FM api secret to actually use Last.FM for
691; scrobbling.
692lastfm_api_secret = ""
693
694; Spotify client id
695; Set this to your Spotify client id to actually use Spotify for
696; accessing their catalog API. (https://developer.spotify.com/dashboard/)
697;spotify_client_id = ""
698
699; Spotify client secret
700; Both id and secret are required to access the spotify catalog.
701;spotify_client_secret = ""
702
703; Wanted
704; Set this to true to enable display missing albums and the
705; possibility for users to mark it as wanted.
706; DEFAULT: "false"
707;wanted = "true"
708
709; Wanted types
710; Set the allowed types of wanted releases (album,compilation,single,ep,live,remix,promotion,official)
711; DEFAULT: album,official
712wanted_types = "album,official"
713
714; Wanted Auto Accept
715; Mark wanted requests as accepted by default (no content manager agreement required)
716; DEFAULT: "false"
717;wanted_auto_accept = "true"
718
719; Labels
720; Use labels to browse artists per label membership.
721; DEFAULT: "false"
722;label = "true"
723
724; Broadcasts
725; Allow users to broadcast music.
726; This feature requires advanced server configuration, please take a look on the wiki for more information.
727; DEFAULT: "false"
728;broadcast = "true"
729
730; Channels
731; Set this to true to enable channels and the
732; possibility for users to create channels from playlists
733; DEFAULT: "false"
734;channel = "true"
735
736; Live Streams
737; Set this to true to enable live streams (radio) and the
738; possibility for users to add new live streams.
739; DEFAULT: "true"
740live_stream = "true"
741
742; Podcasts
743; Set this to true to enable podcasts and the
744; possibility for admins to subscribe to new podcasts.
745; DEFAULT: "false"
746;podcast = "true"
747
748; Web Socket address
749; Declare the web socket server address
750; DEFAULT: determined automatically
751;websocket_address = "ws://localhost:8100"
752
753; Refresh Limit
754; This defines the default refresh limit in seconds for
755; pages with dynamic content, such as Now Playing
756; DEFAULT: 60
757; Possible Values: Int > 5
758refresh_limit = "60"
759
760; Embedded Now Playing Page
761; Set this to true to enable the embedded Now Playing page (now_playing.php).
762; This page allows for embedding a Now Playing badge into a stream
763; or status page. Use with the parameter 'user_id' to filter by a
764; specific user. This page is like rss in that it doesn't require a
765; login to view.
766; DEFAULT: "false"
767;use_now_playing_embedded = "true"
768
769; Now Playing Refresh Limit
770; This defines the refresh limit in seconds for the
771; Now Playing embedded page. This (now_playing.php) is not
772; part of the normal application and is designed to be
773; embedded in another app, like a stream or status page.
774; If this value is not valid, automatic refresh will be disabled.
775; DEFAULT: -1
776; Possible Values; Int > 1
777;now_playing_refresh_limit = "-1"
778
779; Now Playing Custom CSS
780; This defines the custom css file for the Now Playing embedded
781; page. This (now_playing.php) is not part of the normal
782; application and is designed to be embedded in another app, like
783; a stream or status page.
784; If this value is not set, no CSS will be used. Custom CSS can
785; still be applied in the other application, like OBS.
786; DEFAULT: Not enabled
787;now_playing_css_file = "templates/now-playing.css"
788
789; Footer Statistics
790; This defines whether statistics (Queries, Cache Hits, Load Time)
791; are shown in the page footer.
792; DEFAULT: "true"
793; Possible values: "true", "false"
794show_footer_statistics = "true"
795
796; RSS Feeds
797; Set this to true to enable rss feeds.
798; (latest albums, shouts, albums of artist, ...)
799; use_rss = false (values true | false)
800; DEFAULT: "false"
801;use_rss = "true"
802
803; This setting allows themes to overwrite PHP template files. This can be really
804; dangerous. Do this only if you trust every theme in your themes/ directory.
805; DEFAULT: "false"
806;allow_php_themes = "true"
807
808; Subsonic clients all seem to ignore the download method and always stream.
809; This setting will stop recording stats from Subsonic stream actions.
810; (This means you can sync playlists without overloading your server)
811; Make sure you enable scrobbling in your Subsonic client to keep recording stats!
812; DEFAULT: "true"
813;subsonic_stream_scrobble = "true"
814
815;#########################################################
816; Debugging                                              #
817;#########################################################
818
819; Debug
820; If this is enabled Ampache will write debugging information to the log file
821; DEFAULT: "false"
822;debug = "true"
823
824; Debug Level
825; This should always be set in conjunction with the
826; debug option, it defines how prolific you want the
827; debugging in Ampache to be. values are 1-5.
828; 1 == Basic Errors
829; 2 == Errors + Failures (login attempts etc.)
830; 3 == Full Error Information
831; 4 == General Information
832; 5 == Full Information (cataloging progress etc.)
833; DEFAULT: 5
834debug_level = 5
835
836; Path to Log File
837; This defines where you want Ampache to log events to
838; this will only happen if debug is turned on. Do not
839; include trailing slash. You will need to make sure that
840; the specified directory exists and your HTTP server has
841; write access.
842; DEFAULT: none
843log_path = "/var/log/ampache"
844
845; Log filename pattern
846; This defines where the log file name pattern
847; %name.%Y%m%d.log will create a different log file every day.
848; DEFAULT: %name.%Y%m%d.log
849log_filename = "%name.%Y%m%d.log"
850
851;#########################################################
852; Encoding Settings                                      #
853;#########################################################
854
855; Charset of generated HTML pages
856; Default of UTF-8 should work for most people
857; DEFAULT: UTF-8
858site_charset = UTF-8
859
860; Locale Charset
861; Local charset (mainly for file operations) if different
862; from site_charset.
863; This is disabled by default, enable only if needed
864; (for Windows please set lc_charset to ISO8859-1)
865; DEFAULT: ISO8859-1
866;lc_charset = "ISO8859-1"
867
868; Multibyte
869; See http://php.net/manual/mbstring.supported-encodings.php
870; If you want ID3v1 encoding detection to work, you should uncomment this line
871; so that the ordering is sane.
872; DEFAULT: auto
873;mb_detect_order = "ASCII,UTF-8,EUC-JP,ISO-2022-JP,SJIS,JIS"
874
875;#########################################################
876; Custom actions (optional)                              #
877;#########################################################
878
879; Your custom play action title
880;custom_play_action_title_0 = ""
881; Your custom play action icon name (stored as /images/icon_[your_image].png)
882;custom_play_action_icon_0 = ""
883; Your custom action script, where:
884;   - %f: the media file path
885;   - %c: the excepted codec target (mp3, ogg, ...)
886;   - %a: the artist name
887;   - %A: the album name
888;   - %t: the song title
889;custom_play_action_run_0 = ""
890
891; Example for Karaoke playing
892;custom_play_action_title_0 = "Karaoke"
893;custom_play_action_icon_0 = "microphone"
894;custom_play_action_run_0 = "sox \"%f\" -p oops | ffmpeg -i pipe:0 -f %c pipe:1"
895
896;#########################################################
897; LDAP login info (optional)                             #
898;#########################################################
899
900; LDAP server URL (required)
901; DEFAULT: none
902;ldap_url = "ldap://localhost/"
903;ldap_url = "ldaps://localhost/"
904
905; LDAP credentials (optional)
906; DEFAULT: none
907;ldap_username = ""
908;ldap_password = ""
909
910; LDAP Base DN for the search (required)
911; DEFAULT: none
912;ldap_search_dn = "ou=People,dc=yoursubdomain,dc=yourdomain,dc=yourtld"
913
914; LDAP objectClass (required)
915; DEFAULT: none
916;ldap_objectclass = "posixAccount"          ; OpenLDAP
917;ldap_objectclass = "organizationalPerson"  ; Microsoft Active Directory
918
919; LDAP filter for search (required)
920; DEFAULT: none
921;ldap_filter = "(uid=%v)"                   ; OpenLDAP
922;ldap_filter = "(sAMAccountName=%v)"        ; Microsoft Active Directory
923
924; Require that the user is in a specific group (optional)
925; DEFAULT: none
926;ldap_require_group = "cn=yourgroup,ou=yourorg,dc=yoursubdomain,dc=yourdomain,dc=yourtld"
927
928; LDAP name field
929; DEFAULT: cn
930;ldap_name_field = "cn"
931;ldap_name_field = "displayName"
932
933; LDAP email field
934; DEFAULT: mail
935;ldap_email_field = "mail"
936
937; LDAP avatar field
938; DEFAULT: none
939;ldap_avatar_field = "jpegPhoto"
940
941; LDAP avatar mime type
942; DEFAULT: image/jpeg
943;ldap_avatar_mime = "image/jpeg"
944
945; LDAP protocol version to use
946; DEFAULT: 3
947;ldap_protocol_version = 3
948
949; LDAP StartTLS
950; DEFAULT: "false"
951;ldap_start_tls = "true"
952
953; LDAP member attribute name.
954; That's the name of the attribute of the group that will contain
955; the usernames.
956; DEFAULT: member
957;ldap_member_attribute = "member"
958;ldap_member_attribute = "memberuid"
959
960;#########################################################
961; OpenID login info (optional)                           #
962;#########################################################
963
964; Requires specific OpenID Provider Authentication Policy
965; DEFAULT: none
966; VALUES: PAPE_AUTH_MULTI_FACTOR_PHYSICAL,PAPE_AUTH_MULTI_FACTOR,PAPE_AUTH_PHISHING_RESISTANT
967;openid_required_pape = ""
968
969;#########################################################
970; Public Registration settings, defaults to disabled     #
971;#########################################################
972
973; This setting will silently create an Ampache account
974; for anyone who can login using LDAP (or any other login
975; extension). The default is to create new users as guests
976; see auto_user config option if you would like to change this
977; DEFAULT: "false"
978;auto_create = "true"
979
980; This setting will silently update an Ampache account's
981; information for anyone who can login using LDAP
982; (or any other login extension).
983; DEFAULT: "false"
984;external_auto_update = "true"
985
986; This setting turns on/off public registration. It is
987; recommended you leave this off, as it will allow anyone to
988; sign up for an account on your server.
989; REMEMBER: don't forget to set the mail from address further down in the config.
990; DEFAULT: "false"
991;allow_public_registration = "true"
992
993; Require Captcha Text on Image confirmation
994; Turning this on requires the user to correctly
995; type in the letters in the image created by Captcha
996; Default is off because its very hard to detect if it failed
997; to draw, or they failed to enter it.
998; DEFAULT: "false"
999;captcha_public_reg = "true"
1000
1001; This setting turns on/off admin notification of registration.
1002; DEFAULT: "false"
1003;admin_notify_reg = "true"
1004
1005; This setting determines whether the user will be created as a disabled user.
1006; If this is on, an administrator will need to manually enable the account
1007; before it's usable.
1008; DEFAULT: "false"
1009;admin_enable_required = "true"
1010
1011; This setting will allow all registrants/ldap/http users
1012; to be auto-approved as a user. By default, they will be
1013; added as a guest and must be promoted by the admin.
1014; POSSIBLE VALUES: guest, user, admin
1015; DEFAULT: guest
1016;auto_user = "guest"
1017
1018; This will display the user agreement when registering
1019; For agreement text, edit config/registration_agreement.php
1020; User will need to accept the agreement before they can register
1021; DEFAULT: "false"
1022;user_agreement = "true"
1023
1024; This disable email confirmation when registering.
1025; DEFAULT: "false"
1026;user_no_email_confirm = "true"
1027
1028; This will display the cookie disclaimer (EU Cookie Law)
1029; DEFAULT: "false"
1030;cookie_disclaimer = "true"
1031
1032; The fields that will be shown on Registration page
1033; If a user wants to register.
1034; Username and email fields are forced.
1035; POSSIBLE VALUES: fullname,website,state,city
1036; DEFAULT: fullname,website
1037registration_display_fields = "fullname,website"
1038
1039; The fields that will be mandatory
1040; This controls which fields are mandatory for registration.
1041; Username and email fields are forced mandatory.
1042; POSSIBLE VALUES: fullname,website,state,city
1043; DEFAULT: fullname
1044registration_mandatory_fields = "fullname"
1045
1046;#########################################################
1047; These options control the dynamic downsampling based   #
1048; on current usage                                       #
1049; *Note* Transcoding must be enabled and working         #
1050;#########################################################
1051
1052; Attempt to optimize bandwidth by dynamically lowering the bit rate of new
1053; streams. Since the bit rate is only adjusted at the beginning of a song, the
1054; actual cumulative bitrate for concurrent streams can be up to around
1055; double the configured value. It also only applies to streams that are
1056; transcoded.
1057; DEFAULT: none
1058;max_bit_rate = 576
1059
1060; New dynamically downsampled streams will be denied if they are forced below
1061; this value.
1062; DEFAULT: 8
1063;min_bit_rate = 48
1064
1065;#########################################################
1066; Transcode Settings                                     #
1067;#########################################################
1068
1069; These are commands used to transcode non-streaming
1070; formats to the target file type for streaming.
1071; This can be useful in re-encoding file types that don't stream
1072; very well, or if your player doesn't support some file types.
1073;
1074; 'Downsampling' will also use these commands.
1075;
1076; To state the bleeding obvious, any programs referenced in the transcode
1077; commands must be installed, in the web server's search path (or referenced
1078; by their full path), and executable by the web server.
1079
1080; Input type selection
1081; TYPE is the extension. 'allowed' certifies that transcoding works properly for
1082; this input format. 'required' further forbids the direct streaming of a format
1083; (e.g. if you store everything in FLAC, but don't want to ever stream that.)
1084; transcode_TYPE = {allowed|required|false}
1085; DEFAULT: "false"
1086;;; Audio
1087;transcode_m4a  = "allowed"
1088;transcode_flac = "required"
1089;transcode_mpc  = "required"
1090;transcode_ogg  = "required"
1091;transcode_oga  = "required"
1092;transcode_opus = "required"
1093;transcode_wav  = "required"
1094;transcode_wma  = "required"
1095;transcode_aif  = "required"
1096;transcode_aiff = "required"
1097;transcode_ape  = "required"
1098;transcode_shn  = "required"
1099transcode_mp3  = "allowed"
1100;;; Video
1101;transcode_avi  = "allowed"
1102;transcode_mkv  = "allowed"
1103;transcode_mpg  = "allowed"
1104;transcode_mpeg = "allowed"
1105;transcode_m4v  = "allowed"
1106;transcode_mp4  = "allowed"
1107;transcode_mov  = "allowed"
1108;transcode_wmv  = "allowed"
1109;transcode_ogv  = "allowed"
1110;transcode_divx = "allowed"
1111;transcode_m2ts = "allowed"
1112;transcode_webm = "allowed"
1113
1114; Default audio output format
1115; DEFAULT: none
1116;encode_target = mp3
1117
1118; Default video output format
1119; DEFAULT: none
1120;encode_video_target = webm
1121
1122; Override the default output format on a per-type basis, for example,
1123; to stream lossless encoded files in lossy formats.
1124; encode_target_TYPE = TYPE
1125; DEFAULT: none
1126;encode_target_flac = opus
1127
1128; Override the default TYPE transcoding behavior on a per-player basis, for example,
1129; to stream lossless using the api and lossy using the web interface.
1130; transcode_player_PLAYER_TYPE = TYPE
1131; Valid PLAYER is: webplayer, api
1132; DEFAULT: none
1133;transcode_player_webplayer_m4a = "required"
1134;transcode_player_webplayer_flac = "required"
1135;transcode_player_webplayer_mpc = "required"
1136
1137; Override the default output format on a per-player basis
1138; encode_player_PLAYER_target = TYPE
1139; Valid PLAYER is: webplayer, api
1140; DEFAULT: none
1141;encode_player_webplayer_target = mp3
1142;encode_player_api_target = mp3
1143
1144; Allow clients to override transcode settings (output type, bitrate, codec ...)
1145; DEFAULT: "true"
1146transcode_player_customize = "true"
1147
1148; Command configuration. Substitutions will be made as follows:
1149; %FILE% => filename
1150; %BITRATE% => target bit rate (as chosen by the admin or users in the
1151; preferences, if transcode_player_customize = "true")
1152; You can do fancy things like VBR, but consider whether the consequences are
1153; acceptable in your environment.
1154
1155; Master transcode command
1156; transcode_cmd should be a single command that supports multiple file types,
1157; such as ffmpeg or avconv. It's still possible to make a configuration that's
1158; equivalent to the old default, but if you find that necessary you should be
1159; clever enough to figure out how on your own.
1160; DEFAULT: none
1161;transcode_cmd = "ffmpeg"
1162;transcode_cmd = "avconv"
1163;transcode_cmd = "/usr/bin/neatokeen"
1164
1165; Transcode input file argument
1166transcode_input = "-i %FILE%"
1167
1168; Specific transcode commands
1169; It shouldn't be necessary in most cases, but you can override the transcode
1170; command for specific source formats.  It still needs to accept the
1171; encoding arguments, so the easiest approach is to use your normal command as
1172; a clearing-house.
1173; transcode_cmd_TYPE = TRANSCODE_CMD
1174;transcode_cmd_mid = "timidity -Or -o – %FILE% | ffmpeg -f s16le -i pipe:0"
1175
1176; Encoding arguments
1177; For each output format, you should provide the necessary arguments for
1178; your transcode_cmd.
1179; encode_args_TYPE = TRANSCODE_CMD_ARGS
1180encode_args_mp3 = "-vn -b:a %BITRATE%K -c:a libmp3lame -f mp3 pipe:1"
1181encode_args_ogg = "-vn -b:a %BITRATE%K -c:a libvorbis -f ogg pipe:1"
1182encode_args_opus = "-vn -b:a %BITRATE%K -c:a libopus -compression_level 10 -vsync 2 -f ogg pipe:1"
1183encode_args_m4a = "-vn -b:a %BITRATE%K -c:a libfdk_aac -f adts pipe:1"
1184encode_args_wav = "-vn -b:a %BITRATE%K -c:a pcm_s16le -f wav pipe:1"
1185encode_args_flv = "-b:a %BITRATE%K -ar 44100 -ac 2 -v 0 -f flv -c:v libx264 -preset superfast -threads 0 pipe:1"
1186encode_args_webm = "-b:a %BITRATE%K -f webm -c:v libvpx -preset superfast -threads 0 pipe:1"
1187encode_args_ts = "-q %QUALITY% -s %RESOLUTION% -f mpegts -c:v libx264 -c:a libmp3lame -maxrate %MAXBITRATE%k -preset superfast -threads 0 pipe:1"
1188encode_args_ogv = "-codec:v libtheora -qscale:v 7 -codec:a libvorbis -qscale:a 5 -f ogg pipe:1"
1189
1190; Encoding arguments to retrieve an image from a single frame
1191encode_get_image = "-ss %TIME% -f image2 -vframes 1 pipe:1"
1192
1193; Encoding argument to encrust subtitle
1194encode_srt = "-vf \"subtitles='%SRTFILE%'\""
1195
1196; Encode segment frame argument
1197encode_ss_frame = "-ss %TIME%"
1198
1199; Encode segment duration argument
1200encode_ss_duration = "-t %DURATION%"
1201
1202; Use segments for transcoding or send it all in one go.
1203; Useful if you are having issues streaming the full track.
1204; You can set it for all streams or a specific player
1205; POSSIBLE VALUES: true webplayer api
1206; DEFAULT: "webplayer"
1207send_full_stream = "webplayer"
1208
1209;#########################################################
1210; Transcode Caching                                      #
1211;#########################################################
1212
1213; These are commands used to pre-cache a file format for streaming.
1214; This helps avoid waiting for transcodes to finish and makes
1215; files immediately available to the client.
1216
1217; Path to your cache folder.
1218; This is where the pre-transcoded files will be stored
1219; DEFAULT: none
1220;cache_path = "/tmp"
1221
1222; Default audio output format
1223; DEFAULT: none
1224;cache_target = "mp3"
1225
1226; Look in your local catalogs for these file extensions and pre-cache to the
1227; 'cache_path'. This could be helpful to reduce space needed on your
1228; web server or to make sure that clients get files quickly.
1229; Execute "php bin/cli run:cacheProcess" to process these files.
1230; DEFAULT: "false"
1231;cache_m4a  = "true"
1232;cache_flac = "true"
1233;cache_mpc  = "true"
1234;cache_ogg  = "true"
1235;cache_oga  = "true"
1236;cache_opus = "true"
1237;cache_wav  = "true"
1238;cache_wma  = "true"
1239;cache_aif  = "true"
1240;cache_aiff = "true"
1241;cache_ape  = "true"
1242;cache_shn  = "true"
1243;cache_mp3  = "true"
1244
1245; REMOTE CATALOGS ONLY
1246; Enabling cache_remote on remote catalogs will cache every file on the remote server
1247; DEFAULT: "false"
1248;cache_remote  = "true"
1249
1250;#########################################################
1251; Proxy Settings (optional)                              #
1252;#########################################################
1253
1254; If Ampache is behind an http proxy, specify the hostname or IP address
1255; port, proxy username, and proxy password here.
1256; DEFAULT: not in use
1257;proxy_host = "192.168.0.1"
1258;proxy_port = "8080"
1259;proxy_user = ""
1260;proxy_pass = ""
1261
1262; If Ampache is behind an https reverse proxy, force use HTTPS protocol.
1263; DEFAULT: "false"
1264;force_ssl = "true"
1265
1266;#########################################################
1267;  Mail Settings                                         #
1268;#########################################################
1269
1270; Enable or disable email server features
1271; otherwise, you can reset your password
1272; and never receive an email with the new one
1273; Default: false
1274;mail_enable = "true"
1275
1276; Method used to send mail
1277; POSSIBLE VALUES: smtp sendmail php
1278; DEFAULT: php
1279;mail_type = "php"
1280
1281; Mail domain.
1282; DEFAULT: example.com
1283;mail_domain = "example.com"
1284
1285; This will be combined with mail_domain and used as the source address for
1286; emails generated by Ampache.  For example, setting this to 'me' will set the
1287; sender to 'me@example.com'.
1288; DEFAULT: info
1289;mail_user = "info"
1290
1291; A name to go with the email address.
1292; DEFAULT: Ampache
1293;mail_name = "Ampache"
1294
1295; How strictly email addresses should be checked.
1296; easy does a regex match, strict actually performs some SMTP transactions
1297; to see if we can send to this address.
1298; POSSIBLE VALUES: strict easy none
1299; DEFAULT: strict
1300;mail_check = "strict"
1301
1302;#########################################################
1303;  sendmail Settings                                     #
1304;#########################################################
1305
1306; DEFAULT: /usr/sbin/sendmail
1307;sendmail_path = "/usr/sbin/sendmail"
1308
1309;#########################################################
1310;  SMTP Settings                                         #
1311;#########################################################
1312
1313; Mail server (hostname or IP address)
1314; DEFAULT: localhost
1315;mail_host = "localhost"
1316
1317; SMTP port
1318; DEFAULT: 25
1319;mail_port = 25
1320
1321; Secure SMTP
1322; POSSIBLE VALUES: ssl tls
1323; DEFAULT: none
1324;mail_secure_smtp = tls
1325
1326; Enable SMTP authentication
1327; DEFAULT: "false"
1328;mail_auth = "true"
1329
1330; SMTP username
1331; your mail auth username.
1332;mail_auth_user = ""
1333
1334; SMTP password
1335; your mail auth password.
1336;mail_auth_pass = ""
1337
1338;#########################################################
1339;   Abbreviation Filter                                  #
1340;#########################################################
1341
1342; For file name parsing. Any unnecessary abbreviations in file names can be removed during parsing
1343; by adding them to the list below so that they will be removed during the parsing process.
1344common_abbr = "divx,xvid,dvdrip,hdtv,lol,axxo,repack,xor,pdtv,real,vtv,caph,2hd,proper,fqm,uncut,topaz,tvt,notv,fpn,fov,orenji,0tv,omicron,dsr,ws,sys,crimson,wat,hiqt,internal,brrip,boheme,vost,vostfr,fastsub,addiction,x264,LOL,720p,1080p,YIFY,evolve,fihtv,first,bokutox,bluray,tvboom,info"
1345