Linux experiences

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.

Step 8: Forked and changes available at https://github.com/othrayte/NzbDrone, I made a new vnext-linux-hacked branch to hold changes that I don’t want to push, like the dll file.

More to come.

P.S. NzbDrone looks really nice now, I was glad to see you got a new logo.

@othrayte @kayone was working on a number of linux specific things last night, our plan is to have the same version of drone that you would download for Windows work on linux as well.

What line change did you have to make to get it to run in console mode? That is what NzbDrone.Console.exe is for.

If you’re available drop by our IRC channel and we can discuss your changes and getting them into the main repo.

@othrayte changes you made are mostly to get the app to compile in Linux. you don’t need them to RUN the app on Linux. that said we would still appreciate it if you would do a pull request with your changes.

@markus101, Ah, that makes more sense, what I was doing was disabling the the check that forces the main app into Service mode, see https://github.com/othrayte/NzbDrone/commit/4b533fd.

@kayone, Yes, entirely true, the changes are minor at the moment, I made a pull request for the issues I had running grunt on Linux.

thats for your pull request. your changes are in. also rebase with upstream since I committed a few major fixes for linux few hours ago.