I used to maintain all of my media (eBooks, Movies, TV Shows, Audiobooks, Pictures, etc.) on my desktop computer, rsync that all over to a second server, and then provide web-based access to all this stuff from that second server. I used a one-way rsync, so that the desktop would overwrite anything on the server, but not the other way around. I also have a third server, my backup server, that does all my backups - currently for seven computers in my household and some remote computers. This backup server runs a client/server backup solution called "UrBackup". I currently have it backing up both Linux and Windows computers, some of those remotely via VPN.
Anyway, by having a second copy of everything on my server, I had isolation from getting anything corrupted on my desktop (which held my primary copies).
Lately though, I have started keeping my only copy of the media on the server (except for the backups on that third sever - those are still redundant copies of everything). So with my media primarily stored on the server now, that server provides NFS mounts to my desktop. It is from my desktop that I write and update all these server files via the NFS mounts. Additionally, I run Docker on the server and to make my media available on the web for myself and family and a few friends. So I have docker containers for Calibre-web, Airsonic, Booksonic, Plex, Piwigo, Nextcloud, etc. All of these containers get read-only access to the servers files (except for Nextcloud since that would totally defeat its purpose). So the Docker containers have read-only, and my desktop computer has read-write (via NFS). My Calibre database is the one media thing that I have not moved totally to the server yet. So as it exists today, the Calibre stuff is primarily on my desktop and then rsynced over to the server and the server works off it's redundant copy. If somehow the servers copy of Calibre gets corrupted, it will automatically be overwritten and fixed on the next nightly rsync from my desktop.
My primary motivation for moving the media from my desktop to the server was disk space. Basically, I was running myself too low on the desktop computer. My server has far more disk space available and more horsepower.
That extra horsepower is mostly wasted - the server doesn't need anywhere as much as it has available, but it's always nice to have too much rather than too little. Things like Airsonic (that are written in Java) are notorious memory hogs. Java is the pig that tries to gobble up all available resources wherever you let it loose. We went from C (very efficient), to C++ (slightly less efficient), to Java (a.k.a. C++-) which is just a terrible hog if you don't know what you're doing, and it appears many programmers don't.
|