sebgl / htpc-download-box

Sonarr / Radarr / Jackett / NZBGet / Deluge / OpenVPN / Plex
1.97k stars 322 forks source link

Minor issues + modularity/DRY changes #7

Closed johnpyp closed 5 years ago

johnpyp commented 5 years ago

Hello! First of all, thank you for this amazing guide! This is exactly what I wanted, covering all the major tools with a painstakingly detailed guide. I was completely lost with all these tools, and now I think I have a pretty decent grasp on a lot of it.

I followed the tutorial pretty much to a T, so I have a few comments on minor things that I found issue with:

  1. At least in the latest release of openvpn-client, the .ovpn file should be changed to vpn.conf.
  2. There is a bit of inconsistency between the guide snippets and the finished example file, more on changes to the docker-compose.yml file later
  3. The plex configuration section is vague on where the movies and tv directory should be pointed to. For someone less familiar with docker or the tooling, this would be a point where I can see someone getting lost.
  4. It could be useful to add a part about chowning directories to the user, as that could be a point of confusion when permission issues appear.

My setup wasn't hindered too much by these minor issues, and I got them all sorted. For the most part, everything was perfect.

Major Organizational proposal

After finishing the tutorial, and having a working installation, I played around quite a bit with the organizational structure, as it didn't seem cohesive, centralized, or modular (though not bad). Here is my proposed file structure that I've adopted:

Timezone: Now defined in a .env file to be easily changed and shared, rather than hardcoded. Root directory: This will be the home of all the files in the project, nowhere else. Also defined in the .env file. Mine looks like /media/johnpyp/WD/homemedia. All of the directories would follow as subdirectories of the root. Having "downloads" as the root directory in the guide is a bit confusing as well, I think something like "homemedia" is more clear.

Downloads dir: ${ROOT}/downloads, nzb and deluge directory, currently "..."/downloads/ongoing, but I think downloads is a bit more clear.

Complete dir: ${ROOT}/complete, this is where the movies and tv directories live, and this is where the plex data directory is.

Config dir: ${ROOT}/config, rather than have dotfiles for the config, separated from everything else, I think it is useful to have a centralized config directory. This would contain all of the .config/* configuration, and also the .plex and .vpn configuration directories. Mine currently has:

These are the three top level directories. The primary objective of this change is 1) Cleaning up the messy directory naming scheme currently present, and more importantly, 2) Creating a single root directory that can be moved around, even onto different computers or whatever, and operate exactly the same by changing a single line in the .env file.

Here is my current docker-compoose.yml file so you can see how what I'm talking about fits together: https://pastebin.com/LHmw6nZE

sebgl commented 5 years ago

@johnpyp thanks for the feedback!

I think the changes you propose do make a lot of sense. Thanks! Would you like to create the associated pull requests? That would be great! (Ideally, one per change category, but it's also fine if you prefer a single all-in-one PR)

johnpyp commented 5 years ago

Alright, I'll make 3 PRs, one for file paths, one for plex configuration section, and one for adding a chown section. Thanks!