Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Support] Linuxserver.io - Booksonic

Featured Replies

linuxserver_medium.png

 

Application Name: Booksonic

Application Site: http://booksonic.org

Docker Hub: https://hub.docker.com/r/linuxserver/booksonic/

Github: https://github.com/linuxserver/docker-booksonic

 

Please post any questions/issues relating to this docker you have in this thread.

 

If you are not using Unraid (and you should be!) then please do not post here, instead head to linuxserver.io to see how to get support

Edited by linuxserver.io

  • 5 months later...
  • Replies 86
  • Views 24.8k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Fixed image has now been pushed to the repo. It had broken due to the booksonic dev renaming the repo. Looks like they're rebasing booksonic on airsonic currently so we will switch to that once it is

  • You are running the latest version. It's just the author of booksonic that doesn't know how to make a proper release on github. If you check the release tab and check out the 2 commits to master after

  • Tags go after the repository entry   ie: instead of linuxserver/booksonic you would use linuxserver/booksonic:whateverTag  The appropriate tags are listed in the dockerHub page link on the O

Posted Images

Hi Team,

It seems as though, after the latest docker update booksonic is now getting 500 internal server errors. 

I tried deleting my config, container etc and reinstalling, but am still having the same problem. Here is an excerpt from my log with the error

 

at org.eclipse.jetty.server.Dispatcher.error(Dispatcher.java:81)
at org.eclipse.jetty.server.handler.ErrorHandler.doError(ErrorHandler.java:119)
at org.eclipse.jetty.server.handler.ErrorHandler.handle(ErrorHandler.java:78)
at org.eclipse.jetty.server.Response.sendError(Response.java:655)
at org.eclipse.jetty.server.handler.AbstractHandler.doError(AbstractHandler.java:100)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1247)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:564)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:358)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
at java.lang.Thread.run(Thread.java:748)
Caused by:
java.lang.NullPointerException
at org.apache.jasper.compiler.Validator$ValidateVisitor.<init>(Validator.java:515)
at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1853)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:219)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:600)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:112)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:833)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:203)
at org.eclipse.jetty.server.Dispatcher.error(Dispatcher.java:81)

I'm not seeing the same error.

 


