Bläddra i källkod

[mopidy] Clean up role

Colin Powell 4 år sedan
förälder
incheckning
603952fe2b

+ 79 - 77
ansible/group_vars/jails

@@ -1,78 +1,80 @@
 $ANSIBLE_VAULT;1.1;AES256
-38343366346338353530396239373536643338383238373666323664633534653035356166376430
-3238633664623635353535643463333964613235393538610a656331393931346361383030343036
-34626135383365356333313835323534613131333261393331306435313637636132636633386534
-6366343461383966320a313134336638363563386261343836666533316662653736336364393231
-62313632633630646264363838613265616130353638396637343262636565353763313765343836
-39373638643162396136613230333033613130666331383934316633313764626133653932346636
-38656466343661373136643762373533303163643363636263333165323633383632663266643634
-39396462393264393330353035626436353662303561633965386638336437633866633662636130
-34343037326433653935353936356237623261646366326631346434366631363133393230616165
-62313564613464396330373039353739643632343261343662323930343130643935626436393835
-65373132376462363538643361643936376466353066373138353839666536663531336263323061
-63623365613738313338626666393631343065356139313930333030626235366234323965323932
-63326430313934363833363164353534656137363133373062643230623364616564383036363865
-65393530386339396661613461666466353032306263313934333434636630396664623561346636
-31306363643930646166303861613339636165666562313162633035303737343765316139386234
-32373134303161663134303133613535653765656566383361323933383636306337396430613638
-63343138376234663564656538343731373231633565616530363336303331366262623436346264
-39393138333631653530643533333633376365306331366264323764396335376538343932626533
-33356465656362383939646139393533323433623633393930383364313064666637666465393163
-65663531313161343064643230333530343862373432323537366430373239343665333664633831
-33313830383065646164333631636433616533336334373065396361376166653561363562323363
-62653630346439363937393262623131663861363761356639376465663132386539653161646139
-61333764316539303234633030393738333333393832343363353031303662356637643235353234
-35393236646636663233666633623638383236316233396230663731306464323935396366323833
-33323830336638646637643365323462313333326362363263336631313762356463363662623765
-66343566633435613738326361356332386165326435316431636430353739356332313431656261
-62396136636438313764643861633762393435386462663465633861356131663839663063376565
-63643362313864353639636336613832633866383939623133383966356138356638663439343662
-63353261623837333461386635666631643631336164383861633861373061366435613834633731
-39613030346664383966333234656365396663393765346362383165613637343963633731396436
-37663765393230643434353633363534363930616639356664623032623662353930306233633136
-31616666306463346335653965323139326238343532653637396237623162366137623031613731
-30343638393839646138373535363965336465396432616237663365323937393934613366366534
-31356231623666643162386632386533636430623034633964343736326464613630653165666637
-30343732616462313039623865363364643462303034303364383466306131653664363336306531
-61613666383131383565356264323762343564373732383638313032643139303638626666646162
-30376139373131616361306661666539616137336137663163393638353233666163373662343139
-63633466396437326333303661343639666636343930323462373666656233363937306565353736
-66356139316163366331656263346437656132383964623738623363333137326532386635653462
-65306334616466396430346133366665636366633234626130653239613831306232623366633534
-62343163633034653964623234396461626431346439383830373364616436616231303234326139
-30323639613265663663356534306230633034393263623163346433353563626561376634356364
-62373637386438323838363930396639323961383636336332396363313362396233663363636332
-33313239383861666663376238643238366331633065326262323539626536393962633036356333
-63616361653565313365316339326534626638663863346536343034313166323265353435316333
-36643736313561393236383535633664393866353434653961363838613739656665336263646631
-33383030353839353763333164333366646132366631316162653036643163653663336262643965
-63636236363366323930626561633730643935663139633262303766313533373434613734393265
-66363064346134313535323030636464636433323339633865636233353839613630646432646133
-36306230373338383261353866346637613237386463383830643364326137333731396230313263
-34663936316439633631633832366562343064636366333662346165383134353230346466646561
-33333431363762303163393033376135343036623732383430333163353732303562363866663735
-65383236643139383339376264373232643963396166633733666261313234663162643932306538
-35623033376632343830656539303031616463313433306337633633383731623031376437633039
-31343835653862643361363135396566383063393135313366373566653861306662666630363939
-64663435663338656135343263386661353161386338323734363334666438396663383034643861
-37316634373030653437613633363032343362643836333931356330363037306538316664383464
-38363364343538393165663630663364616362383361306361636134636635613435383435313766
-62316637356139386534363861333331626138316563623338313736373765613730633862396530
-65366230303736373966316633643965343334386535323539623166316331623363616435313863
-38613134626138623936333538303238396538313736643366313636626235396634346431636661
-31373733393333343731666531393165383231383035653333343564656338353339656665333932
-30356464633965613063333466343937353537333862373764626236313764313835396462353261
-65383832336338636137303561353663376239376133613435333963633636366330626665643364
-32323134313962636634386662663732623434623061636666326235303265656263656338316435
-32646638336266356163393365383538363463323737383631303364643263353734663131313063
-37366139663064346333313133316539323937343335303030376235383064393738323930313666
-32616337346139663264306334656232393665393331373633343362353438363438393835303337
-33346238653664353464333333396364643631326434396161336639643731363338623434303231
-33613135663064626365663431663933316238613334383438383230383663616334326233333434
-65656537653834313563333238366236313632313438303665616536376264316333343631653530
-37633331633537663538333930373932303462306530393636353137343162643462396337346165
-37633461323830623833313838373332326362336662333135666363383835356630626631333262
-37663665376435343134316436333330643236323366646536396334653731613731653034383161
-36373965633930313063623062303634396230396630346639393563356138323038613833376665
-30353433373161396639386431393833626332343463313136626134373464396666366437616437
-6538
+66326566646231343863343161373133356630343835306665636339393332643562653461306432
+6533393936666132323237396139343038343831336139340a393962373862383634646465323063
+65303736386531306332643033343531356531343462373438633631356266353837316237663433
+3965623964356434380a623862386337623439643137386330333238633334303939666235643366
+36353833623761346432663866346163633962653465333033636438663964633333343634303434
+64343634303031393935646431326233356136383534323964323266323639383331666364393436
+65646635383533636363653162626231643864366232383530303266626566303963653532646165
+32303138643337326462383836386432633162633038646635316466323334383231326261346338
+31323834393831393562303630363534616435623435396161663765623331303630336664643139
+64613638623834363434333939343834636139393561396134306130336638643433666637353862
+36653764373037376662636261623132643435633430356265303130633963343563343764306165
+31636663303362663633623233623162363366386465373434393530663665393638383739633237
+62623134393134323133653239346362643862663261366365643533326436663565663464336632
+64613566623634336265346132356133323538393537363439353465303633356362613133666137
+66643337613331636337613033653861313164323462373235343330313866303265616230383063
+36303830353835383963373333623530626662636631363631333238643631643539313530363830
+34666461353534396663633961356133663531643234333461333838353331656237313364366432
+62303665326366656635643432343534376233343532653362393832373266323537393936346338
+39633465653931373636323462306133363236313037303862396462346638343637316231393733
+30623931396431613965303232313639383235653566636261393338396364396337363261663635
+34646338333634323330346638303931343064316231643236353362666264383834353336353365
+63336136363737313332393830633961336535626134373538313739346332636537633139303232
+33643366656138613836343266303131303531346535623963373961306436633137306366623064
+33336662636661323131326139353638353834646436306432326364313938653537383137366633
+39316534633132393432656466313434353065623965663435323866393766633539633930316532
+32393839353738323136353437663331356535356234396138353137396133633033343630326662
+35303866353262346531633464333338393236393338326139326430373633613863323961636236
+66336236646239343635333161613561633733333130343834646130313132666562383262333563
+33383439383733643632366462396532653363323566343937353430396437613965373536623766
+61663230333162306332626132326638373030363637363161366131386138373362386634613361
+37613265373237633432626433333331393837363638393834613137376631666664623334373137
+61316237656635356566623732373733623062306433663064356632393061396330323533313931
+30306334613638336230323966643133343263663337636563646132616131656530303865366566
+63373061623963663232356338373232633035643339663232636438666136373761666439363930
+63636434623632633765323963343636333761626366653331636433623134353564353861373838
+33353666653666373531356465373634313064613663356165616266643165653837616239366165
+63633333303762643835626564346464346633326334343637663065626162343264383137613563
+33333963646533383435313065376239323863323166393331346466343036333564643362313731
+32303263636533353834393364666634623532356436623163396666323835613433326430353735
+62386536623861666164303038653132376663343631613038383464333566323638623834653134
+62356464323734326564333437396165396331643632636437633264613331643334626133376630
+31313535313464306130663536366238306262363133306462343761396331653263663263616534
+33623739373330373961656437323266303566626637656435616533343462356561653235643632
+65626333363332666534663662353265393261386537636563316665386564666133623962613139
+37626130363130316435373465626365306366326332333365646234626662303538663938353661
+61383063636332393761323334353965376462653435613531346266313463346136313434316536
+39626563376138326439633463333164316462313761663561623336333339376132323331623262
+31633638393638316335626134336130326635656130346166646363343665316262303966383666
+35343361373261316634636333613663623935353662386533373339353239343165393737643033
+31323266366464376365626265623339336531363737373162333739343630643564633664383965
+33363139333133666137646331363162373066356261306237333838616437323362323663393262
+37313337396231663765393663353364653739633030316663656339313662633038313432333034
+61646162393739646364306534336333626366393664353031353639623434346330353731343034
+31616639656365613862633935633564323764376364333438633861346136373132663235343762
+36396465366666616561316261653037313535393134663838356364656130323137616539363032
+38666334383961653661353663313531626532376538333937643465316438313031633136666334
+63303632376463303465356430653032393166343233373936646330636435646663343532366433
+39356630653335616336306234656335333234343962366331326663363939376332316436366665
+62623939636433396439666662363966663831316362666139393930306465626534636666643434
+34623066303763346235376163383939653738346431326335633033636434623831303562653465
+64303261653335656235363630666631386639333033333364653766323564303263666663646536
+30306362383630306432623061666662383235313436346631313637336261376663653232376338
+64666465316261656235316364636530386262333365333962343166396364343661303766653666
+39313538623365373035333537363134646232633763323565303234626131396631383534626264
+61333962306563373831373535306336653437376365313839343765643130316139386237366335
+35653237616630356337633663343166373735303435636164643737343834646637366261633233
+34333335653439336331396562306439366266633665383639613233633635363061336331616534
+65353064316237643431356564396163613430303632636135363333666265333235306233666239
+31666338636239353034366237643239643662623264653339643765376332323461333766323166
+38373136336134306138326436623339393838363934653931623439653734366635376565633636
+35376233383931656564313465363663303532613035643335623364353563663532396561643935
+33303935643263653732646439303663363634333436653138643365623035356430626434313538
+65646134616335303663363436316634623935326430393933323062666237663566356163653731
+61363339336662626638663237393562633862396165653465633232366335393162343833643663
+33353637643762653638646139373964643435306664356439346335356465353461643135666364
+33373161646434346162376162623533363332626561366561623136386532633333656539656433
+63656438386537653832396339633435373765353930326164663436656232353636626237313431
+34653566316632363438636162343835363066316136376464396261343538323332366166613337
+663330343133323436346337366133613739

