Request:Koel (Personal Music Streaming Server)


Lappen

Recommended Posts

I got it up and running and listening to music.

 

I added a mariadb docker from the apps and then had to create my own template for Koel.

 

For anyone who wants it let me know.

Can you please post the steps you took to make this work?

 

I tried but was unsuccessful...

 

Thanks!

 

Sent from my Nexus 6 using Tapatalk

 

 

Link to comment

I am still running into 2 issues.

 

1. saving the config to the cache drive is not working so I doubt on a reboot anything will be saved BUT the DB is on another docker so it might not matter for now.

2. Music Scans was failing. I think I got it going now but taking awhile. I only had a few hundred songs before the scan failed.

 

As soon as I have know its working, I will post the steps or see if i can upload the template.

 

Hopefully someone with better knowledge can help us out and make a real template. There is a manual step you have to run at each start and I wonder if it can be built into the template but that is beyond me.

Link to comment

I don't know what I did wrong but it won't scan my music directory anymore. arg. even though I can go into Bash in the docker and i see my music.

Error: The media path is not a valid or readable path.

 

My template is attached.

 

You still need to install marianDB docker and create the database called forge

 

The following needs to be run after start

docker exec Koel su nginx -c "cd /DATA/htdocs && php artisan init"

my-Koel.xml.zip

Link to comment

+1 for this request.

 

Koel looks great.

 

@mgworek: Thanks for your template, I have tidied up a few of the variables from your template below if you don't mind

 

<?xml version="1.0"?>
<Container version="2">
  <Name>Koel</Name>
  <Repository>etopian/docker-koel</Repository>
  <Registry>https://hub.docker.com/r/etopian/docker-koel/</Registry>
  <Network>bridge</Network>
  <Privileged>false</Privileged>
  <Support/>
  <Overview/>
  <Category/>
  <TemplateURL/>
  <Icon>https://raw.githubusercontent.com/phanan/koel/master/resources/assets/img/logo.png</Icon>
  <WebUI>http://[iP]:[PORT:9876]</WebUI>
  <ExtraParams/>
  <Description/>
  <Networking>
    <Mode>bridge</Mode>
    <Publish>
      <Port>
        <HostPort>9876</HostPort>
        <ContainerPort>80</ContainerPort>
        <Protocol>tcp</Protocol>
      </Port>
    </Publish>
  </Networking>
  <Data>
    <Volume>
      <HostDir></HostDir>
      <ContainerDir>/music</ContainerDir>
      <Mode>rw</Mode>
    </Volume>
  </Data>
  <Environment>
    <Variable>
      <Value></Value>
      <Name>DB_HOST</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>forge</Value>
      <Name>DB_DATABASE</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>root</Value>
      <Name>DB_USERNAME</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value></Value>
      <Name>DB_PASSWORD</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value></Value>
      <Name>ADMIN_EMAIL</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value></Value>
      <Name>ADMIN_NAME</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value></Value>
      <Name>ADMIN_PASSWORD</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>False</Value>
      <Name>APP_DEBUG</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>production</Value>
      <Name>AP_ENV</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>99</Value>
      <Name/>
      <Mode/>
    </Variable>
    <Variable>
      <Value>100</Value>
      <Name/>
      <Mode/>
    </Variable>
  </Environment>
  <Config Name="Host Port" Target="80" Default="" Mode="tcp" Description="Container Port: 80" Type="Port" Display="always" Required="false" Mask="false">9876</Config>
  <Config Name="DB_HOST" Target="DB_HOST" Default="" Mode="" Description="Container Variable: DB_HOST" Type="Variable" Display="always" Required="false" Mask="false"></Config>
  <Config Name="DB_DATABASE" Target="DB_DATABASE" Default="" Mode="" Description="Container Variable: DB_DATABASE" Type="Variable" Display="always" Required="false" Mask="false">forge</Config>
  <Config Name="DB_USERNAME" Target="DB_USERNAME" Default="" Mode="" Description="Container Variable: DB_USERNAME" Type="Variable" Display="always" Required="false" Mask="false">root</Config>
  <Config Name="DB_PASSWORD" Target="DB_PASSWORD" Default="" Mode="" Description="Container Variable: DB_PASSWORD" Type="Variable" Display="always" Required="false" Mask="false"></Config>
  <Config Name="ADMIN_EMAIL" Target="ADMIN_EMAIL" Default="" Mode="" Description="Container Variable: ADMIN_EMAIL" Type="Variable" Display="always" Required="false" Mask="false"></Config>
  <Config Name="ADMIN_NAME" Target="ADMIN_NAME" Default="" Mode="" Description="Container Variable: ADMIN_NAME" Type="Variable" Display="always" Required="false" Mask="false"></Config>
  <Config Name="ADMIN_PASSWORD" Target="ADMIN_PASSWORD" Default="" Mode="" Description="Container Variable: ADMIN_PASSWORD" Type="Variable" Display="always" Required="false" Mask="false"></Config>
  <Config Name="APP_DEBUG" Target="APP_DEBUG" Default="" Mode="" Description="Container Variable: APP_DEBUG" Type="Variable" Display="always" Required="false" Mask="false">False</Config>
  <Config Name="AP_ENV" Target="AP_ENV" Default="" Mode="" Description="Container Variable: AP_ENV" Type="Variable" Display="always" Required="false" Mask="false">production</Config>
  <Config Name="Key 1" Target="" Default="" Mode="" Description="Container Variable: " Type="Variable" Display="always" Required="false" Mask="false">99</Config>
  <Config Name="Key 2" Target="" Default="" Mode="" Description="Container Variable: " Type="Variable" Display="always" Required="false" Mask="false">100</Config>
  <Config Name="music" Target="/music" Default="" Mode="rw" Description="Container Path: music" Type="Path" Display="always" Required="false" Mask="false"></Config>
