Airsonic: [Suggestion] Simplify Install and Run Process & Improve Docs

Created on 3 Mar 2020  路  6Comments  路  Source: airsonic/airsonic

I'm making a suggestion that Airsonic is made easier to install (Similar to that of a Plex or Jellyfin install) on Windows and Linux systems (and others if needed). I think Airsonic would gain more attraction if it was easier to setup as well as use.

Also the Windows sections of the docs are extremely neglected, I hope to see at least a basic install and startuse process added so a user can figure out how to install it properly. Half the docs are still work in progress for Windows.
Also worth noting, prerequisites list to use JDK8, instead of OpenJDK not sure why. I think this should be swapped.

Most helpful comment

I just submited a pull request containing a manual for Windows users.
https://github.com/airsonic/airsonic-docs/pull/92

All 6 comments

This issue isn't really actionable :/

The Windows section is neglected, because apparently nobody is deploying airsonic on Windows.
Feel free to send pull-requests to the documentation, I'll be happy to review and merge them.

I'm running Airsonic under Windows. If I find some time I'll try to provide a installation documentation.
I set it up using NSSM (https://nssm.cc) to let it run as Windows Service. Works like a charm :-)
Only issue I'm having is getting HTTPS to work by using IIS as ReverseProxy (but this is another chapter).

I'm running Airsonic under Windows. If I find some time I'll try to provide a installation documentation.
I set it up using NSSM (https://nssm.cc) to let it run as Windows Service. Works like a charm :-)
Only issue I'm having is getting HTTPS to work by using IIS as ReverseProxy (but this is another chapter).

I'm not using NSSM, I just did it via CMD and made a batch file (a little less convenient than service, but less work to setup)

c:\
cd C:\Users\USER\Documents\Airsonic.Boot
start java -jar airsonic.war
pause

And it launches fine, and I have it using Caddy as a reverse proxy

MYDOMAIN {
  proxy / LOCALIP:PORT {
    transparent  
  }
}

and all is working smoothly. But granted, I wasn't familiar with .war, and I got help from the IRC. If I didn't do that I probably would've been lost. The docs could def at least use basic instructions.
And ideally switch the JDK8 prerequisites to OpenJDK (JDK8 is shit, and also they require you to make an account with tons of personal info just to download~i believe because licensing, but still no reason to use in this case really. Also all other Linux sections suggest using OpenJDK, idky Mac and Windows are suggested JDK8 in the docs. But I can confirm I used OpenJDK -- AdoptOpenJDK to be specific, and it works)

The Windows section is neglected, because apparently nobody is deploying airsonic on Windows.

This is not true at all.

I'm not really aware of much hassle to get it running on Windows. Just install a JRE and run the application like in the docs. Java is cross-platform, so there shouldn't be much deviation required. The default DB also has its own location.

I set it up using NSSM (https://nssm.cc) to let it run as Windows Service.

I'm not familiar with NSSC, but you can just install it as a service using the built-in Windows Service Control (sc) without using any external programs.

sc create airsonic binPath="<java-airsonic-run-command>" DisplayName="Airsonic Server" start=auto obj="<windows-user-to-start-as>" password="<windows-user-password>"

for example:
sc create airsonic binPath="java -Dairsonic.home=C:/airsonic -jar C:/path/to/airsonic/airsonic.war" DisplayName="Airsonic Server" start=auto obj="NT Authority\LocalService" password=""

Other options include registering it as a Scheduled Task (again built into Windows), and have it run every time the computer starts up.

JDK8 prerequisites to OpenJDK (JDK8 is shit)

I believe there is a misconception here. JDK8 is referencing the Java version 1.8. Both OpenJDK and Oracle provide their implementations of it, and both are considered JDK8. Which implementation you use is your choice. Docs should probably point to OpenJDK's implementations if needed.

Only issue I'm having is getting HTTPS to work by using IIS as ReverseProxy (but this is another chapter).

@Faeb35 I'd be curious about your adventures here, if you have time to document them. That should actually be put in the documentation.

@randomnicode Sorry for the very late reply. You can't directly start the jar by java and creating a service like this. The issue here is, that the java.exe we are starting doesn't responde like a service (no start control). I just tried this to doublecheck.
grafik

To respond like a service (to the control requests) you need to have something in between, a tool responding like a service and starting Airsonic for us. Actualy there would be a Java Service wrapper for that. But this one was way to complicted for me, that's why I just went with nssm. It's way easier to configure and straight forward.

About URL Rewriteing and using IIS as reverse proxy, I finally found the correct configuration to do this! Below I pasted my web.config file. Be aware, that the variables I'm setting needs to be created first in the URL Rewrite module (click on "View Server Variables..."). I also would like to link to the Reddit thread about this where I posted some more information.

<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <clear /> <rule name="Redirect Transfer" stopProcessing="true"> <match url="transfer" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> <action type="Redirect" url="index" /> </rule> <rule name="ReverseProxyInboundRule1" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> <serverVariables> <set name="HTTP_X_FORWARDED_HOST" value="public.url.com" /> <set name="HTTP_X_FORWARDED_SERVER" value="public.url.com" /> <set name="HTTP_X_FORWARDED_PROTO" value="https" /> <set name="HTTP_X_FORWARDED_PORT" value="443" /> <set name="ORIGINAL_HOST" value="localhost" /> </serverVariables> <action type="Rewrite" url="http://localhost:8080/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>

I guess, this is something which could be added to the Airsonic documentation as well.

I just submited a pull request containing a manual for Windows users.
https://github.com/airsonic/airsonic-docs/pull/92

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Tapchicoma picture Tapchicoma  路  4Comments

heyarne picture heyarne  路  5Comments

kaysond picture kaysond  路  6Comments

seanvree picture seanvree  路  5Comments

dorel14 picture dorel14  路  6Comments