construct a system for managing unity projects

I have a unity 3d project. I need to link (github , assetbundles , git , addressables and any other pieces of software to create a system like this).

  1. I need to publish the project on pc and mobile so I have 2 versions of each models.

  2. I also intend to update it content online dynamically and players with receive updates of models and assets (like assetbundles).

  3. I also need version control on the project mainly for code but no problem if I had another for the binaries.

  4. I also need to open source the game without releasing the (part of source code related to admob or other private parts of game like some or all of the 3d assets).

  5. I need it that to be connected somehow tweaks in the published code would reflect on the version I have in the game but changing the private version I have in the game doesn’t alawys change the open sourced one (I should be a able to choose either that would reflect on the open sourced one or not).

  6. I want that system to be automated , easy to use , robust , flexible and modular because I will use it in most of my unity projects.

  7. that system is prefable to be local i.e. on a local pc or a local lan server.

  8. I need the code base to be shared as much as possible and reduce redundancy among different versions.

I know I will use {asset bundles , addressable , github} but I have no idea how to construct such a system