You want people to run their own servers? Design and build servers for individuals, not communities and let communities arise from the interconnections between those servers.
Why?
Because that’s the only way we can compete on ease of use with centralised systems. Not by mimicking their complexity but by side-stepping it. There is orders of magnitude difference in complexity between a system designed to serve just one and one designed to serve one, two, or a hundred thousand.