My Current Media Server Setup

So a friend of mine has been trying to get me to post this for a while. I'm not sure if this is exactly the right forum or not because it kind of can span a few different forums. So what is it? It's my current Debian powered media server setup, which I'm sure that plenty of people have themselves, except I've gone through a lot of work to make mine completely self sufficient and usable on about any and every device possible.

The entire goal of the project was to make something that just about anybody can use, primarily, my completely technologically illiterate family and friends as well, and the outcome has been great.

Every aspect and server is managed through a web browser. As you can see I've got Plex, a youtube video downloader powered by youtube-dl, file downloader powered by wget, transmission which is an awesome browser based torrent downloader, optimized search powered by ISO Hunt, Pydio (web based file browser), a usage bar of my massic 5TB volume as well as process list, and of course speed test.

It all looks pretty basic from a general perspective, but it's the minor details that I've slaved hours and hours over to make work. I'll go into detail about each of the services, at which point you'll see why.

For starters, everything is aesthetically sound from a web developers standpoint. Everything is running on top of verified SSL, which means that all traffic is completely secure and encrypted. Except plex, which doesn't seem to like SSL, but it's got it's own encryption protocols, so that's okay. Also, rather than running everything on their respective default ports, every different service is proxy passed through my own custom sub domains to maintain complete encryption. This can be seen below, there's the homepage, plex, transmission, pydio, and the search handler for ISO Hunt. I'll get into that more in a minute.

Plex is very typical, standard greatness with all of it's functionality and support.

Transmission is awesome because it's completely web based in the sense that you can add, and download to local storage, any torrent that you want, and it's command line usage is especially useful when tied into the ISO hunt search.

Pydio is awesome because it give people the ability to view directly and download any of the files that may be on the media server. It's also super easy to manage, as you can see, the only volume available is a specific folder located on my drive, and users can only copy, move, and download files, not delete. (There's a trash can which is just another directory, also typical)

Here's the interesting and most complex part. So, as for the downloading of torrents, I currently use the service ISO Hunt, however there's a catch. Upon using the search box on the homepage, the server redirects to my own internal domain which is completely proxied and encrypted, then polls the search results from iso hunt, sorts them by the most seeders, and re-formats the page to display only the results themselves.

I'm quite proud of this one, as I learned a lot about apache proxypass and injection methods throughout. As the icing on top, it rewrites the href links of each search result to my own php function, so that when clicked, the torrent is automatically added to transmission, without any extra steps whatsoever. This makes it completely compatible to add torrents on any device with a web browser, which in my mind is awesome.

Dat speed test. Actually it could be better considering it's on a gigabit ethernet connection. I suppose the bottleneck could be the server adapter since I'm using integrated.

And to wrap it all up, it's running on a nice little compact mini-itx build that sits under my desk. That seagate backup plus 5 TB is a monster and houses everything. As you can see on the main page, it's only 18% used which means that it's still way less than a whole terabyte after housing my whole TV show and movie collection, and a ton of other files as well as PC and website backups.

Well that's really about it, I'm not sure what else I should post about it. I suppose the question is, who would be interested in a tutorial of how to set up their own? I plan on doing one later down the road as well as with Windows Server since that's common among home media centers. Or if you can show me up with your own media server solution, I'd love to see it.

2 Likes

Nice work, that's pretty cool, I like the Idea of making it easy for everyone to use. I'm the only user on my network so I haven't really had to worry about that. When you download something with transmission do you have something to automatically put it where it needs to go or do you still do that manually? That's something I'd like to set up on my network but it seems like something which would be more work than it's worth.


My set up is fairly similar to what you've got, probably the biggest difference is that I have two file servers with 32TB storage. I have it set up in a way where all the storage is pooled so it appears as a single directory, and unlike raid I can add or remove disks without having to rebuild the array or anything like that.

 

Cool, are you using LVM to do so? No, it doesn't automatically place it where it should go, that is something that I've started on, just haven't finished, or really known how to finish. That was a while back and I've done a ton with python since, so I'm sure I could do it now. Just need the time.

May have to take a look at Pydio I just use samba because it is just two people that use my NAS.

How does it compare with Owncloud?

Hmm, I use samba as well, pydio is just for the derpy people, and anyone outside my network.

It looks nearly identical actually, all the way down to the file editor and viewer. I don't use owncloud obviously so I suppose it's pretty much the same. What does owncloud have going about it that makes it useful?

Owncloud is a personal cloud storage system like Pydio. 

I want a cloud storage splution and I am looking at both.

Does Pydio require a domain? (Owncloud does)

No I use AUFS, the disks and volumes are all independent of one another, AUFS just makes it appear as if everything is in a single volume.

Pydio doesn't necessarily a domain name, but it does require hardware, and storage. It's better to use with a domain name though as it can just latch onto one, such as mydomain.com/pydio, yet run as it's own service. 

Cool, I've thought about the concept, just never went into much detail into implementing it. I'll have to keep it in mind for the future.

I've been through a few different methods. For media libraries, or anything that is pretty static and doesn't change often then using AUFS to pool the storage and snapraid for redundancy is the best solution. It allows you to add new disks as you need them without having to rebuild the array, and you don't have to worry about losing everything if too many disks die.

Yes, please include tutorial putting it together and the specs for your box. This looks exactly like a project I have been thinking of doing for a long time now that I am out of college but have been preoccupied with my work.

IIRC, Pydio is simple there for file management.

OwnCloud however does a lot of other things, too. For example:

Cloud Contacts (CardDAV)

Cloud Calendar (CalDAV)

Bookmarks Save (at least for FF)

News Reader (RSS)

and it can be extended a lot more by apps (or do they call the modules now?)

I wonder how he put all those applications in one webpage. I would love a web-based interface for controlling Kodi/XBMC. especially if there is a way to make Kodi server run in CLI.

It's a custom webpage that I threw together. It can be accessed inside the network with no authentication but if you visit it from the internet it'll ask for username and password.

could a PW protected be made to replace or complement pydio?

Pydio has full custom account support. In my case from the internet, I just have apache authentication setup though.

I would also like to see a tutorial if you have the time.

I'll try to get one put together in the next couple weeks, I'm currently finishing out school finals and whatnot so it'll be a bit. But it's been on my list.

Awesome! I am looking forward to it.