NzbDrone on Linux in more that 8 steps
I thought I’d post my experiences with running NzbDrone on Linux, my first comment is that I know this is very new (I’m relying on 7hr old changes and some I’ve made myself)
My main disclaimer is that I have little or no C# experience, but I have significant experience in other languages and Linux etc etc.
This will be my practical steps to running NzbDrone, they are not the correct way.
Preamble: Initial weeks ago I tried to get this running on Mono on my Linux server, I did end up getting it to compile but I manually had to add all of the resources and hack some files. Now, to make things simpler, I just compile on windows in VS2012 and copy the result to the linux server.
The steps
Note: If you can find how to get from step to step then you will want to wait for the official release, or I need to improve my writing style.
So step 1 was: Get a copy (I used git) of the latest source from the VNext branch.
Step 2: open in VS2012 and compile.
So far so good.
Step 3: Next I tried coping the files and running it, this doesn’t actually work. But the solutions are simple, you need a copy of Microsoft.Owin.Host.HttpListener.dll, I had one from my previous attempts compiling directly on linux. Also a one line change was required to get NzbDrone to start in console mode. Both of these will be available on my github fork ass soon as I make it.
Step 4: Now it runs, but where is it. At this point I couldn’t remember the port number, which is 8989 BTW, so http:\\host:8989. Here I was greeted by an error message complaining about index.html. Seems the file exists as Index.html, ie with an uppercase “I”. My temporary hack is to make a copy of the file.
Step 5: Once this was done I was greeted by a basic looking page and many warning about missing files in the console.
Step 6: To create these missing files I needed to install npm, the nodejs package manager and then grunt, using npm (npm install -g grunt-cli). You can now run grunt from the root project directory. This will throw errors due to uppercase/lowercase issues.
I did it this was as it was easier to do this step on linux.
Step 7: Step by step fix the lowercase errors, this will also be in my fork.
Now things are running and it looks pretty and all. I will post back when I get to Step 9. For now I need to create that github fork.