[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing...

-------------------------------------
_ _ _
| |___| (_) ___
| / __| | |/ _ \
| \__ \ | | (_) |
|_|___/ |_|\___/
|_|

Brought to you by linuxserver.io
We gratefully accept donations at:
https://www.linuxserver.io/donations/
-------------------------------------
GID/UID
-------------------------------------
User uid: 99
User gid: 100
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
2017-05-27 16:34:17.593:INFO::main: Logging initialized @173ms
2017-05-27 16:34:17.599:INFO:oejr.Runner:main: Runner
2017-05-27 16:34:17.781:INFO:oejs.Server:main: jetty-9.3.14.v20161028
2017-05-27 16:34:19.371:INFO:/booksonic:main: Initializing Spring root WebApplicationContext
2017-05-27 16:34:25.500:INFO:/booksonic:main: Initializing Spring FrameworkServlet 'subsonic'
2017-05-27 16:34:26.447:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@2d6d8735{/booksonic,file:///tmp/jetty-0.0.0.0-4040-booksonic.war-_booksonic-any-7032787626511510045.dir/webapp/,AVAILABLE}{file:///app/booksonic/booksonic.war}
2017-05-27 16:34:26.458:INFO:oejs.AbstractConnector:main: Started ServerConnector@396639b{HTTP/1.1,[http/1.1]}{0.0.0.0:4040}
2017-05-27 16:34:26.459:INFO:oejs.Server:main: Started @9041ms

 

1 hour ago, CHBMB said:

I'm not seeing the same error.

 



[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing...

-------------------------------------
_ _ _
| |___| (_) ___
| / __| | |/ _ \
| \__ \ | | (_) |
|_|___/ |_|\___/
|_|

Brought to you by linuxserver.io
We gratefully accept donations at:
https://www.linuxserver.io/donations/
-------------------------------------
GID/UID
-------------------------------------
User uid: 99
User gid: 100
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
2017-05-27 16:34:17.593:INFO::main: Logging initialized @173ms
2017-05-27 16:34:17.599:INFO:oejr.Runner:main: Runner
2017-05-27 16:34:17.781:INFO:oejs.Server:main: jetty-9.3.14.v20161028
2017-05-27 16:34:19.371:INFO:/booksonic:main: Initializing Spring root WebApplicationContext
2017-05-27 16:34:25.500:INFO:/booksonic:main: Initializing Spring FrameworkServlet 'subsonic'
2017-05-27 16:34:26.447:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@2d6d8735{/booksonic,file:///tmp/jetty-0.0.0.0-4040-booksonic.war-_booksonic-any-7032787626511510045.dir/webapp/,AVAILABLE}{file:///app/booksonic/booksonic.war}
2017-05-27 16:34:26.458:INFO:oejs.AbstractConnector:main: Started ServerConnector@396639b{HTTP/1.1,[http/1.1]}{0.0.0.0:4040}
2017-05-27 16:34:26.459:INFO:oejs.Server:main: Started @9041ms

 

 

i reverted the last commit that was probably the cause, it seems latest jetty version doesn't play nicely.

Yep, that fixed it for me, thanks guys. 

  • 3 months later...

I just installed this docker and admin:admin isn't working. I tried to uninstall, clear the appdata folder and reinstall. I'm having the same issue. Does anyone know the correct credentials for this?

 

Thanks

28 minutes ago, ryryonline said:

I just installed this docker and admin:admin isn't working. I tried to uninstall, clear the appdata folder and reinstall. I'm having the same issue. Does anyone know the correct credentials for this?

 

Thanks

 

Just pulled a fresh container with fresh appdata and admin as username and password works for me.

  • 2 weeks later...

Hello,

 

I am having an issue with podcasts. I'm getting an error saying, Failed to create directory /podcasts/Revolutions

 

This happens when I try to add a new podcast and download the episodes. Is this a permissions thing?

 

Thanks!

  • 3 months later...

Hi.

I seem to have an issue connecting to the server.


This is my configuration:

I have the docker container running on port 4040.
In my my router port 4040 is forwarded to my server.

 

When I try to add a server in the app I add the following:

 

Server address:

http://[mypublicip]:4040
Local network address Http://192.168.1.2:4040

 

But when I test the connection the following error message appears:

Connection failure. Resource not found, please check the server address.

 

If I enter the URL

http://[mypublicip]:4040

In my browser this appears:

Error 404 - Not Found.

No context on this server matched or handled this request.
Contexts known to this server are:


favicon.ico Powered by Jetty:// 9.3.14.v20161028


 

If I enter the URL http://[mypublicip]:4040/booksonic
In my browser I connect to the admin page just fine.

 

Do you have any suggestions to what I'm missing?

 

/L

Thank you for suggestion.

However after I added "booksonic" to the URL it worked.

(Local network address Http://192.168.1.2:4040/booksonic

And

http://[mypublicip]:4040)

 

Removing context path would mean you don't need to add booksonic to your path, that's why I suggested it.....

Sent from my LG-H815 using Tapatalk

Thanks again man, I didn't know that... Now I do ?

  • 3 weeks later...

I have booksonic up and running, as in I can listen to media on my computer, but am trying to get it working to play through SONOS, and I did the remote installation.  But when I go to put in my user id/pw, it says "The Booksonic remote server did not recognize your login info"

 

So I started to try to figure that out, and notice that its not connecting to my router at all.  I have a Netgear R7000, and have port forwarding going to 4040, but it still says "no router found"

 

and under LOG it says 

 

any thoughts?

 

Thanks

Chase

 

[1/28/18 2:36:41 PM CST] INFO HsqlDaoHelper Checking database schema.
[1/28/18 2:36:42 PM CST] INFO HsqlDaoHelper Done checking database schema.
[1/28/18 2:36:43 PM CST] INFO SettingsService Java: 1.8.0_151, OS: Linux
[1/28/18 2:36:43 PM CST] INFO MediaScannerService Automatic media library scanning scheduled to run every 1 day(s), starting at Mon Jan 29 03:00:00 CST 2018
[1/28/18 2:36:43 PM CST] INFO UPnPService Starting UPnP service...
[1/28/18 2:36:43 PM CST] INFO PodcastService Automatic Podcast update scheduled to run every 24 hour(s), starting at Sun Jan 28 14:41:43 CST 2018
[1/28/18 2:36:43 PM CST] INFO VersionService Resolved local Booksonic version to: 1.1.beta1
[1/28/18 2:36:43 PM CST] INFO UPnPService Enabling UPnP/DLNA media server
[1/28/18 2:36:43 PM CST] INFO UPnPService Starting UPnP service - Done!
[1/28/18 2:36:48 PM CST] INFO BootstrapVerificationFilter Servlet container: jetty/9.3.14.v20161028
[1/28/18 2:36:50 PM CST] INFO VersionService Resolved latest Booksonic final version to: 1.0
[1/28/18 2:36:50 PM CST] INFO VersionService Resolved latest Booksonic beta version to: 1.1.beta1
[1/28/18 2:36:51 PM CST] INFO SonosService No Sonos controller found
[1/28/18 2:36:53 PM CST] WARN NetworkService No UPnP router found.
[1/28/18 2:41:43 PM CST] INFO PodcastService Starting scheduled Podcast refresh.
[1/28/18 2:41:43 PM CST] INFO PodcastService Completed scheduled Podcast refresh.
[1/28/18 2:54:36 PM CST] INFO PlayerDao Created player 2.
[1/28/18 3:16:03 PM CST] WARN NetworkService No UPnP router found.
[1/28/18 3:16:05 PM CST] WARN NetworkService No UPnP router found.
[1/28/18 3:16:08 PM CST] WARN NetworkService No UPnP router found.

It's not saying no router found, it's saying no UPnP router found.  Which shouldn't matter as you've opened the port manually.

under settings, network it says 

Status: No router found.

its possible it's working fine, I just cant tell because I am trying to play it on SONOS, and I cant get the server to recognize my login info, and the subsonic app crashes on my phone, so I have a ticket in for that, to have that looked at.

Says the same on mine, and it's working fine for me.  So ignore it safely.

awesome, thanks.  Any thoughts on the SONOS portion?  I've followed the instructions on the subsonic page, I just cant get it to connect. I may need to reach out to subsonic direct for assistance on that.

 

Not used a Sonos, but I have mine connecting fine using the Booksonic Android app and booksonic behind a reverse proxy.

ok, i'll contact subsonic on the sonos part.  I've submitted a ticket on the booksonic android app, because the app kept crashing, wont even let me pull it up at all.  Hopefully that can get taken care of, and I'll be able to start using this on the go.

 

thanks for your help

  • 4 months later...
On 1/28/2018 at 3:48 PM, CHBMB said:

Not used a Sonos, but I have mine connecting fine using the Booksonic Android app and booksonic behind a reverse proxy.

Could you please elaborate on this? I have been unable to get it to work behind nginx reverse proxy. I have airsonic working this way, and tried using the same setup for booksonic but without any luck.

 

CONTEXT_PATH variable is set to / or removed altogether which appears to work if accessing the container directly.

I have tried adding "server.use-forward-headers=true" to booksonic.properties as was required for airsonic

 

booksonic.subdomain.conf:

# make sure that your dns has a cname set for booksonic and that your booksonic container is not using a base url

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name booksonic.*;

    include /config/nginx/ssl.conf;
	
	client_max_body_size 0;

    # enable for ldap auth, fill in ldap details in ldap.conf
    #include /config/nginx/ldap.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable the next two lines for ldap auth
        #auth_request /auth;
        #error_page 401 =200 /login;

        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Host  $http_host;
        proxy_set_header Host              $http_host;
		proxy_max_temp_file_size           0;
        resolver 127.0.0.11 valid=30s;
        set $upstream_booksonic booksonic;
        proxy_pass http://$upstream_booksonic:4040;
    }
}

 

The really odd thing, Booksonic Android app connects fine but browsers refuse to connect. 😕

@BrandonG777

 

Here's my docker run command.


 

docker run -d --name='booksonic' \

--net='docker' \

--log-opt max-size='10m' \

--log-opt max-file='1' \

-e TZ="Europe/London" \

-e HOST_OS="Unraid" \

-e 'PUID'='99' \

-e 'PGID'='100' \

-e 'CONTEXT_PATH'='booksonic' \

-p '4040:4040/tcp' \

-v '/mnt/user/books/audiobooks/books/':'/books':'rw' \

-v '/mnt/cache/appdata/booksonic':'/config':'rw,slave' \

'linuxserver/booksonic'


My LE server block.
 

server {
    listen 80;
        server_name www.server.com;
        return 301 https://server.com$request_uri;
}

server {
    listen 443;
        server_name www.server.com;
        return 301 https://server.com$request_uri;
}

server {
        listen 80;
        server_name server.com;
        return 301 https://server.com$request_uri;
}

proxy_cache_path cache/ keys_zone=auth_cache:10m;

server {

    listen 443 ssl default_server;
    server_name server.com;

    root /config/www;
    index index.html index.htm index.php;

    include /config/nginx/ssl.conf;
    include /config/nginx/ldap.conf;
        

    client_max_body_size 0;

    location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            # With php7-cgi alone:
            fastcgi_pass 127.0.0.1:9000;
            # With php7-fpm:
            #fastcgi_pass unix:/var/run/php7-fpm.sock;
            fastcgi_index index.php;
            include /etc/nginx/fastcgi_params;
    }

    location / {
            try_files $uri $uri/ /index.php?$query_string;
    }
    location /booksonic {
            include /config/nginx/proxy.conf;
            resolver 127.0.0.11 valid=30s;
            set $upstream_booksonic booksonic;
            proxy_pass http://$upstream_booksonic:4040;
    }

}

Don't forget you need to restart LE when you change any of the server config.

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...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.