</Container>

 

However even with this template above and with MariaDB setup with database "forge", I am still not able to initiate a scan.

 

I would love to see a correctly implemented Koel Container with auto start etc. Hopefully someone with the knowlege would be interested in setting one up!

Link to comment

Got it running using the template made by mgworek and Capt.Insan, but as the rest of you fails scanning any files. I have tried different filenaming, different directory structure, different tags, different ID3-versions (2.3 and 2.4 and both)...but really can't get the scanning working properly. When adding one album containing multiple files, often one of the files gets scanned and the rest don't ending in sql errors.

 

Would really love to hear from anyone who has success getting the scanning working properly.

 

Tia/Jacob

Link to comment

I am aware that the docker container we are using was last built 9 months ago and it does not pull newest release from git on startup. Meaning I think it is running a koel build as of 9 months ago, the problems we are facing may have been fixed in the master branch since then.

 

We need to build a new container to check if errors still exist. If no one can, I will try and get to it maybe later in the week.

 

 

Link to comment

OK, first and foremost this is very much a Proof of Concept.

It is buggy as hell and probably the worse way of implementing Koel as a Docker Container.

I would gladly have someone show me how its done and release a MUCH better version.

 

Steps to achieve this buggyness for your self:

1. Download the MariaDB/MySQL container and set up a database (I have the default name as "koel" in the container template)

2. Add my docker container repo to your "Docker Repositories" list:

https://github.com/CaptInsano/docker-containers/tree/templates

3. Add Container and select Koel from the list under Capt.Insano

4. Populate your info as relevant to yourself:

DB_HOST: IP address and port of your MariaDB/MySQL install (eg xxx.xxx.xxx.xxx:3306)
DB_DATABASE: Database name (default "koel")
DB_USERNAME: Database username (default "root")
DB_PASSWORD: Database password
ADMIN_EMAIL: needed for koel login, does not need to be a real email
ADMIN_NAME: Admin name
ADMIN_PASSWORDAdmin password for koel login

5. After the koel container has downloaded the koel install needs to be initialised, issue the following command in the unraid commandline:

docker exec Koel su nginx -c "cd /DATA/htdocs && php artisan koel:init"

6. You then need to issue the following command so that koel runs on the correct port and also allows connection outside localhost:

docker exec Koel su nginx -c "cd /DATA/htdocs && php artisan serve --port=8080 --host 0.0.0.0"

 

7. Visit unRAIDIPADDRESS:9876

 

***known problems***

the last command (#6) needs to be ran interactively (closing the ssh instance may stop koel (needs to be tested))

for some reason loads of my song titles start with "??", not a clue why

 

***conclusion***

by all means report any problems back but I am unsure if I will be able to help, I am decidedly a noob when it comes to this stuff!!

Hopefully some of the bigger players on the forums will swoop in and be able to offer help!!

 

Link to comment

Thanks for doing this. Will test when I can.

 

Question, on the last step. "docker exec Koel su nginx -c "cd /DATA/htdocs && php artisan serve --port=8080 --host 0.0.0.0""

 

can we just define it in the template like I did that mess of a template i created earlier that you cleaned up? Host Port Container Port: 80 Host port:8080 ?

 

Link to comment

So I have created a docker image for this but I found the performance was pretty crap even when using the very latest code. It took about 2 hours to scan 190GB of music and even loading the front page after this took about 10 secs before I could see the indexed content. However it is quite pretty although very minimal interface, I can tidy it up and post it if you guys are interested just be aware it's not going to be a smooth ride with a large library.

 

Sent from my SM-G900F using Tapatalk

 

 

Link to comment

 

***known problems***

the last command (#6) needs to be ran interactively (closing the ssh instance may stop koel (needs to be tested))

for some reason loads of my song titles start with "??", not a clue why

 

 

The "??" is when your mp3 files is tagged in v2.3. When tagged in v2.4 the titles and albums is shown correctly.

 

/Lappen

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.