When I installed Kinoite to start using Linux as my primary daily driver, the first thing I did was setting up Ansible, creating a new playbook and all Linux configurations I made from that point on, are only ever done through that playbook, which is backed up in my Forgejo instance. One command and everything is being set up exactly the way I want. It feels extremely liberating.
Ansible playbook is perfect for this. All your configuration is repeatable, whether on a running system or a new one. Plus you can start with a completely fresh newest version image and apply from there, instead of starting from a soon-to-be outdated custom image.