The tech also doesn't help.
It's a "typical" Rails application: large, convoluted, lot's of moving parts, and services, and generally slow as molasses (solved by throwing more hardware at it). As experienced Rails dev(ops), I managed to run and help run an instance, but it's not something done on a friday afternoon, let alone scale up.
What we really need in this landscape is dead simple services. I'm thinking about the difference between setting up a gitlab or a gitea. The first is Rails, needs ruby, gems, bundler, workers, database server, redis, mailserver and whatnot. And thats for manually installing on a server - no pipeline or anything to manage future changes. The second a single binary (pre compiled from a go codebase) everything statically linked (even sqlite is built in, with option to upgrade to postgres). Plop it on a server start it and go. For an intranet you might even skip putting a server/https in front, just run on exposed ports.
We can dockerize all the ruby-stuff, but that might make it easier, it doesn't make it simpler, it really makes it more complex. And the performance-issues aren't solved.
The fediverse needs this as well: just plop a binary on your VPS or homeserver and you're running. Such lean and simple servers are being worked on, but Mastodon itself is a huge, slow and hairy beast.