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