BIN
ansible/roles/mopidy/files/silence.mp3


+ 10 - 0
ansible/roles/mopidy/handlers/main.yml

@@ -0,0 +1,10 @@
+---
+- name: Mopidy restarted
+  service:
+    name: mopidy
+    state: restarted
+
+- name: Icecast restarted
+  service:
+    name: icecast2
+    state: restarted

+ 56 - 0
ansible/roles/mopidy/tasks/main.yml

@@ -0,0 +1,56 @@
+---
+- name: Mopidy apt gpg key installed
+  shell: "wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -"
+
+- name: Mopidy apt repo added
+  shell: "sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list"
+
+- name: Package cache updated
+  shell: apt update
+
+- name: Dependencies installed
+  apt:
+    name: "mopidy mopidy-spotify mopidy-soundcloud mopidy-mpd mopidy-podcast mopidy-tunein mopidy-local icecast2"
+    state: present
+
+- name: Playlist folder exists
+  file:
+    path: /var/lib/mopidy/playlists
+    owner: mopidy
+    group: audio
+    mode: 0755
+    state: directory
+
+- name: Media folder exists
+  file:
+    path: /var/lib/mopidy/media
+    owner: mopidy
+    group: audio
+    mode: 0755
+    state: directory
+
+- name: Searx dependencies up-to-date
+  shell: "pip3 install mopidy-iris mopidy-muse mopidy-musicbox-webclient mopidy-mowecl mopidy-mobile mopidy-party"
+
+- name: Icecast silence.mp3 installed
+  copy:
+    src: silence.mp3
+    dest: /usr/share/icecast2/web/
+    owner: root
+    mode: 0666
+
+- name: Icecast settings installed
+  template:
+    src: icecast.xml.j2
+    dest: /etc/icecast2/icecast.xml
+    owner: root
+    mode: 0600
+  notify: icecast restarted
+
+- name: Mopidy settings installed
+  template:
+    src: mopidy.conf.j2
+    dest: /etc/mopidy/mopidy.conf
+    owner: root
+    mode: 0600
+  notify: mopidy restarted

