Minor point I noticed is that you referenced Google domains. Google is killing this service so you might want to replace it with something else.
Why not Debian 12 as it has been released officially? Is it not compatible with Lemmy?
You should use a static IP address for a server. DHCP is OK as long as it always gets the same IP.
I would suggest putting in either screenshots or example output of the terminal commands so that people can 'see' what's going on or what to expect to happen. Remender that your audience might be very new to Linux.
Hopefully you'll find these suggestions helpful. I didn't actually perform each step myself, so don't take this as a thorough review. 😉
I referenced Google domains because that's what a lot of people are currently using. I thought about not mentioning it but it doesn't really matter which registrar you're using at the end of the day.
I chose Debian 11 for stability and compatibility with other user friendly hosting options, such as Yuno Host. As far as I'm aware, Yuno does not currently support 12 yet. (I don't recommend installing Lemmy through YH as it's on an ancient version and doesn't support photo uploads nor phone apps)
You do not need to use a static IP with cloudflare as long as you use 'localhost' instead of 192.xxx.x.xx because cloudflared (the cloudflare tunnel software) runs on the server locally, and can detect changes in IP.
I'll probably add screenshots if I get a second request for them. Screenshots require performing the actions proper and I didn't have a test environment ready when I wrote this. Might make a video and add screenshots from that, we'll see.
I found your suggestions incredibly helpful! Thank you for taking the time to share them with me!
If you wrote this guide, please consider improving the official Lemmy documentation. It's getting better, but it could really use some work. As recently as the 0.17.4 release, it was pretty much useless.
One question I had after reading through. With the current design you have, would it be correct to say all traffic between your server and cloud flare would be using http and thus unencrypted? This would also mean user logins would be visible between your server and cloud flare.
As far as my understanding goes, the traffic between your server and cloudflare is unencrypted. If that bothers you, definitely do not use this solution.
It is possible to encrypt your traffic server side as well, I simply do not know how to accomplish this.
Lemmy for Yunohost is still running Lemmy version 0.16.7, which does not support phone applications (Connect, wefwef, etc). It also doesn't support photo uploads of any kind. Until these two issues are resolved I cannot recommend it.