I never heard back on this post from any official source, but I was able to find a work around for myself and resolve the problem that I was seeing.
Basically, the problem was that when I used my subsonic.org sub-domain it was still forwarding back to my IP address on port 4040. I'm guessing that this comes from the subsonic.sh file's configuration property: SUBSONIC_PORT. However, I don't expose port 4040 to the internet, instead I currently have Subsonic proxy'd through an Apache web server so that I can use ports 80 and 443 from the internet. Then I access Subsonic via something like this:
https://domain.com/subsonic rather than
https://domain.com:4040. Even though Subsonic is still running on port 4040, from outside the firewall it appears as if port 4040 is not open. I do this this for many services and not just Subsonic.
However, I noticed that in playing with the share URL that I was given after the redirect from my subsonic.org subdomain, if I just removed the :4040 from the URL the music file played just fine. This told me that the sharing mechanism works fine, it's just the redirect mechanism that was broken. And since I would rather have it share from my own subdomain anyway, this was just fine for me. However, it would be a pain to have to keep changing the url every time I wanted to share music with a friend, so instead I hacked some of the JSP pages included in the subsonic.war file so that it would present me with the correct sharing URL from my domain without having to go to subsonic.org for a redirect.
I figured that I would post my solution here so that if anyone else had an Apache proxy configuration like I do, they could also benefit from this fix. I should mention that this is not a very elegant fix, the best fix would be for someone on the Subsonic team to add configuration items in the subsonic.sh script so that we could pass these parameters to the Subsonic runtime. The following steps are a bit advanced, so if you feel uncomfortable with the command line or troubleshooting you'll probably want to steer clear. But in lui of that, this solution will definitely work.
Here are the instructions (I wrote them for *nix based systems, Windows users will have to adapt them):
- Download the attached patch file and open it in a text editor
- Find and replace any instances of "<http(s)://your_domain_and_path_here>" (without the quotes) (there should be only two instances of it) with your domain. Something similar to "https://domain.com/subsonic" or "http://123.123.123.123/subsonic" if you would prefer to use your IP address instead.
- Log in to the computer with your subsonic instance running on it (if you're not there already) and kill the subsonic service
- Find your Subsonic installation folder and run the following commands:
- Code: Select all
cp subsonic.war /tmp
mkdir /tmp/subsonic
cd /tmp/subsonic
jar -xvf ../subsonic.war
- Upload the patch file you modified to wherever you're hosting subsonic (if you're not already there) and place it in the /tmp directory
- Run the following commands:
- Code: Select all
cd /tmp/subsonic
patch -p1 < ../subsonic-sharing-domain.patch
jar -cf ../subsonic.war.new *
- Now change directory to your subsonic installation and run the following commands:
- Code: Select all
mv subsonic.war subsonic.war.old
mv /tmp/subsonic.war.new subsonic.war
rm -rf /tmp/subsonic/
rm /tmp/subsonic.war /tmp/subsonic-sharing-domain.patch
- If you were running any of these commands as something other than the user that runs subsonic, make sure that you chown the subsonic.war file back to the original user with something like "chown subsonic:subsonic subsonic.war"
- Start subsonic again