+ 249 - 0
ansible/roles/mopidy/templates/icecast2.xml.j2

@@ -0,0 +1,249 @@
+<icecast>
+    <!-- location and admin are two arbitrary strings that are e.g. visible
+         on the server info page of the icecast web interface
+         (server_version.xsl). -->
+    <location>Earth</location>
+    <admin>icemaster@localhost</admin>
+
+    <!-- IMPORTANT!
+         Especially for inexperienced users:
+         Start out by ONLY changing all passwords and restarting Icecast.
+         For detailed setup instructions please refer to the documentation.
+         It's also available here: http://icecast.org/docs/
+    -->
+
+    <limits>
+        <clients>100</clients>
+        <sources>2</sources>
+        <queue-size>524288</queue-size>
+        <client-timeout>30</client-timeout>
+        <header-timeout>15</header-timeout>
+        <source-timeout>10</source-timeout>
+        <!-- If enabled, this will provide a burst of data when a client 
+             first connects, thereby significantly reducing the startup 
+             time for listeners that do substantial buffering. However,
+             it also significantly increases latency between the source
+             client and listening client.  For low-latency setups, you
+             might want to disable this. -->
+        <burst-on-connect>1</burst-on-connect>
+        <!-- same as burst-on-connect, but this allows for being more
+             specific on how much to burst. Most people won't need to
+             change from the default 64k. Applies to all mountpoints  -->
+        <burst-size>65535</burst-size>
+    </limits>
+
+    <authentication>
+        <!-- Sources log in with username 'source' -->
+        <source-password>mainr0ot</source-password>
+        <!-- Relays log in with username 'relay' -->
+        <relay-password>{{icecast2_relay_pass}}</relay-password>
+
+        <!-- Admin logs in with the username given below -->
+        <admin-user>admin</admin-user>
+        <admin-password>{{icecast2_admin_pass}}</admin-password>
+    </authentication>
+
+    <!-- set the mountpoint for a shoutcast source to use, the default if not
+         specified is /stream but you can change it here if an alternative is
+         wanted or an extension is required
+    <shoutcast-mount>/live.nsv</shoutcast-mount>
+    -->
+
+    <!-- Uncomment this if you want directory listings -->
+    <!--
+    <directory>
+        <yp-url-timeout>15</yp-url-timeout>
+        <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
+    </directory>
+    -->
+
+    <!-- This is the hostname other people will use to connect to your server.
+         It affects mainly the urls generated by Icecast for playlists and yp
+         listings. You MUST configure it properly for YP listings to work!
+    -->
+    <hostname>stream.unbl.ink</hostname>
+
+    <!-- You may have multiple <listen-socket> elements -->
+    <listen-socket>
+        <port>8000</port>
+        <bind-address>0.0.0.0</bind-address>
+        <shoutcast-mount>/stream</shoutcast-mount>
+    </listen-socket>
+    <!--
+    <listen-socket>
+        <port>8080</port>
+    </listen-socket>
+    -->
+    <!--
+    <listen-socket>
+        <port>8443</port>
+        <ssl>1</ssl>
+    </listen-socket>
+    -->
+
+
+    <!-- Global header settings 
+         Headers defined here will be returned for every HTTP request to Icecast.
+
+         The ACAO header makes Icecast public content/API by default
+         This will make streams easier embeddable (some HTML5 functionality needs it).
+         Also it allows direct access to e.g. /status-json.xsl from other sites.
+         If you don't want this, comment out the following line or read up on CORS. 
+    -->
+    <http-headers>
+        <header name="Access-Control-Allow-Origin" value="*" />
+    </http-headers>
+
+
+    <!-- Relaying
+         You don't need this if you only have one server.
+         Please refer to the documentation for a detailed explanation.
+    -->
+    <!--<master-server>127.0.0.1</master-server>-->
+    <!--<master-server-port>8001</master-server-port>-->
+    <!--<master-update-interval>120</master-update-interval>-->
+    <!--<master-password>hackme</master-password>-->
+
+    <!-- setting this makes all relays on-demand unless overridden, this is
+         useful for master relays which do not have <relay> definitions here.
+         The default is 0 -->
+    <!--<relays-on-demand>1</relays-on-demand>-->
+
+    <!--
+    <relay>
+        <server>127.0.0.1</server>
+        <port>8080</port>
+        <mount>/example.ogg</mount>
+        <local-mount>/different.ogg</local-mount>
+        <on-demand>0</on-demand>
+
+        <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
+    </relay>
+    -->
+
+
+    <!-- Mountpoints
+         Only define <mount> sections if you want to use advanced options,
+         like alternative usernames or passwords
+    -->
+    
+    <mount>
+      <mount-name>/mopidy</mount-name>
+      <fallback-mount>/silence.mp3</fallback-mount>
+      <fallback-override>1</fallback-override>
+    </mount>
+    <!-- Default settings for all mounts that don't have a specific <mount type="normal">.
+    -->
+    <!-- 
+    <mount type="default">
+        <public>0</public>
+        <intro>/server-wide-intro.ogg</intro>
+        <max-listener-duration>3600</max-listener-duration>
+        <authentication type="url">
+                <option name="mount_add" value="http://auth.example.org/stream_start.php"/>
+        </authentication>
+        <http-headers>
+                <header name="foo" value="bar" />
+        </http-headers>
+    </mount>
+    -->
+
+    <!-- Normal mounts -->
+    <!--
+    <mount type="normal">
+        <mount-name>/example-complex.ogg</mount-name>
+
+        <username>othersource</username>
+        <password>hackmemore</password>
+
+        <max-listeners>1</max-listeners>
+        <dump-file>/tmp/dump-example1.ogg</dump-file>
+        <burst-size>65536</burst-size>
+        <fallback-mount>/example2.ogg</fallback-mount>
+        <fallback-override>1</fallback-override>
+        <fallback-when-full>1</fallback-when-full>
+        <intro>/example_intro.ogg</intro>
+        <hidden>1</hidden>
+        <public>1</public>
+        <authentication type="htpasswd">
+                <option name="filename" value="myauth"/>
+                <option name="allow_duplicate_users" value="0"/>
+        </authentication>
+        <http-headers>
+                <header name="Access-Control-Allow-Origin" value="http://webplayer.example.org" />
+                <header name="baz" value="quux" />
+        </http-headers>
+        <on-connect>/home/icecast/bin/stream-start</on-connect>
+        <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
+    </mount>
+    -->
+
+    <!--
+    <mount type="normal">
+        <mount-name>/auth_example.ogg</mount-name>
+        <authentication type="url">
+            <option name="mount_add"       value="http://myauthserver.net/notify_mount.php"/>
+            <option name="mount_remove"    value="http://myauthserver.net/notify_mount.php"/>
+            <option name="listener_add"    value="http://myauthserver.net/notify_listener.php"/>
+            <option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>
+            <option name="headers"         value="x-pragma,x-token"/>
+            <option name="header_prefix"   value="ClientHeader."/>
+        </authentication>
+    </mount>
+    -->
+
+    <fileserve>1</fileserve>
+
+    <paths>
+        <!-- basedir is only used if chroot is enabled -->
+        <basedir>/usr/share/icecast2</basedir>
+
+        <!-- Note that if <chroot> is turned on below, these paths must both
+             be relative to the new root, not the original root -->
+        <logdir>/var/log/icecast2</logdir>
+        <webroot>/usr/share/icecast2/web</webroot>
+        <adminroot>/usr/share/icecast2/admin</adminroot>
+        <!-- <pidfile>/usr/share/icecast2/icecast.pid</pidfile> -->
+
+        <!-- Aliases: treat requests for 'source' path as being for 'dest' path
+             May be made specific to a port or bound address using the "port"
+             and "bind-address" attributes.
+          -->
+        <!--
+        <alias source="/foo" destination="/bar"/>
+        -->
+        <!-- Aliases: can also be used for simple redirections as well,
+             this example will redirect all requests for http://server:port/ to
+             the status page
+        -->
+        <alias source="/" destination="/status.xsl"/>
+        <!-- The certificate file needs to contain both public and private part.
+             Both should be PEM encoded.
+        <ssl-certificate>/usr/share/icecast2/icecast.pem</ssl-certificate>
+        -->
+    </paths>
+
+    <logging>
+        <accesslog>access.log</accesslog>
+        <errorlog>error.log</errorlog>
+        <!-- <playlistlog>playlist.log</playlistlog> -->
+        <loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
+        <logsize>10000</logsize> <!-- Max size of a logfile -->
+        <!-- If logarchive is enabled (1), then when logsize is reached
+             the logfile will be moved to [error|access|playlist].log.DATESTAMP,
+             otherwise it will be moved to [error|access|playlist].log.old.
+             Default is non-archive mode (i.e. overwrite)
+        -->
+        <!-- <logarchive>1</logarchive> -->
+    </logging>
+
+    <security>
+        <chroot>0</chroot>
+        <!--
+        <changeowner>
+            <user>nobody</user>
+            <group>nogroup</group>
+        </changeowner>
+        -->
+    </security>
+</icecast>

