This doesn’t have to be too complicated - we’d probably start by simply mirroring the code, then expand from there by accepting patches through alternative methods and not being too focused on “procedure”.
Self-hosting is not without its own problems in terms guaranteeing even access - building out resilient infrastructure is no small task. You could say that of any single-point-of-failure way of doing it, be that github or gitea.