# 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)