It's not hard, but if you're like me and you don't like polluting your server system with all kinds of dev tools in the global space, you may need somewhat of an understanding of Docker to get everything running smoothly.
One thing to note is that if you're going to be the only one using your server, you may want to enable single user mode. It's a mode for the Mastodon frontend that's optimized for deployments with a single user account.
For those considering the switch, I also recommend checking out https://github.com/NicolasConstant/BirdsiteLive and setting up an instance. With your Twitter account you can register for an API key and then mirror all the Twitter users that aren't on the Fediverse yet! It's unidirectional but as most Twitter users seem rather passive anyway, this can make the transition rather easy.
To prevent others from using your keys and quota, you can safely limit ingress to BirdSiteLive to only your Mastodon server. You end up with proxied tweets only visible to users of your server.
Source code: https://github.com/NicolasConstant/BirdsiteLive Official instance: https://beta.birdsite.live/