This is a technical module that allows to get [Cetmix Tower](https://cetmix.com/tower) modules from the [Odoo App Store](https://apps.odoo.com).

It's designed to install all the [Cetmix Tower](https://cetmix.com/tower) modules at once.
