Laypeople don't know that systemd exists. They will install a webserver or something and the package manager will automatically install and enable its unit file.
What “lay person” is going to install a web server??? That’s insane. Maybe a lay faang-er would.
Lay people work in a factory or shoe store or accounting firm. They have 1 or more kids. They hear what their friends are doing, and as long as it only requires signing up on a web page, they will consider it. They will use the same password as they do for their bank.
And that’s FINE! There is life outside technology, and those lay people are busy living it.
There's plenty of simple webservers around. I used to use one at school that was a single (likely self-extracting zip) exe file that ran Apache on the given port; the document root was configurable, but defaulted to the relative path ./public_html. I would be surprised if there isn't a project somewhere that's effectively a QT gui to start a Python webserver like this[1], as a single self-contained exe file.
Reading this thread - exactly my thoughts too. Most people (if given the incentive and interest) would understand systemd just fine. Some effort would be needed.
It would take one hell of an incentive to make someone with
* No previous tech knowledge
* A full-time job
* No external help
learn systemd, or how to setup and maintain a web server, or whatever.
Individuals may still self-host of course, but I'm skeptical people will do it en masse anytime soon.
After all, if the entry barrier weren't so high, we wouldn't have an entire service industry that does this for you (SquareSpace, Wix, Substack...)
I think most of the people on r/selfhosted aren't super technical. Lots of them install a snap or docker container with a web UI for self hosting and they are off to the races.
Looking at the /r/selfhosted crowd comes with some serious survivorship bias though. It's not considering the (potentially large) group of people who would like to self-host, but don't even make it to /r/selfhosted or similar forums.
Sure, but let's be real, if your going to slef host you'll need to be able to do a bit of that.
Would be nice if there were more little appliances that handle stuff like this so someone could just buy it at best buy or whatever and plug it in next to the router.
I've come to recognize my view that "anyone could install this web server" is a view most commonly shared among fellow techies, and not one shared by the greater population.
Yeah. Of course not 'everyone' will be able to, and maybe that's what we should be considering the 'lay person' now...
But there is a wide range of knowledge in this space. A 'lay person' is kind of hard to get down to a spot without potentially lumping people together improperly.
Take my customer for example. She's not stupid. She knows she could probably fix the computer I am fixing for her, herself. But she also knows there are things she just doesn't know and probably should get someone else who does know those things to do it instead. Is she the lay person? From talking to her, I am pretty sure with a couple quick hours of reading some stuff, she could probably set up a basic Nginx server or something very easily for herself. Etc, etc. Yet, by others standards, she is a lay person because she can't utilize Apache or AWS.
I totally started there, knowing a lot of stuff was in my reach but would take some reading to succeed with. It's still hard for me to anticipate who will persist and who will throw their hands up and declare they aren't technical.
Yeah, you could say I am even still 'there' to some degree. Sure, I fix computers for people, but that's kinda easy. I know enough to know when to not do something, essentially. And that can be hellishly important as a skill.
But the fact remains that I have a A+ book from Comptia left unread that I found at a 2nd hand store, a book on Bash that I found at a bar also unread, and a book on Python from O'reily via Amazon; yes, unread. All of them unread.
Why? I dunno. Can't be damned to? I taught myself pretty much everything I know through trial and error. If I want something in a program to do something else, I alter the code and reverse engineer it until it does what I want. This is how I make mods for games usually, when I tinker at all. How do I know what to tinker with? I read, ironically. Yeah, I know. Go figure, right?
But still, those books lay unread in a desk next to me as I type this.
So what am I reading? Well, it's quite simple. If I ever get to a point where my own intuition or knowledge isn't good enough, and I don't see the answer staring me in the face via some comments in the code, or some error code thing, etc, etc...
You know, nothing is really ever that simple and this comment makes me realize that. You actually hit on a philosophical difference in package managers lol. Ubuntu (not sure about Debian) will install, enable, and start a package, But Red Hat only installs it, because they expect you to configure the service first.
Which 90% of the time makes sense because if you want anything more than the barebones default config (which you usually do), that's best done before everything gets spun up. But I've worked with Ubuntu (and Debian) long enough that I now take for granted that some services are going to have to be downed for reconfig almost immediately after installation. The "auto start after install" practice rarely makes much difference in the final result. After over 25 years as a sysadmin I do wonder how non-experts navigate some of this stuff, what with the often incomplete doc and horribly uninformed (or just plain reckless) forum posts they have to work with. The best place to start is still æLeen Frisch's Essential System Administration (whose 1st ed is where I learned the sysadmin craft), but there really isn't much beyond it (unless you go the BSD route and so have the FreeBSD Handbook to lean on).
That is actually not true for the most part.
RHEL-based distros have a vanilla config file, where Ubuntu yes does make some extra efforts to configure the packages in a sensible manner.
I thought I was a pretty good "tech person" until I read this thread... and now I'm more layperson than what this thread considers a "layperson" bc none of this makes sense to meh aha
systemd → does a lot of things on modern Linux systems, amongst which is dealing with services that should autostart (think: both low-level stuff like Bluetooth or user-level stuff like a Dropbox client or a VPN or whatever).
Unit files → fairly simple text files that are used to define such stuff for systemd (usually in /etc/systemd/system and /usr/lib/systemd/system).
Package manager → essentially the same as an app store on a phone. It's how you install and update packages (packages could be a fully fledged graphical app or just a terminal command).
Webserver → what allows you to "run websites" on your own machine. For the simplest example, if you run `python -m http.server` in a terminal on a Unix-like system, congrats, you can now browse your files in a browser (127.0.0.1:8000). If you know your local IP, you can also open it from a phone and download stuff from your desktop, zero apps or cables or FTPs necessary.
So, to decipher that comment above: you usually don't have to worry about how things run automatically because that's usually pre-configured when you install them. In most simple self-hosting scenarios you just "install a website" on your spare laptop or whatever and you're good to go. That website usually serves traffic via a webserver on some port, and you access it via local network IP and a port (example: 192.168.1.100:8000).
Now if you go deeper and want to run multiple things simultaneously, each accessible via a domain instead of a port, accessible from outside of your home, properly backed up and with a valid HTTPS connection, and then you hear about this thing called Docker... well, from my experience, you're gonna wake up on a day like this and go to work as a sysadmin with 3 years of experience, basically writing YAML for a living.
So in conclusion, apart from some outliers like Plex.tv, I wouldn't call the process layperson-friendly, but hey, it might make your tinkering into a career.
It's a bit crazy that it even matters. Or that systemd comes up at all in a selfhosting convo.
I have friends that selfhost stuff on mac, windows, and linux. They are probably above average as far as tech goes but they are all 30 somethings in non-tech jobs, real-estate, finance, advertising, sales.
I field questions from time to time, but it's pretty rare. Never once got a question about an init system. On any os or distro.
These guys aren't writing init scripts, they are going through the apps documentation and typing 'systemctl start appName.service' and then moving on.
or starting it with docker or even one of the clever little web UIs that you can install that helps you install selfhosted apps.
I thing there's a part of us that wants to believe this shit matters to normal users but they just don't care. And if the service doesn't start, they file a bug upstream and the maintainer usually takes care of it.
To be honest, I think the reason systemd comes up in a self-hosting conversation at all is because
- Some people want to talk about how difficult things are, and come up with reasons to make things sound difficult,
- Some people have an axe to grind, regarding systemd.
The original poster brought up "workload scheduling" and while I've done plenty of that at work, I'm at a complete loss trying to guess why you would need workload scheduling for any self-hosting project.
I defiantly agree with you. I've never heard mac people sit around and talk about which init system it's running it's a complete non issue. It just doesn't matter to self-hosters and end users in any way shape or form.