My issue started when I migrated my server to a new install. It had Node 14 installed from the repository, but Mastodon's cws dependency used for its streaming websockets process doesn't work on Node 14, and to add insult to injury is abandoned. A dead dependency I would think would be a pressing issue. Nope. https://github.com/tootsuite/mastodon/issues/15184
I just gave up initially. I decided to give it a shot again a week ago. My first attempt was with Pleroma. I had it installed, configured, and running within 10 minutes. I, however, can't have my dustinwilson.com account using it. It'd be whatever subdomain I had to install it under. On Mastodon it would work with either dustinwilson.com or mastodon.dustinwilson.com. While Pleroma's backend is great its frontend, while snappy, isn't user friendly and smattered with infantile anime "mascots".
I decided to make my own Mastodon docker container. I just now got it kind of working. This was after discovering I couldn't use Node 13 either. ANOTHER dependency doesn't work with it. The init script doesn't quite work right, but I'll get there since I can get it running. If it does ultimately not work properly I might be moving to a Pleroma instance and abandoning this one.
Can't downgrade due to other software, so my only solution is to run it as a docker container. Oh boy. Guess what? The official Mastodon docker container fails. You're meant to build your own container from it I guess, but it installs tini as its init system. Tini can only handle one process. Mastodon has -THREE-.