# Build Systems overview
To build artifacts that will be released/pushed to the mirror network, CentOS Project relies on distributed build systems, mostly :
* [Koji](https://pagure.io/koji)
* [reimzul](reimzul.md)
While reimzul is still being used for CentOS Linux 7 rpm builds, koji is now the one being used for CentOS Linux 8 and all Stream releases (but different environments)
RPM packages built by/for Special Interest Groups on our [Community Build Service](koji-cbs.md) are also built on a koji instance, different from the one[s] used to build CentOS Linux/Stream distributions.
We adviced you to read upstream koji documentation to have details of all needed components and how they can be combined all together to be able to build/distribute packages, but here is a quick overview :
* kojihub/kojiweb : this is the main component, itself needing:
* authentication system in place (using either TLS/x509 certificates of kerberos tickets)
* postgresql database access : to store build results, activity, etc
* NFS storage: to store all builds logs and rpm packages and composed repositories
* httpd running with proper TLS certificates to encrypt traffic between hub and builders
* kojid : multiple builders, responsible to pick tasks (on the hub), and then use mock to build rpm packages and send results back to the kojihub
* depending if one of these nodes is also in the `createrepo` channel, it will itself RW rights on the NFS volume to be able to update repodata after some builds
Now you can read other sub-sections about dedicated koji and some specific notes around these implementations
It's through worth knowing that *all* koji enviroments (almost) are deployed from the same Ansible roles (but with different settings, per different inventory or group variables)
Some links to ansible roles:
* [kojihub](https://github.com/centos/ansible-role-kojihub)
* [kojid](https://github.com/centos/ansible-role-kojid)
* [nfs-server](https://github.com/centos/ansible-role-nfs-server)
* (only used for SIGs)[stylo](https://github.com/centos/ansible-role-stylo)