diff --git a/docs/admin_guide/index.md b/docs/admin_guide/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..c7774424d6b8ade323472145da4352ab01f0c7fc
--- /dev/null
+++ b/docs/admin_guide/index.md
@@ -0,0 +1,16 @@
+# About this section
+
+All the information regarding modeling, workflows and ansible mechanics are described in this section.
+Next to this, also troubleshoting and maintainance are included.
+
+The structure is:
+
+- WFO
+  - Modelling
+  - Workflow
+  - Maintainance
+  - Troubleshoot
+- Ansible
+  - Design
+  - Low level description
+  - Troubleshoot
diff --git a/docs/architecture/components/wfo/modeling/index.md b/docs/architecture/components/wfo/modeling/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..e8839296b5410759e2403a396ec1eb1d8461804c
--- /dev/null
+++ b/docs/architecture/components/wfo/modeling/index.md
@@ -0,0 +1,23 @@
+# Data models
+
+To be able to model network objects, a data model must exist for every configuration item in the network. This allows
+for describing the network, and the services as a composition of abstract objects.
+
+## Decomposition of objects
+
+Every object -- both services and access ports -- is composed of the following building blocks:
+* Administrative metadata
+  * Object ID
+  * Status
+  * Owner
+* Configuration data that depends on the specific service, some examples:
+  * Access port
+    * Access port type
+    * Physical interfaces
+  * IP trunk
+    * IPv4 network
+    * IPv6 network
+    * IS-IS metric
+* Placement metadata
+  * Access node
+  * Service delivery point
diff --git a/docs/architecture/components/wfo/modeling/ports.md b/docs/architecture/components/wfo/modeling/ports.md
new file mode 100644
index 0000000000000000000000000000000000000000..99e1cb9331008efb7f4062ecad581dfd41f01a0d
--- /dev/null
+++ b/docs/architecture/components/wfo/modeling/ports.md
@@ -0,0 +1,38 @@
+# Services and ports
+
+While a port shouldn't be configured in case there is no service insisting on it, it could happen that more than one
+service is insisting on one port. For this reason, the following entities exist:
+
+{term}`SDP`
+: Service Delivery Point: the logical interface where a service is delivered
+
+{term}`GA`
+: Access Port: an access point into the GÉANT network
+
+{term}`GP`
+: Physical Port: the physical boundary for the {term}`GA`
+
+{term}`GAN`
+: Access Node: the node where a service is delivered
+
+These concepts apply to both {term}`CFS`es and {term}`IFS`es.
+
+```{figure} ../static/access_port_diagram.png
+:alt: Diagram that displays the different entities that make up a GÉANT service.
+
+A visualisation of how services insist on ports.
+```
+
+## Peer-to-peer and multipoint services
+
+There is a distinction between services -- as mentioned in [configuration (de)composition](#configuration-decomposition)
+-- between peer-to-peer and multipoint services. In both cases, {term}`SDP` is the delivery point of a service.
+However, for multipoint services customers are supposed to be dual-homed in at least two different {term}`GAN`s.
+
+To give some examples, the figure below shows a decomposition of a GeantIP service for an NREN.
+
+```{figure} ../static/geant_ip_ports_diagram.png
+:alt: Diagram that displays the different entities that make up a GeantIP service instance.
+
+A visualisation of an instance of a GeantIP service that consists of different configuration objects.
+```
diff --git a/docs/architecture/components/wfo/workflows/deploy_router.md b/docs/architecture/components/wfo/workflows/deploy_router.md
new file mode 100644
index 0000000000000000000000000000000000000000..3dbfd118788cb013a26d64113827f66e4cf17a7a
--- /dev/null
+++ b/docs/architecture/components/wfo/workflows/deploy_router.md
@@ -0,0 +1,16 @@
+# Router deployment
+
+From a bird's-eye view, the process of deploying a new router in the network is as follows:
+
+1. Manually configure the router such that it's reachable from out-of-band ({term}`OOB`).
+2. Upgrade the router to the most recent OS.
+3. Deploy base configuration.
+4. Configure trunks to connect the router to the network.
+5. Update the protocol meshes (such as {term}`iBGP`).
+6. Promote the router to the production environment.
+
+```{figure} ../static/WFO_deploy_router.png
+:alt: Diagram that displays the steps that Workflow Orchestrator takes to provision a new router. 
+
+{term}`WFO` provisions a new router by following the steps shown here.
+```
diff --git a/docs/architecture/components/wfo/workflows/node_provisioning.md b/docs/architecture/components/wfo/workflows/node_provisioning.md
new file mode 100644
index 0000000000000000000000000000000000000000..5c888a61ed5fd2fa3a3b68438c218bcdddbd6414
--- /dev/null
+++ b/docs/architecture/components/wfo/workflows/node_provisioning.md
@@ -0,0 +1,35 @@
+# Node provisioning
+
+A node can either be a router, a switch, or a terminal server. In general -- as laid out more extensively 
+[here](https://wiki.geant.org/display/NETENG/001+-+Topology+and+physical+layout) (behind login) -- a {term}`PoP` 
+consists of:
+
+* One or two routers
+* One switch
+* One terminal server
+
+Globally, the workflow for a new site is as follows:
+
+1. Deploy terminal server:
+   1. Generate base configuration from GitLab
+   2. Ship the device to its location
+   3. Verify reachability and insert in LibreNMS
+2. Deploy {term}`PoP` router in a 'core' fashion
+   1. Rack it up and configure the hardware
+   2. Connect the router to the terminal server via both a console connection, and FXP
+   3. Deploy base configuration using {term}`GAP`
+3. Deploy {term}`PoP` switch
+   1. Rack it up and configure the hardware
+   2. Connect the switch to the terminal server via both a console connection, and FXP
+   3. Deploy base configuration using {term}`GAP`
+4. Deploy the {term}`PoP` interconnect between router and switch
+   1. Set up a physical connection between router and switch
+   2. Deploy configuration using {term}`GAP`
+5. Deploy IP trunks to connect the router to the rest of the network
+   1. Set up a physical connection
+   2. Deploy configuration using {term}`GAP`
+6. Update the {term}`iBGP` mesh to include the new router, promoting it to an edge router
+   1. Deploy configuration using {term}`GAP`
+   2. Using {term}`GAP`, insert the devices in LibreNMS
+
+In the context of the automation platform, the {term}`PoP` interconnects mentioned are modeled as separate objects.
diff --git a/docs/conf.py b/docs/conf.py
index 65b2cfaeed2390d03fed49af9f468ff40028dd49..dcd51643ca0b0d7f39136dcb1e22723c66c96079 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -21,6 +21,11 @@ html_theme = 'sphinx_rtd_theme'
 html_static_path = ['static']
 html_theme_options = {
     'style_nav_header_background': 'rgb(0 63 95)',
+    'collapse_navigation': True,
+    'sticky_navigation': True,
+    'navigation_depth': 4,
+    'includehidden': True,
+    'titles_only': False
 }
 html_css_files = ['custom.css']
 html_logo = 'static/geant_logo_white.svg'
diff --git a/docs/index.md b/docs/index.md
index b567f7ecdd4fda6c09978c5b5fdbd91131565e77..6190908a902c0201c5ece8ffcf0378d7c4b1611e 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -6,28 +6,37 @@ The focus of this platform is configuration management and service orchestration
 This documentation has the following sections:
 
 ```{toctree}
-:caption: Background
-:maxdepth: 2
+:caption: Architecture
+:maxdepth: 1
 overview/index.md
 architecture/index.md
 ```
 
 ```{toctree}
-:caption: Modeling
-:maxdepth: 2
-modeling/index.md
-modeling/ports.md
+:caption: User guide
+:glob:
+:maxdepth: 3
+user_guide/index.md
+user_guide/Sites/*
+user_guide/Routers/*
+user_guide/IPtrunks/*
 ```
 
 ```{toctree}
-:caption: Processes
-:maxdepth: 2
-processes/node_provisioning.md
-processes/deploy_router.md
+:caption: Admin guide
+:maxdepth: 1
+admin_guide/index.md
+```
+
+```{toctree}
+:caption: Legacy GAP
+:maxdepth: 1
+legacy_platform/overview.md
+legacy_platform/new_router_deployment.md
 ```
 
 ```{toctree}
 :caption: —
-:maxdepth: 2
+:maxdepth: 1
 glossary.md
 ```
diff --git a/docs/legacy_platform/new_router_deployment.md b/docs/legacy_platform/new_router_deployment.md
new file mode 100644
index 0000000000000000000000000000000000000000..b678e3eac94b81a55bcca3d01a44ae108fc5b399
--- /dev/null
+++ b/docs/legacy_platform/new_router_deployment.md
@@ -0,0 +1,2 @@
+# Deployment of a new router
+
diff --git a/docs/legacy_platform/overview.md b/docs/legacy_platform/overview.md
new file mode 100644
index 0000000000000000000000000000000000000000..a5310cde55d58f3d1c80aa82f2b8af28beea2732
--- /dev/null
+++ b/docs/legacy_platform/overview.md
@@ -0,0 +1,26 @@
+# Overview
+
+Current GAP is extremely simple and its foundamental parts are:
+
+- An ansible inventory stored in Git [Ansible inventory](https://gitlab.geant.net/neteam/network-automation/na-production/prod_network_inventory/-/tree/master)
+- A set of ansible playbooks stored in Git [Ansible playbooks](https://gitlab.geant.net/neteam/network-automation/na-production/prod_network_ansible)
+- An Ansible master instance to execute these playbooks
+- A Jenkins instance to orchestrate Ansible
+
+An overview of the platform is depicted in the following picture:
+
+![GAP_overview](../static/Legacy_GAP_diagrams.overview.drawio.png)
+
+
+## Functionalities
+
+Currently GAP is capable of the following capabilities:
+
+- Provisioning of nodes and IPtrunks:
+  - Deployment of base config on a new router
+  - Deployment of a new trunk with metric=9000
+  - Insertion of a new router in the iBGP mesh
+- Periodic checks of configuration:
+  - Verification of single stanza of configuration
+- Others:
+  - Upgrade of Junos on single and dual routing engines Juniper routers
diff --git a/docs/static/Image_sources/.$Legacy_GAP_diagrams.drawio.bkp b/docs/static/Image_sources/.$Legacy_GAP_diagrams.drawio.bkp
new file mode 100644
index 0000000000000000000000000000000000000000..56311e0eea99c8069c330d4a515b30aeac2fda4e
--- /dev/null
+++ b/docs/static/Image_sources/.$Legacy_GAP_diagrams.drawio.bkp
@@ -0,0 +1,109 @@
+<mxfile host="Electron" modified="2023-08-04T07:43:55.097Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.1 Chrome/112.0.5615.87 Electron/24.1.2 Safari/537.36" etag="yny_tqDxbk-8OQmxMuUl" version="21.2.1" type="device">
+  <diagram name="Page-1" id="k83DaNArxDXSbVKD7Knm">
+    <mxGraphModel dx="2490" dy="1944" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="tLlyI6g2dAklqoHCJuop-1" value="" style="rounded=1;whiteSpace=wrap;html=1;fontColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="200" y="-60" width="310" height="230" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-2" value="&lt;font color=&quot;#FFFFFF&quot;&gt;Jenkins&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#003C56;fontSize=18;strokeColor=none;" vertex="1" parent="1">
+          <mxGeometry x="-160" y="-110" width="160" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-3" value="&lt;font color=&quot;#FFFFFF&quot;&gt;Ansible&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#003C56;fontSize=18;strokeColor=none;" vertex="1" parent="1">
+          <mxGeometry x="-160" y="20" width="160" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-4" value="" style="group" vertex="1" connectable="0" parent="1">
+          <mxGeometry x="210" y="33" width="310" height="133" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-5" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1084B9;fontSize=18;strokeColor=none;fontColor=#FFFFFF;" vertex="1" parent="tLlyI6g2dAklqoHCJuop-4">
+          <mxGeometry y="33" width="290" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-6" value="&lt;h1 style=&quot;font-size: 20px;&quot;&gt;&lt;font style=&quot;font-size: 20px;&quot;&gt;Config Templates&lt;br&gt;&lt;/font&gt;&lt;/h1&gt;" style="text;whiteSpace=wrap;html=1;fontColor=#FFFFFF;" vertex="1" parent="tLlyI6g2dAklqoHCJuop-4">
+          <mxGeometry x="58" y="30" width="270" height="80" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-15" value="Vendor specific implementation" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="tLlyI6g2dAklqoHCJuop-4">
+          <mxGeometry x="30" y="93" width="230" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-7" value="" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;fontColor=#FFFFFF;" vertex="1" parent="1">
+          <mxGeometry x="-286" y="190" width="330" height="200" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-8" value="&lt;h1 align=&quot;center&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Geant&lt;br&gt;&lt;/font&gt;&lt;/h1&gt;&lt;h1 align=&quot;center&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;IP/MPLS Network&lt;/font&gt;&lt;br&gt;&lt;/h1&gt;" style="text;whiteSpace=wrap;html=1;fontColor=#FFFFFF;" vertex="1" parent="1">
+          <mxGeometry x="-211" y="230" width="205" height="70" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-9" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fontColor=#FFFFFF;entryX=1;entryY=0.75;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;fillColor=default;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-5" target="tLlyI6g2dAklqoHCJuop-3">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="170" y="160" as="sourcePoint" />
+            <mxPoint x="220" y="110" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-10" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fontColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.625;entryY=0.2;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-3" target="tLlyI6g2dAklqoHCJuop-7">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="140" y="190" as="sourcePoint" />
+            <mxPoint x="190" y="140" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-11" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;fontColor=#FFFFFF;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-3" target="tLlyI6g2dAklqoHCJuop-2">
+          <mxGeometry width="100" height="100" relative="1" as="geometry">
+            <mxPoint x="-320" y="20" as="sourcePoint" />
+            <mxPoint x="-220" y="-80" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-12" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1084B9;fontSize=18;strokeColor=none;fontColor=#FFFFFF;" vertex="1" parent="1">
+          <mxGeometry x="210" y="-30" width="290" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-13" value="&lt;h1 style=&quot;font-size: 20px;&quot;&gt;&lt;font style=&quot;font-size: 20px;&quot;&gt;Inventory&lt;br&gt;&lt;/font&gt;&lt;/h1&gt;" style="text;whiteSpace=wrap;html=1;fontColor=#FFFFFF;" vertex="1" parent="1">
+          <mxGeometry x="268" y="-33" width="270" height="80" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-14" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fontColor=#000000;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;fillColor=default;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-12" target="tLlyI6g2dAklqoHCJuop-3">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="90" as="sourcePoint" />
+            <mxPoint x="140" y="-50" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-16" value="Global variables + Services" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="310" y="-62" width="200" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-17" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fontColor=#000000;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.004;entryY=0.113;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;fillColor=default;entryPerimeter=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-2" target="tLlyI6g2dAklqoHCJuop-13">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="220" y="-20" as="sourcePoint" />
+            <mxPoint x="282.5" y="-60" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-18" value="&lt;font style=&quot;font-size: 15px;&quot;&gt;Netconf&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="-120" y="140" width="150" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-19" value="Updates via python scripts" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="44" y="-120" width="186" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-20" value="Sync every minute &amp;amp; on demand" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry y="-33" width="186" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-22" value="" style="shape=actor;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="342" y="-290" width="40" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-23" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-16" target="tLlyI6g2dAklqoHCJuop-22">
+          <mxGeometry width="100" height="100" relative="1" as="geometry">
+            <mxPoint x="430" y="-150" as="sourcePoint" />
+            <mxPoint x="530" y="-250" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-24" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-2" target="tLlyI6g2dAklqoHCJuop-22">
+          <mxGeometry width="100" height="100" relative="1" as="geometry">
+            <mxPoint x="-170" y="-190" as="sourcePoint" />
+            <mxPoint x="-70" y="-290" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="-80" y="-245" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-25" value="&lt;h1&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;Changes to intended configuration via MR&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 style=&quot;line-height: 50%;&quot;&gt;&lt;span style=&quot;font-size: 12px; font-weight: 400;&quot;&gt;We use Merge Requests to incorporate changes to the intended configuration or mechanics.&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="390" y="-220" width="410" height="150" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-26" value="&lt;h1&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;Apply changes to the live network&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 style=&quot;line-height: 50%;&quot;&gt;&lt;span style=&quot;font-size: 12px; font-weight: 400;&quot;&gt;Jenkins web interface is used to run changes in an ordered manner, leveraging pipelines.&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="-68" y="-240" width="410" height="150" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>
diff --git a/docs/static/Image_sources/Legacy_GAP_diagrams.drawio b/docs/static/Image_sources/Legacy_GAP_diagrams.drawio
new file mode 100644
index 0000000000000000000000000000000000000000..c854f965fb689379cf856ccd26ba11c2426b2d1c
--- /dev/null
+++ b/docs/static/Image_sources/Legacy_GAP_diagrams.drawio
@@ -0,0 +1,109 @@
+<mxfile host="Electron" modified="2023-08-04T07:44:54.540Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.1 Chrome/112.0.5615.87 Electron/24.1.2 Safari/537.36" etag="f_znjEoEsjO5Cs6O7TO9" version="21.2.1" type="device">
+  <diagram name="Overview" id="k83DaNArxDXSbVKD7Knm">
+    <mxGraphModel dx="2490" dy="1944" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="tLlyI6g2dAklqoHCJuop-1" value="" style="rounded=1;whiteSpace=wrap;html=1;fontColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="200" y="-60" width="310" height="230" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-2" value="&lt;font color=&quot;#FFFFFF&quot;&gt;Jenkins&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#003C56;fontSize=18;strokeColor=none;" vertex="1" parent="1">
+          <mxGeometry x="-160" y="-110" width="160" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-3" value="&lt;font color=&quot;#FFFFFF&quot;&gt;Ansible&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#003C56;fontSize=18;strokeColor=none;" vertex="1" parent="1">
+          <mxGeometry x="-160" y="20" width="160" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-4" value="" style="group" vertex="1" connectable="0" parent="1">
+          <mxGeometry x="210" y="33" width="310" height="133" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-5" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1084B9;fontSize=18;strokeColor=none;fontColor=#FFFFFF;" vertex="1" parent="tLlyI6g2dAklqoHCJuop-4">
+          <mxGeometry y="33" width="290" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-6" value="&lt;h1 style=&quot;font-size: 20px;&quot;&gt;&lt;font style=&quot;font-size: 20px;&quot;&gt;Config Templates&lt;br&gt;&lt;/font&gt;&lt;/h1&gt;" style="text;whiteSpace=wrap;html=1;fontColor=#FFFFFF;" vertex="1" parent="tLlyI6g2dAklqoHCJuop-4">
+          <mxGeometry x="58" y="30" width="270" height="80" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-15" value="Vendor specific implementation" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="tLlyI6g2dAklqoHCJuop-4">
+          <mxGeometry x="30" y="93" width="230" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-7" value="" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;fontColor=#FFFFFF;" vertex="1" parent="1">
+          <mxGeometry x="-286" y="190" width="330" height="200" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-8" value="&lt;h1 align=&quot;center&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;Geant&lt;br&gt;&lt;/font&gt;&lt;/h1&gt;&lt;h1 align=&quot;center&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;IP/MPLS Network&lt;/font&gt;&lt;br&gt;&lt;/h1&gt;" style="text;whiteSpace=wrap;html=1;fontColor=#FFFFFF;" vertex="1" parent="1">
+          <mxGeometry x="-211" y="230" width="205" height="70" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-9" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fontColor=#FFFFFF;entryX=1;entryY=0.75;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;fillColor=default;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-5" target="tLlyI6g2dAklqoHCJuop-3">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="170" y="160" as="sourcePoint" />
+            <mxPoint x="220" y="110" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-10" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fontColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.625;entryY=0.2;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-3" target="tLlyI6g2dAklqoHCJuop-7">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="140" y="190" as="sourcePoint" />
+            <mxPoint x="190" y="140" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-11" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;fontColor=#FFFFFF;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-3" target="tLlyI6g2dAklqoHCJuop-2">
+          <mxGeometry width="100" height="100" relative="1" as="geometry">
+            <mxPoint x="-320" y="20" as="sourcePoint" />
+            <mxPoint x="-220" y="-80" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-12" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1084B9;fontSize=18;strokeColor=none;fontColor=#FFFFFF;" vertex="1" parent="1">
+          <mxGeometry x="210" y="-30" width="290" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-13" value="&lt;h1 style=&quot;font-size: 20px;&quot;&gt;&lt;font style=&quot;font-size: 20px;&quot;&gt;Inventory&lt;br&gt;&lt;/font&gt;&lt;/h1&gt;" style="text;whiteSpace=wrap;html=1;fontColor=#FFFFFF;" vertex="1" parent="1">
+          <mxGeometry x="268" y="-33" width="270" height="80" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-14" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fontColor=#000000;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;fillColor=default;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-12" target="tLlyI6g2dAklqoHCJuop-3">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="90" as="sourcePoint" />
+            <mxPoint x="140" y="-50" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-16" value="Global variables + Services" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="310" y="-62" width="200" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-17" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fontColor=#000000;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.004;entryY=0.113;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;fillColor=default;entryPerimeter=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-2" target="tLlyI6g2dAklqoHCJuop-13">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="220" y="-20" as="sourcePoint" />
+            <mxPoint x="282.5" y="-60" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-18" value="&lt;font style=&quot;font-size: 15px;&quot;&gt;Netconf&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="1">
+          <mxGeometry x="-120" y="140" width="150" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-19" value="Updates via python scripts" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="44" y="-120" width="186" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-20" value="Sync every minute &amp;amp; on demand" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry y="-33" width="186" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-22" value="" style="shape=actor;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="342" y="-290" width="40" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-23" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-16" target="tLlyI6g2dAklqoHCJuop-22">
+          <mxGeometry width="100" height="100" relative="1" as="geometry">
+            <mxPoint x="430" y="-150" as="sourcePoint" />
+            <mxPoint x="530" y="-250" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-24" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="tLlyI6g2dAklqoHCJuop-2" target="tLlyI6g2dAklqoHCJuop-22">
+          <mxGeometry width="100" height="100" relative="1" as="geometry">
+            <mxPoint x="-170" y="-190" as="sourcePoint" />
+            <mxPoint x="-70" y="-290" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="-80" y="-245" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-25" value="&lt;h1&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;Changes to intended configuration via MR&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 style=&quot;line-height: 50%;&quot;&gt;&lt;span style=&quot;font-size: 12px; font-weight: 400;&quot;&gt;We use Merge Requests to incorporate changes to the intended configuration or mechanics.&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="390" y="-220" width="410" height="150" as="geometry" />
+        </mxCell>
+        <mxCell id="tLlyI6g2dAklqoHCJuop-26" value="&lt;h1&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;Apply changes to the live network&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;&lt;h1 style=&quot;line-height: 50%;&quot;&gt;&lt;span style=&quot;font-size: 12px; font-weight: 400;&quot;&gt;Jenkins web interface is used to run changes in an ordered manner, leveraging pipelines.&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="-68" y="-240" width="410" height="150" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>
diff --git a/docs/static/Legacy_GAP_diagrams.overview.drawio.png b/docs/static/Legacy_GAP_diagrams.overview.drawio.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c6297b07eafe8cd25de8891927b11ac65b367c6
Binary files /dev/null and b/docs/static/Legacy_GAP_diagrams.overview.drawio.png differ
diff --git a/docs/user_guide/IPtrunks/iptrunks.md b/docs/user_guide/IPtrunks/iptrunks.md
new file mode 100644
index 0000000000000000000000000000000000000000..4e3303fa1f7032e01dec191767cd32a5ce3a5254
--- /dev/null
+++ b/docs/user_guide/IPtrunks/iptrunks.md
@@ -0,0 +1,9 @@
+# IP trunks
+
+## Deployment
+
+## Modification
+
+## Termination
+
+## Migration
\ No newline at end of file
diff --git a/docs/user_guide/Routers/routers.md b/docs/user_guide/Routers/routers.md
new file mode 100644
index 0000000000000000000000000000000000000000..f59535222939873c8048c66e2670ee70832069de
--- /dev/null
+++ b/docs/user_guide/Routers/routers.md
@@ -0,0 +1,5 @@
+# Routers
+
+## Deployment
+
+## Undeployment
diff --git a/docs/user_guide/Sites/sites.md b/docs/user_guide/Sites/sites.md
new file mode 100644
index 0000000000000000000000000000000000000000..4ce1d8a852a36a18801105ce78fd5f1766098c0e
--- /dev/null
+++ b/docs/user_guide/Sites/sites.md
@@ -0,0 +1,5 @@
+# Sites
+
+## Creation
+
+## Deletion
\ No newline at end of file
diff --git a/docs/user_guide/index.md b/docs/user_guide/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..f1861222736c4c107042c1504be2613994ca9c65
--- /dev/null
+++ b/docs/user_guide/index.md
@@ -0,0 +1,6 @@
+# About this section
+
+The GAP user guide section aims to describe step by step the mode of operation of the automation platform so that engineers can follow it when in doubt.
+
+The structure is simple: one sub-section per product and one page for each workflow.
+