It’s about file permissions, yeah, but the thing that eluded me for a few hours until I hit on this post, was that it’s also about mount points and security rules.
You gotta get the UUID of your ”plex files” partition(s) and edit /etc/fstab to have your system mount it/them somewhere other than the default.
I think the example the Plex employee uses in his walkthrough is unfortunate because on my Pop_OS drive /media is already used by the system. I created a new folder at the root level called /plexmedia, chmodded it to 755, and listed it as the mount point for a partition on my external USB drive. When the system rebooted, suddenly the Plex server could see all my subfolders. Hooray.
NOTE: Before figuring this out, I had already tried the following; now I don’t know if they were unnecessary fiddling or if they were also a needed part of the solution:
(1) The drive and media files were originally part of a Mac setup. The drive was formatted HFS+, journalled. I took the drive back to a Mac and turned off journalling using diskutil.
(2) Once I’d done (1) I could mount the drive in Linux in a write-able fashion and chowned the entire thing to user plex and group root. (As a read-only volume they had been showing up as ”503: root” where 503 is the ID of my everyday Mac user. I read some tricky posts about creating a Linux user with a matching ID and ”stealing” those ”orphan” files, but I’m glad I didn’t go down that route because the security/default-mount thing would still have been in the way… [I do think this mattered because once I discovered the Plex post linked above, I didn’t need to do the 755/644 stuff; it just worked.]
“The two discussed Turing’s efforts at programming. Even decades later, Shannon would recall one of Turing’s inventions:
So I asked him what he was doing. And he said he was trying to find a way to get better feedback from a computer so he would know what was going on inside the computer. And he’d invented this wonderful command. See, in those days they were working with individual commands. And the idea was to discover good commands. And I said, what is the command? And he said, the command is put a pulse to the hooter, put a pulse to the hooter. Now let me translate that. A hooter … in England is a loudspeaker. And by putting a pulse to it, it would just be put a pulse to a hooter.
Now what good is this crazy command? Well, the good of this command is that if you’re in a loop you can have this command in that loop and every time it goes around the loop it will put a pulse in and you will hear a frequency equal to how long it takes to go around that loop. And then you can put another one in some bigger loop and so on. And so you’ll hear all of this coming on and you’ll hear this “boo boo boo boo boo boo,” and his concept was that you would soon learn to listen to that and know whether when it got hung up in a loop or something else or what it was doing all this time, which he’d never been able to tell before.”
Reading a biography of Claude Shannon and adding a history of the first undersea cables to my to-read list.
From now on, when my wife spends 15 minutes going ‘round and ‘round with her mom and/or son, trying and failing to talk to each other with 21C devices, I’m going to picture Didi and Gogo swapping boots under a dead tree.
“You called but I didn’t get to it until… hello? Are you… I’m calling you back hang on”
“I left you a voicemail; I forgot you don’t know how to check it. Call me back when you…”
“Hello? B tried to call you; call him if he’s got a signal and tell him to call me.”
As I mentioned in part one, the other “big” software service running on this server is Nextcloud.
Nextcloud is effectively “self-hosted Dropbox.” All of the pros and cons I mentioned with Gitea? They exist here as well… Would I rather control the service myself and not be subject to the whims of the Large Company? Yes. Do I worry about data integrity when I’m the only one to lean on? Yes. (Am I confident that my installation is secure? Yes, but I can’t make security a full-time position. I’m also building apps and writing and cookin’-&-cleanin’ and walking the puppy 5 miles every morning. There’s other stuff going on!)
One notable but understandable headache with Nextcloud — it’s not baked into any other services/hardware that I use. The primary example of this being my Epson scanner/printer. That device has native support for email, Dropbox, and other services. I can drop a document into the feeder and a .pdf simply appears in my Dropbox folder a few minutes later. Very handy. Very not available with Nextcloud. (Unless, and this is only occurring to me as I type, I come with some sort of folder-watching-and-file-duplicating Applescript on the iMac? But even then you’re not eliminating Dropbox from your life, you’re just duplicating it for no purpose.)
I like Nextcloud; it has additional capabilities of which I’ve only just scratched the surface, but I haven’t closed my Dropbox account. It’s too useful.
Once you have a Linux server running and a SQL database installed, there’s seemingly no end to the number of open-source products you can install. This domain currently runs two “big” projects, in addition to WordPress. The first is Gitea, the second is Nextcloud.
Gitea is a service that lets users run their own version of Github/Gitlab. While I don’t have any particular concern about relying on Github (along with robust backups of my desktop and laptop), it’s interesting to consider the tradeoffs. If I host my code on my own server, it doesn’t matter whether or not Github “goes down.” If Microsoft decides on a new business model for Github, that’s fine. My code repositories are on my server, not theirs. (Well, on Linode’s servers, but that’s another post).
On the other hand, Github operates safely, at scale. As a solo developer, I’m potentially my own worst enemy. The dev who inspired me to install Gitea ultimately took his own version down because, in the course of doing something entirely unrelated, he knocked over his SQL database, which in turn knocked out his Gitea site, which rendered his current work unavailable. He was able to recover from a backup, but he was nervous enough to write up a long post declaring self-hosted code repos as “too dangerous,” without proper backup-and-security resources.