So, since @ceejbot livetweeted their setup, I'll pass on a few notes from mine.

In my case, I concur with Ceej - this isn't a trivial 'start the instance' type thing; most normal people will probably not be able to successfully complete the setup.

I say this not out of vanity but because this process is, frankly, a mess, and the documentation does not describe several gotchas that show up in the deployment process - nor does it explicate fully your prereqs.

To actually start one of these instances, you will need ahead of time:

1. a server, -probably- running one of the linuces. I was going to try to do the docker-on-freebsd thing but that did not turn out well at all.

2. DNS access - at least a subdomain that you control, and the ability to point the A record over to the server

3. A certificate authority. Letsencrypt is nice! but any will do just fine.

4. A mailserver, or at least access to some organization's ability to send mail. The built in docs said mailgun; my mailinabox instance was happy to send mail on mastodon's behalf.

5. Significant sysadmin experience.

6. Understanding of dependency hell and how to resolve it.

Of the gotchas that showed up, some of them were because I did not use the suggested 'mastodon' username to run the processes under.

If you do this, it affects the postgres setup [ which was a fun little bug to dig through ] and requires that you pay close attention to the [shudder] systemd entries given in the example documentation.

By the way, have I mentioned how much I -hate- systemd? There's a reason why 90% of the things I run are on freebsd these days, and it ain't because I like the mascot.

Another gotcha is that you cannot use the packaged versions of, frankly, -anything- because the maintainers of ubuntu apparently disagree with whatever it was that the guy who built this thing wanted to use for versioning.

There are very specific versions of things you have to use.

[ Hence the explicit callout of dealing with dependency hell. ]
This is not a very fun project to install, and it needs some better documentation - i might end up throwing a doc PR in at some point to at least point out the prereqs.
On the plus side, it's really nice to have your own instance. Very responsive, and the federated timeline is slow enough to read ;-)
@munin 80x25 monochrome scrolling delight by the time I'm done ;)