I'm finally done with setting up my #Mastodon instance properly. Here are some of the insights:
* Setup in such a way that user handle has domain rahil.rocks (@me@ rahil.rocks) but web UI resides at domain thoughts.rahil.rocks
* Streaming (live updates) uses secure websockets (wss://) on dedicated subdomain
* Nobody else except me can sign up (single user mode) or let alone even access login page.
* Ephemeral containers deployment using #Podman. Managing it like just another systemd service.
* Running nightly images cause I'm taking it lightly.
* Usual email setup for notifications (SMTP), #redis as cache (how long before I switch to fork), postgres as database
* Metrics collection with Prometheus
* Although reverse proxied behind #Caddy web server, but some static content (profile pictures, media attachments, preview thumbnails...i.e. system dir) served by Caddy for faster response.
* No more ugly (especially dark) stock UI . But thanks to @rolle for gorgeous Bird UI CSS mod for making it eye-pleasing.
* Most importantly, maximum character limit set to 9999 instead of default 500 (which is VERY restrictive for your verbose boss, me).
This one was painful to do. As I use containers images, to change the defaults, I'd to build my own image on top of official image. Just for one line of code change, there has to be so much of wastage of bandwidth, storage, maintenance, time, CPU cycles and power. This could've been easily prevented by fetching from env var instead of hard coding limit.
Could be improved:
* Documentation on deploying using Containers (docker/podman) is non existent. One has to connects bit and pieces to get it going.
* Simple env var to increase maximum character limit
* Being a platform where content is focused on text, supporting rich text or markdown is crucial.
* Bit hard to compose a post because of small text box.
TODO:
* Secure containers with SELinux