+ 88 - 0
ansible/roles/mopidy/templates/mopidy.conf.j2

@@ -0,0 +1,88 @@
+[core]
+cache_dir = /var/cache/mopidy
+config_dir = /etc/mopidy
+data_dir = /var/lib/mopidy
+restore_state = true
+
+[file]
+enabled = true
+media_dirs = 
+    /var/lib/mopidy/media
+follow_symlinks = true
+
+[local]
+enabled = true
+library = json
+media_dir = /var/lib/mopidy/media
+scan_follow_symlinks = true
+
+[m3u]
+playlists_dir = /var/lib/mopidy/playlists
+
+[http]
+enabled = true
+hostname = 0.0.0.0
+port = 6680
+static_dir =
+zeroconf = Mopidy HTTP server on $hostname
+allowed_origins =
+csrf_protection = true
+
+[stream]
+enabled = true
+protocols =
+    http
+    https
+    mms
+    rtmp
+    rtmps
+    rtsp
+timeout = 5000
+metadata_blacklist =
+
+[mpd]
+enabled = true
+hostname = 0.0.0.0
+port = 6600
+password = 
+max_connections = 20
+connection_timeout = 60
+zeroconf = Mopidy MPD server on $hostname
+command_blacklist = listall,listallinfo
+default_playlist_scheme = m3u
+
+[spotify]
+username = 1259345154
+password = {{mopidy_spotify_pass}} 
+client_id = 35a0ba20-960d-4a0d-8051-0b5616052b90
+client_secret = Ql_SaFO-rVA0Eknmb7cj2aj67VlFXRva3XH5zz-g8vE=
+
+[spotify_web]
+username = 1259345154
+password = starlit imaginary humid landing
+client_id = 35a0ba20-960d-4a0d-8051-0b5616052b90
+client_secret = {{mopidy_spotify_client_secret}}
+
+[soundcloud]
+auth_token = {{mopidy_soundcloud_auth_token}}
+
+[scrobbler]
+username = secstate
+password = {{mopidy_scrobbler_pass}}
+
+[podcast]
+enabled = true
+browse_root = https://gpodder.net/user/secstate/list/secstates-list.opml
+browse_order = desc
+lookup_order = asc
+cache_size = 64
+cache_ttl = 86400
+timeout = 10
+
+[musicbox_webclient]
+enabled = true
+musicbox = true
+on_track_click = ADD_THIS_BOTTOM
+
+[audio]
+output = lamemp3enc ! shout2send async=false mount=mopidy ip=127.0.0.1 port=8000 password=mainr0ot