diff --git a/addons/cetmix_tower_ovh/README.rst b/addons/cetmix_tower_ovh/README.rst
new file mode 100644
index 0000000..43112db
--- /dev/null
+++ b/addons/cetmix_tower_ovh/README.rst
@@ -0,0 +1,273 @@
+================
+Cetmix Tower OVH
+================
+
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:ccd66d74df51fff24d12ccf1aa06e22728f13ce8d5aeacf3968af23e4794f591
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-cetmix%2Fcetmix--tower-lightgray.png?logo=github
+ :target: https://github.com/cetmix/cetmix-tower/tree/16.0/cetmix_tower_ovh
+ :alt: cetmix/cetmix-tower
+
+|badge1| |badge2| |badge3|
+
+This module integrates the OVH Python client, enabling seamless
+interaction with OVH cloud services within the Cetmix Tower.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Use Cases / Context
+===================
+
+Although OVH allows API calls without using an SDK, we found that
+integrating the OVH SDK into Cetmix Tower makes provisioning,
+configuring, and maintaining OVH instances more convenient for the end
+user. However, not all Cetmix Tower users require this functionality, so
+to avoid overloading the system, we have included it in a separate
+module.
+
+Configuration
+=============
+
+Setting up OVH Access
+=====================
+
+Create OVH API Credentials
+--------------------------
+
+To use the OVH integration with Cetmix Tower, you need to create OVH API
+credentials:
+
+- Follow the `official OVH
+ documentation `__
+ (https://docs.ovh.com/gb/en/api/first-steps/) for creating an
+ application and generating API keys
+- It's recommended to create a dedicated application with appropriate
+ permissions for Cetmix Tower
+- Store your Application Key, Application Secret, and Consumer Key
+ securely—you'll need them in the next step
+
+Configure OVH Secrets in Cetmix Tower
+-------------------------------------
+
+Create three secrets in Cetmix Tower to store your OVH credentials:
+
+- Navigate to ``Cetmix Tower > Settings > Keys and Secrets``
+- Create a new Secret with:
+
+ - Name: ``OVH Application Key``
+ - Reference: ``ovh_application_key``
+ - Key Type: ``Secret``
+
+- Enter your OVH Application Key in the Secret Value tab
+- Similarly, create another Secret with:
+
+ - Name: ``OVH Application Secret``
+ - Reference: ``ovh_application_secret``
+ - Key Type: ``Secret``
+
+- Enter your OVH Application Secret in the Secret Value tab
+- Finally, create a Secret with:
+
+ - Name: ``OVH Consumer Key``
+ - Reference: ``ovh_consumer_key``
+ - Key Type: ``Secret``
+
+- Enter your OVH Consumer Key in the Secret Value tab
+
+..
+
+ Note: These secrets will be accessible as
+ ``#!cxtower.secret.ovh_application_key!#``,
+ ``#!cxtower.secret.ovh_application_secret!#``, and
+ ``#!cxtower.secret.ovh_consumer_key!#`` in your commands.
+
+Configure OVH Endpoint
+----------------------
+
+Create a variable to define your OVH API endpoint (region):
+
+- Navigate to ``Cetmix Tower > Settings > Variables``
+- Create a new Variable with:
+
+ - Name: ``OVH Endpoint``
+ - Reference: ``ovh_endpoint``
+ - Type: ``String``
+
+- Set your OVH endpoint (e.g., ``ovh-eu``, ``ovh-ca``, ``ovh-us``) as
+ the value
+
+Usage
+=====
+
+Cetmix Tower OVHcloud Command Usage
+===================================
+
+ **Disclaimer**: The following example demonstrates one of many
+ possible commands you can create and run with this module. The
+ ``ovh`` Python library provides access to the full range of OVHcloud
+ APIs – this is just a starting point to help you get familiar with
+ the integration.
+
+Example of Cetmix Tower Python Command to Create DNS Records
+------------------------------------------------------------
+
+- **Navigate to Command Creation**
+
+ - Go to ``Cetmix Tower > Commands > Commands``
+ - Click the ``Create`` button
+
+- **Configure Command Settings**
+
+ - Set a descriptive ``Name`` (e.g., "List OVHcloud Instances")
+ - Leave ``Reference`` blank to generate automatically (or set a custom
+ reference)
+ - Select ``Action``: "Execute Python code"
+ - Set ``Access Level``: Choose appropriate level (e.g., "Manager")
+ - Optional: Set ``Default Path`` if needed
+ - Optional: Add ``Tags`` (e.g., "ovh", "cloud", "instance") for better
+ organization
+
+- **Add Required Variables**
+
+ - In the ``Variables`` tab, add the previously configured variable:
+
+ - ``ovh_endpoint`` (e.g., "ovh-eu")
+
+- **Add Required Secrets**
+
+ - In the ``Secrets`` field, add the previously configured secrets:
+
+ - ``ovh_application_key``
+ - ``ovh_application_secret``
+ - ``ovh_consumer_key``
+
+- **Write Python Code**
+
+ - Go to the ``Code`` tab
+ - Enter the following Python code:
+
+ .. code:: python
+
+ # List OVHcloud instances using ovh API
+ result = {"exit_code": 0, "message": None}
+
+ client = ovh.Client(
+ endpoint={{ ovh_endpoint }},
+ application_key=#!cxtower.secret.ovh_application_key!#,
+ application_secret=#!cxtower.secret.ovh_application_secret!#,
+ consumer_key=#!cxtower.secret.ovh_consumer_key!#
+ )
+
+ # Required variables:
+ # - domain_name: The main domain (e.g., "example.com")
+ # - subdomain: The subdomain to create (e.g., "test")
+
+ try:
+ # Create a new subdomain by adding a DNS entry (A record as example)
+ ip_address = "1.2.3.4" # Replace with the desired IP address
+ response = client.post(
+ "/domain/zone/" + domain_name + "/record",
+ fieldType="A",
+ subDomain=subdomain,
+ target=ip_address,
+ ttl=3600
+ )
+ # Refresh the zone to apply changes
+ client.post("/domain/zone/" + domain_name + "/refresh")
+ result["message"] = "Subdomain '" + subdomain + "." + domain_name + "' created and DNS zone refreshed."
+ except Exception as e:
+ result["exit_code"] = 1
+ result["message"] = "Error: " + str(e)
+
+- **Save the Command**
+
+ - Click the ``Save`` button to create the command
+
+Running the OVHcloud Instance Command
+-------------------------------------
+
+- **Navigate to Server**
+
+ - Go to ``Cetmix Tower > Servers > Servers``
+ - Open the server where you want to run the command
+
+- **Execute Command from Server**
+
+ - Click the ``Command`` button at the top of the server form
+ - In the popup dialog:
+
+ - Select your OVHcloud instance command from the dropdown
+ - Verify the variable values (if any need adjustment)
+ - Click ``Run`` to execute
+
+- **View Command Results**
+
+ - After execution, the command log will display showing:
+
+ - The command executed
+ - Execution status
+ - Output message containing OVHcloud instance details if successful
+
+Changelog
+=========
+
+14.0.1.3.0 (2025-07-15)
+-----------------------
+
+- Features: Improve the way Python libraries are added using custom
+ modules (4832)
+
+14.0.1.2.0 (2025-06-12)
+-----------------------
+
+- Features: Refactor the library import using the latest updates in the
+ cetmix_tower_server module. (4768)
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us to smash it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+-------
+
+* Cetmix
+* Giovanni Serra
+
+Maintainers
+-----------
+
+.. |maintainer-GSLabIt| image:: https://github.com/GSLabIt.png?size=40px
+ :target: https://github.com/GSLabIt
+ :alt: GSLabIt
+
+Current maintainer:
+
+|maintainer-GSLabIt|
+
+This module is part of the `cetmix/cetmix-tower `_ project on GitHub.
+
+You are welcome to contribute.