Flux CD is installed into the bare bones git repository and k8s.
Flux CD is used to install Forgejo and Woodpecker CI using the bare bones git repository as the gitops source of truth.
This has the advantage that Gitops and normal git repositories are separate. I think that a similar principle would work with docker compose instead of k8s.
I have also done this previously but i'll not be using third party hosted SCM or CI for this one so it kinda rules this approach out.
(I'll edit the main post to reflect this)
Looks like manual/locally-scripted is the way, just wondered if there was something more.