linuxserver / docker-airsonic-advanced Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
Folders cant be written or accessed
The podcasts directory org.airsonic.player.domain.MusicFolder@20 isn't enabled or writeable.
The Server should be able to write and read them
- OS: Ubuntu 22.04
- How docker service was installed: Docker Compose
x86-64
---
version: "2.1"
services:
airsonic-advanced:
image: lscr.io/linuxserver/airsonic-advanced:latest
container_name: airsonic-advanced
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- CONTEXT_PATH= #optional
- JAVA_OPTS= #optional
volumes:
- /path/to/config:/config
- /path/to/music:/music
- /path/to/playlists:/playlists
- /path/to/podcasts:/podcasts
- /path/to/other media:/media #optional
ports:
- 4040:4040
devices:
- /dev/snd:/dev/snd #optional
restart: unless-stopped
Error: No such container "linuxserver.io"
Create thumbnails for your media and show your covers
Thumbnails are not generated, covers are not shown and the log is riddled with errors
Just create the container
OS: Debian GNU/Linux 10 (buster)
CPU architecture: x86_64
How docker service was installed: From the official docker repo
docker run -d
-e JAVA_OPTS="-Dserver.forward-headers-strategy=native -Xmx1024m" -e TZ=Europe/Stockholm
--hostname=$NAME
--ip=$IP
--mac-address=$MAC
--name=$NAME --network=macvlan
--restart=always
-v /mnt/SSD/docker/$NAME/config:/config
-v /mnt/SSD/docker/$NAME/music:/music -v /mnt/SSD/docker/$NAME/podcasts:/podcasts -v /mnt/SSD/docker/$NAME/playlists:/playlists
-v /mnt/HDD/Storage:/mnt/HDD/Storage:ro
$REPO
When the docker is installed on Unraid server without sound card it fails to start due to the variable in the template for jukebox use. The docs say its optional, so I removed it and it starts fine. After my backup script ran and the docker is attempted to restart it fails and I found about 12 variables in the template for /dev/snd at the bottom. After removing them all it starts fine again. This time instead of removing the variable, I set it to /dev/null. I hope this resolves the issue. I think the template needs to be adjusted so headless/soundless installs don't have this problem. At minimum some clarity on the docs about the proper setting to use for headless/soundless installs would be useful.
Expected it to install and run fine on servers without sound card. The default should be no sound gear on the server instead of the opposite.
Install on a server with no sound card, won't start
Remove variable, will start, but variable recreated after restart attempt, then won't start again
- OS: Unraid 6.9.2
- How docker service was installed:
Unraid Community Applications (Apps)
x86-64
Default docker install from repo:
lscr.io/linuxserver/airsonic-advanced
No log because it won't start
Setting CONTEXT_PATH (lets use "airsonicadv" as an example) according to the docker-compose example should result in airsonic login page being served at http://my-host:4040/airsonicadv/login
It is being served at http://my-host:4040/login
The reson seems to be that the file /etc/services.d/airsonic/run needs to be updated to the new format (according to the airsonic-advanced README.md)
The line: -Dserver.contextPath="${URL_BASE}" \
Should be replaced with: -Dserver.servlet.context-path="${URL_BASE}" \
I tried it and it seems to work.
OS: Ubuntu Server 20.04
CPU architecture: x86_64
How docker service was installed:
From Ubuntu repository
---
version: "3.5"
services:
airsonic-advanced:
image: lscr.io/linuxserver/airsonic-advanced
container_name: airsonic-advanced
environment:
- PUID=123
- PGID=123
- TZ=Europe/Stockholm
- CONTEXT_PATH=/airsonicadv
volumes:
- /conf-path/airsonic-advanced:/config
- /data-path/airsonic-advanced/playlists:/playlists
- /data-path/airsonic-advanced/podcasts:/podcasts
- /some-path/music:/music:ro
ports:
- 4040:4040
restart: unless-stopped
[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] 01-envfile: executing...
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 01-migrations: executing...
[migrations] started
[migrations] no migrations found
[cont-init.d] 01-migrations: exited 0.
[cont-init.d] 10-adduser: executing...
-------------------------------------
_ ()
| | ___ _ __
| | / __| | | / \
| | \__ \ | | | () |
|_| |___/ |_| \__/
Brought to you by linuxserver.io
-------------------------------------
To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------
User uid: 123
User gid: 123
-------------------------------------
[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 19-armless: executing...
[cont-init.d] 19-armless: exited 0.
[cont-init.d] 50-config: executing...
[cont-init.d] 50-config: exited 0.
[cont-init.d] 90-custom-folders: executing...
[cont-init.d] 90-custom-folders: exited 0.
[cont-init.d] 99-custom-files: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
_ _
/\ (_) (_)
/ \ _ _ __ ___ ___ _ __ _ ___
/ /\ \ | | '__|/ __|/ _ \| '_ \| |/ __|
/ ____ \| | | \__ \ (_) | | | | | (__
/_/ \_\_|_| |___/\___/|_| |_|_|\___|
11.0.0-SNAPSHOT
2022-01-27 23:28:06.613 INFO --- org.airsonic.player.Application : Starting Application v11.0.0-SNAPSHOT using Java 14.0.2 on de4d5b4a6650 with PID 307 (/app/airsonic/airsonic.war started by abc in /app/airsonic)
2022-01-27 23:28:06.616 INFO --- org.airsonic.player.Application : No active profile set, falling back to default profiles: default
2022-01-27 23:28:10.076 INFO --- l.database.core.HsqlDatabase : Set default schema name to PUBLIC
2022-01-27 23:28:10.211 INFO --- l.l.StandardLockService : Successfully acquired change log lock
2022-01-27 23:28:11.131 INFO --- l.c.StandardChangeLogHistoryService : Reading from PUBLIC.DATABASECHANGELOG
2022-01-27 23:28:11.264 INFO --- l.l.StandardLockService : Successfully released change log lock
2022-01-27 23:28:11.281 INFO --- l.l.StandardLockService : Successfully acquired change log lock
2022-01-27 23:28:11.305 INFO --- l.c.StandardChangeLogHistoryService : Reading from PUBLIC.DATABASECHANGELOG
2022-01-27 23:28:11.366 INFO --- l.l.StandardLockService : Successfully released change log lock
2022-01-27 23:28:11.477 INFO --- o.a.p.service.SettingsService : Java: 14.0.2+14-alpine-r2, OS: Linux, Memory (max bytes): 10458497024
2022-01-27 23:28:11.547 INFO --- org.airsonic.player.Application : Detected Tomcat web server
2022-01-27 23:28:15.048 INFO --- o.a.p.service.DatabaseService : Automatic DB backup disabled
2022-01-27 23:28:15.062 INFO --- o.a.p.s.TaskSchedulingService : Task remote-playstatus-cleanup scheduled
2022-01-27 23:28:15.236 INFO --- o.a.p.s.TaskSchedulingService : Task podcast-channel-refresh--1 scheduled
2022-01-27 23:28:15.237 INFO --- o.a.p.service.PodcastService : Automatic default Podcast update scheduled to run every 24 hour(s), starting at 2022-01-27T22:33:15.236485Z
2022-01-27 23:28:15.354 INFO --- o.a.p.s.search.IndexManager : Index was found (index version 19).
2022-01-27 23:28:15.356 INFO --- o.a.p.s.TaskSchedulingService : Task mediascanner-IndexingTask scheduled
2022-01-27 23:28:15.356 INFO --- o.a.p.s.MediaScannerService : Automatic media library scanning scheduled to run every 1 day(s), starting at 2022-01-28T03:00:00.354923
2022-01-27 23:28:17.555 INFO --- org.airsonic.player.Application : Started Application in 12.417 seconds (JVM running for 13.013)
2022-01-27 23:28:20.487 INFO --- o.a.p.f.BootstrapVerificationFilter : Servlet container: Apache Tomcat/9.0.48
2022-01-27 23:28:26.988 INFO --- o.a.p.s.CacheConfiguration$CacheLogger : Cache Key: admin | EventType: CREATED | Old value: null | New value: admin ["ADMIN","UPLOAD","PODCAST","SHARE","STREAM","COMMENT","JUKEBOX","COVERART","DOWNLOAD","SETTINGS"]
2022-01-27 23:28:27.094 INFO --- o.a.p.s.CacheConfiguration$CacheLogger : Cache Key: admin | EventType: CREATED | Old value: null | New value: org.airsonic.player.domain.UserSettings@3f1e3baf
2022-01-27 23:28:29.007 INFO --- o.a.p.s.CacheConfiguration$CacheLogger : Cache Key: /music | EventType: CREATED | Old value: null | New value: music
2022-01-27 23:33:15.237 INFO --- o.a.p.service.PodcastService : Starting scheduled default Podcast refresh.
2022-01-27 23:33:15.242 INFO --- o.a.p.service.PodcastService : Completed scheduled default Podcast refresh.
Transcoding to Ogg should correctly support Gapless playback.
Using ffmpeg to transcode to Ogg breaks Gapless playback. See:
https://www.reddit.com/r/airsonic/comments/je13cn/transcoding_for_gapless/
The solution is using oggenc from package vorbis-tools instead (personally tested). See:
http://spookypeanut.co.uk/blog/?p=967
Adding vorbis-tools package to the docker image should be easy and shouldn't cause any problems.
none
After enabling DLNA, the Airsonic-Advanced server hangs after approx. 48 hours upon reaching the Java heap max limit when docker is run with JAVA_OPTS set to "-Xms256m -Xmx512m". If JAVA_OPTS isn't defined, the server will run, but memory consumption increases continually until eventually the host resources are exhausted. If DLNA option is not enabled, the server's memory consumption is stable.
This issue has also been reported here:
airsonic-advanced/airsonic-advanced#991
airsonic/airsonic#1043
Server should be stable with DLNA option enabled.
Airsonic-Advanced version: 11.0.0-SNAPSHOT.20230217142243 – February 17, 2023 at 6:22:43 AM
Operating system: Docker on unRAID v6.11.5
Docker version: 20.10.21
x86-64
docker run
-d
--name='airsonic-advanced'
--net='br0'
--ip='192.168.1.100'
-e TZ="America/Los_Angeles"
-e HOST_OS="Unraid"
-e HOST_HOSTNAME="Tower"
-e HOST_CONTAINERNAME="airsonic-advanced"
-e 'TCP_PORT_4040'='4040'
-e 'CONTEXT_PATH'=''
-e 'JAVA_OPTS'='-Xms256m
-Xmx512m'
-e 'PUID'='99'
-e 'PGID'='100'
-e 'UMASK'='022'
-l net.unraid.docker.managed=dockerman
-l net.unraid.docker.webui='http://[IP]:[PORT:4040]'
-l net.unraid.docker.icon='https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/airsonic-advanced-logo.png'
-v '/mnt/user/music/':'/music':'ro'
-v '/mnt/user/music/playlists/':'/playlists':'ro'
-v '/mnt/user/music/podcasts/':'/podcasts':'rw'
-v '/mnt/user/music/media/':'/media':'rw'
-v '/mnt/user/appdata/airsonic-advanced':'/config':'rw'
--device='/dev/snd'
--device='/dev/snd' 'lscr.io/linuxserver/airsonic-advanced:latest'
bfade02d8d600d7d7fbae5a6b032a12c46ed344ec58168ee807546c9cf50b533
My work-around is a cron job to restart the docker daily to maintain stability and avoid the hang. As such, no log is available now, but the typical errors seen are hundreds of: "Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "[insertThreadNameHere]""
Changing admin password or making a new user
It should change the password or make the new user
But I get this
`HTTP Status 400 – Bad Request
Type Exception Report
Message Request header is too large
Description The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Exception
java.lang.IllegalArgumentException: Request header is too large
org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:790)
org.apache.coyote.http11.Http11InputBuffer.parseHeader(Http11InputBuffer.java:899)
org.apache.coyote.http11.Http11InputBuffer.parseHeaders(Http11InputBuffer.java:604)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:294)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.base/java.lang.Thread.run(Thread.java:829)
Note The full stack trace of the root cause is available in the server logs.
Apache Tomcat/9.0.60`
Make a new user and hit save
- OS: OMV
- How docker service was installed: OMV
x86-64
---
version: "2.1"
services:
airsonic-advanced:
image: lscr.io/linuxserver/airsonic-advanced:latest
container_name: airsonic-advanced
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- CONTEXT_PATH= #optional
- JAVA_OPTS= #optional
volumes:
- /srv/dev-disk-by-uuid-735cc309-fa91-4d6e-b8af-cd73f972ec7f/Data/DockerData/AirSonic:/config
- /srv/dev-disk-by-uuid-0386aa39-24c1-4f38-bd21-ff3d49b4d959/Audio/Music:/music
- /srv/dev-disk-by-uuid-0386aa39-24c1-4f38-bd21-ff3d49b4d959/Audio/Playlists:/playlists
- /srv/dev-disk-by-uuid-0386aa39-24c1-4f38-bd21-ff3d49b4d959/Audio/Podcasts:/podcasts
ports:
- 4040:4040
devices:
- /dev/snd:/dev/snd #optional
restart: unless-stopped
No error shown in logs
Setting `JAVA_OPTS="-Xmx4096m" halts startup with this error:
Error: Could not find or load main class "-Xmx4g"
Caused by: java.lang.ClassNotFoundException: "-Xmx4g"
Error: Could not find or load main class "-Xmx4g"
Caused by: java.lang.ClassNotFoundException: "-Xmx4g"
and repeats it
Should respect the java args
Only set JAVA_OPTS to the xmx arg above
- OS: Ubuntu 20.04
- How docker service was installed: apt-get
x86-64
airsonic:
container_name: airsonic
image: lscr.io/linuxserver/airsonic-advanced:latest
restart: unless-stopped
ports:
- 4040:4040
environment:
- PUID=${AIRSONIC_PUID}
- PGID=${SERVARR_PGID}
- TZ=America/Los_Angeles
- JAVA_OPTS="-Xmx4096m"
volumes:
- ${APP_PATH}/airsonic:/var/airsonic
- ${NAS_PATH}/Music/Playlists/MusicBee/Exported Playlists:/var/musicbee_playlists:ro
- ${NAS_PATH}/Music/Tagged:/Music/Tagged:ro
- ${NAS_PATH}/Music/TaggedManual:/Music/TaggedManual:ro
networks:
- proxy_network
### Container logs
```bash
provided above
Currently the only way to enable debug logging is to mount a local directory containing a application.properties file to :/app/airsonic/config
Compose example:
volumes:
- '/my_directory:/app/airsonic/config'
application.properties file contents:
logging.level.root=DEBUG
It would be great if different logging levels could be set with a docker environment variable or some /config based file change rather than have to do the above process which is a bit obtuse. Thanks!
Airsonic logging documentation reference: https://airsonic.github.io/docs/logging/
Cannot easily enable debug logging
No response
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.