I am used to simple things running on Docker (Jellyfin, Nextcloud, etc.) I am looking at running my own personal Mastodon instance (maybe share it with a few friends and family), but I like using Docker. Looking at install guides, the steps required seem to be much harder than just editing docker-compose.yml and running the container. Is it actually that difficult to set up Mastodon, or is there a better guide? I can’t just use Yunohost/CasaOS because I am using a VPS to host this.
Instead of the full-blown Mastodon, you should also look at #GoToSocial which is compatible and pretty light-weight. (Doesn’t come with a web UI, so you need to use client apps.)
I can’t just use Yunohost/CasaOS because I am using a VPS to host this.
What does one have to do with the other?
I just didn’t want people to suggest to me to run a different server OS, as I can’t do that (I think).
Neither of these are actually an OS, they’re just containers themselves.
Most providers offer some kind of OS reload and you may be able to use custom ISOs for the process. However, that doesn’t change the fact that if you don’t want to change OS (especially if you’re already using something more commonly seen in production environments like Debian), then you shouldn’t change the OS.
I found dealing with a mastodon server to be a pain in the ass. For a time I outsourced that to Masto.host and it was smooth. The owner of that site was really helpful and knew mastodon well
Sorry about the multiple replies with the same content. My client app apparently decided to have a problem.
I’m running the mastodon stack in docker via a compose file. It was straight forward. Follow the instructions to the letter and it will work.
I will say that it is in your best interest to have an automated update process happen, either manually (via cron) multiple times a day or have some kind of orchestration layer that manages updating the component images once they are released. Mastodon has had some nasty 0 day bugs that involved account and server takeover that had to be fixed immediately, and you don’t want to lag very far behind in those cases.
Edit:
Docker compose from their repo:
https://github.com/mastodon/mastodon/blob/main/docker-compose.yml
There’s a project called Watchtower that is specifically for auto-updating docker-compose containers
I run a mastodon instance in docker and a Sharkey instance in docker on another server. I, personally, didn’t find it especially temperamental but, to be fair, I have pretty extensive experience troubleshooting Docker issues re: networking/permissions/volumes because I am cataclysmically unclever.
Some advice: I would definitely recommend against running it on a naked domain you care about (i.e. instance.com). Always deploy it on a subdomain (i.e. mastodon.instance.com) because, if you ever change servers, have to re-make your intance, have domain issues, etc, you will be fucked pretty much forever on that domain. On a subdomain, you can just use a different subdomain.
If youre looking for a sample docker-compose,
Is it a run and just works docker compose file?
You will need to review all the required variables and configure as you require. But basically, yeah
EDIT - NO
its not just grab and run. From the docs,
This container requires separate postgres and redis instances to run.
I haven’t looked, are those requirements not included in the compose?
Unfortunately not in this example. It has the compose to spin up masto, and the variables to set to tell it where redis etc is