diff --git a/controllers/__init__.py b/controllers/__init__.py
index 75f6a061f6f23e9ecc3201cf44fcc248f66e1a3e..abacf04840d4a28b202898e50c6e7608c743acc9 100644
--- a/controllers/__init__.py
+++ b/controllers/__init__.py
@@ -1,4 +1,4 @@
 # Copyright 2022 Le Filament (https://le-filament.com)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
 
-from . import banner_release, portal
+from . import banner_release, main, portal
diff --git a/controllers/main.py b/controllers/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac60913ba26e2aa500474778ba8ec87a8c46c444
--- /dev/null
+++ b/controllers/main.py
@@ -0,0 +1,32 @@
+# Copyright 2022 Le Filament (https://le-filament.com)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
+
+from odoo import exceptions, http
+from odoo.http import request
+
+
+class ReleaseController(http.Controller):
+    # ------------------------------------------------------
+    # Routes
+    # ------------------------------------------------------
+    @http.route(
+        ["/post-modules"],
+        type="json",
+        auth="none",
+        method=["POST"],
+        csrf=False,
+    )
+    def post_modules(self):
+        ip_addr = request.httprequest.remote_addr
+        partner_id = (
+            request.env["res.partner"].sudo().search([("server_ip", "=", ip_addr)])
+        )
+        if partner_id:
+            modules = request.jsonrequest.get("modules")
+            partner_id.retrieve_modules(modules)
+        else:
+            return exceptions.AccessDenied()
+
+    # ------------------------------------------------------
+    # Common functions
+    # ------------------------------------------------------
diff --git a/models/res_partner.py b/models/res_partner.py
index 6c76a601086abf92c58269f7f241dcc785149bce..541acee01ebc07d9638f1b6f011fa5674c0cb6f1 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -1,9 +1,8 @@
 # © 2022 Le Filament (<http://www.le-filament.com>)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 
-import requests
 
-from odoo import _, exceptions, fields, models
+from odoo import fields, models
 
 
 class ResPartner(models.Model):
@@ -26,8 +25,7 @@ class ResPartner(models.Model):
         string="Lien de partage client",
         compute="_compute_release_share_link",
     )
-    server_url = fields.Char("URL du serveur")
-    database_name = fields.Char("Nom de la base de données")
+    server_ip = fields.Char("IP du serveur")
 
     # ------------------------------------------------------
     # Computed fields / Search Fields
@@ -53,23 +51,10 @@ class ResPartner(models.Model):
             if partner.is_company:
                 partner._portal_ensure_token()
 
-    def retrieve_modules(self):
+    def retrieve_modules(self, modules):
         existing_modules = self.env["res.partner.module"].search([])
         for partner in self:
-            if not partner.server_url or not partner.database_name:
-                raise exceptions.UserError(
-                    _("L'url et la base de données doivent être renseignés.")
-                )
-
-            try:
-                response = requests.get(
-                    partner.server_url + "/get-modules",
-                    headers={"DbName": partner.database_name},
-                ).json()
-            except Exception as e:
-                raise exceptions.UserError(e.__str__())
-
-            for module in response:
+            for module in modules:
                 if module.get("author_type") != "odoo":
                     # Mise à jour du module
                     if module.get("name") in existing_modules.mapped("name"):
@@ -94,7 +79,7 @@ class ResPartner(models.Model):
                         lambda m: m.get("name")
                         if m.get("author_type") != "odoo"
                         else None,
-                        response,
+                        modules,
                     )
                 )
             )
diff --git a/views/res_partner.xml b/views/res_partner.xml
index be94263a68435985c1905af07b787c6a8fe708c9..064148de46fdb516d8a05bb27bb444b6b63166dc 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -18,19 +18,9 @@
                     >
                         <group>
                             <group>
-                                <div class="text-muted" colspan="2">
-                                    Format de l'url : https://exemple.com
-                                </div>
-                                <field name="server_url" />
-                                <field name="database_name" />
+                                <field name="server_ip" />
                             </group>
                             <group>
-                                <button
-                                    name="retrieve_modules"
-                                    type="object"
-                                    string="Récupérer/Mettre à jour la liste depuis le serveur"
-                                    class="btn-info"
-                                />
                             </group>
                         </group>
                         <field name="module_ids">
diff --git a/wizard/multi_partner_release_wizard.py b/wizard/multi_partner_release_wizard.py
index 2466cee8359f5d0fffcf908f1ebffbe5d4948a95..35228c6c3ea003bee9cd719664e7542e3c8b8f58 100644
--- a/wizard/multi_partner_release_wizard.py
+++ b/wizard/multi_partner_release_wizard.py
@@ -1,7 +1,7 @@
 # Copyright 2022 Le Filament (https://le-filament.com)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
 
-from odoo import fields, models, api
+from odoo import fields, models
 
 
 class MultiPartnerReleaseWizard(models.TransientModel):
@@ -43,23 +43,35 @@ class MultiPartnerReleaseWizard(models.TransientModel):
             detail_module = []
             for module in self.release_module_ids:
                 detail_module.append(
-                    (0, 0, {
-                       "module_id": module.module_id.id,
-                       "release_type": module.release_type,
-                       "log": module.log,
-                    })
+                    (
+                        0,
+                        0,
+                        {
+                            "module_id": module.module_id.id,
+                            "release_type": module.release_type,
+                            "log": module.log,
+                        },
+                    )
                 )
-            partner.write({
-                "release_ids": [(0, 0, {
-                    "user_id": self.user_id.id,
-                    "release_date": self.release_date,
-                    "description": self.description,
-                    "release_module_ids": detail_module,
-                })]
-            })
+            partner.write(
+                {
+                    "release_ids": [
+                        (
+                            0,
+                            0,
+                            {
+                                "user_id": self.user_id.id,
+                                "release_date": self.release_date,
+                                "description": self.description,
+                                "release_module_ids": detail_module,
+                            },
+                        )
+                    ]
+                }
+            )
         return {
-            'type': 'ir.actions.client',
-            'tag': 'reload',
+            "type": "ir.actions.client",
+            "tag": "reload",
         }
 
 
diff --git a/wizard/multi_partner_release_wizard.xml b/wizard/multi_partner_release_wizard.xml
index 7683ce761fbc5863a5820922634e7b6cbdfe8894..436dc3b5f363f98c439f8d2177bdecd0195ddf53 100644
--- a/wizard/multi_partner_release_wizard.xml
+++ b/wizard/multi_partner_release_wizard.xml
@@ -45,7 +45,12 @@
                             </field>
                         </group>
                         <footer>
-                            <button name="create_releases" type="object" string="Créer les releases" class="btn-primary"/>
+                            <button
+                                name="create_releases"
+                                type="object"
+                                string="Créer les releases"
+                                class="btn-primary"
+                            />
                             <button string="Fermer" class="oe_link" special="cancel" />
                         </footer>
                     </sheet>
@@ -54,7 +59,10 @@
         </record>
 
         <!-- Action Window -->
-        <record id="multi_partner_release_wizard_act_window" model="ir.actions.act_window">
+        <record
+            id="multi_partner_release_wizard_act_window"
+            model="ir.actions.act_window"
+        >
             <field name="name">Releases Client</field>
             <field name="type">ir.actions.act_window</field>
             <field name="res_model">multi.partner.release.wizard</field>