<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Cortex]]></title><description><![CDATA[Turn system complexity into organizational clarity]]></description><link>https://beeztech.kodo-tech.com/</link><image><url>https://beeztech.kodo-tech.com/favicon.png</url><title>Cortex</title><link>https://beeztech.kodo-tech.com/</link></image><generator>Ghost 5.23</generator><lastBuildDate>Tue, 23 Jun 2026 18:39:47 GMT</lastBuildDate><atom:link href="https://beeztech.kodo-tech.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Getting Started]]></title><description><![CDATA[<p></p><h2 id="before-you-begin">Before You Begin</h2><p>Each code block includes a copy button.</p><p>The content displayed in the documentation is intended to help you understand what is being created or configured. The copy button copies a platform-specific command that performs the complete operation automatically.</p><h2 id="recommended-system-requirements">Recommended system requirements</h2><ul><li>16 GB RAM</li><li>Recent multi-core CPU</li></ul>]]></description><link>https://beeztech.kodo-tech.com/getting-started/</link><guid isPermaLink="false">6a1feab85a83e10001f9d4fd</guid><category><![CDATA[Reference]]></category><dc:creator><![CDATA[Guillaume Ganier]]></dc:creator><pubDate>Wed, 03 Jun 2026 09:38:59 GMT</pubDate><content:encoded><![CDATA[<p></p><h2 id="before-you-begin">Before You Begin</h2><p>Each code block includes a copy button.</p><p>The content displayed in the documentation is intended to help you understand what is being created or configured. The copy button copies a platform-specific command that performs the complete operation automatically.</p><h2 id="recommended-system-requirements">Recommended system requirements</h2><ul><li>16 GB RAM</li><li>Recent multi-core CPU</li></ul><h2 id="pre-requisites">Pre-requisites</h2><p></p><h3 id="linux-ubuntudebian">Linux (Ubuntu/Debian)</h3><!--kg-card-begin: html--><div class="code-block" data-copy="sudo apt update &amp;&amp; sudo apt install -y docker.io docker-compose-plugin &amp;&amp; docker --version">
   
    <div class="code-header">
		<span>Linux (Ubuntu / Debian)</span>
    </div>

    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-bash"><code class="language-bash">sudo apt update
sudo apt install -y docker.io docker-compose-plugin
docker --version</code></pre>
</div><!--kg-card-end: html--><h3 id="mac">Mac</h3><ul><li>We support the current macOS release</li><li>Apple Silicon Mac recommended</li></ul><!--kg-card-begin: html--><ul>
    <li>
        <a href="https://www.docker.com/get-started/" target="_blank" rel="noopener noreferrer">
            Install Docker Desktop
        </a>
    </li>
</ul><!--kg-card-end: html--><ul><li>Docker Compose is included with Docker Desktop</li></ul><h3 id="windows">Windows</h3><p></p><ul><li>Windows 11 Pro, Enterprise, or Education (Home also works with WSL2, but Pro is smoother for virtualization tooling)</li><li>Virtualization enabled in BIOS (Intel VT-x or AMD-V)</li><li>Install WSL2</li></ul><!--kg-card-begin: html--><div class="code-block" data-copy="wsl --install -d Ubuntu">
    
    <div class="code-header">
		<span>Windows (Powershell)</span>
    </div>
    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-powershell"><code class="language-powershell">wsl --install -d Ubuntu</code></pre>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><ul>
    <li>
        <a href="https://www.docker.com/get-started/" target="_blank" rel="noopener noreferrer">
            Install Docker Desktop
        </a>
    </li>
</ul><!--kg-card-end: html--><!--kg-card-begin: html--><ul>
    <li>
        Use WSL 2 instead of Hyper-V (
        <a href="https://docs.docker.com/desktop/features/wsl/" target="_blank" rel="noopener noreferrer">
            Docker Documentation
        </a>
        )
    </li>
</ul><!--kg-card-end: html--><h3 id="deploy-your-first-project-locally-in-under-5-minutes">Deploy your first project locally in under 5 minutes</h3><p>After completing the onboarding process, a test project named <strong><strong>GitLab Cortex Demo</strong> </strong>will be automatically created.</p><h3 id="what-you%E2%80%99ll-deploy">What You&#x2019;ll Deploy</h3><p>The <strong>GitLab Cortex Demo</strong> project is a self-contained distributed system designed to showcase how Cortex models, generates, and deploys complete development environments.</p><p>In less than 5 minutes, you&#x2019;ll deploy a fully functional platform including:</p><ul><li>GitLab for source code management</li><li>PostgreSQL as the application database</li><li>OpenLDAP for identity management</li><li>pgAdmin for database administration</li><li>phpLDAPadmin for LDAP administration</li><li>Reverse proxying and TLS termination</li><li>Production-aligned networking and service discovery with Traefik</li></ul><h3 id="why-this-project-exists">Why This Project Exists</h3><p>This project demonstrates how Cortex can:</p><ul><li>Model an entire distributed system from a single source of truth</li><li>Generate deployment artifacts automatically</li><li>Standardize development environments across teams</li><li>Reduce configuration drift between development and production</li><li>Enable developers to run complex systems locally</li></ul><h3 id="important">Important</h3><p>This environment is intended for demonstration, testing, and evaluation purposes only.</p><p>It is not production-ready and should not be deployed as-is. Security, scalability, monitoring, backup, and operational requirements have been intentionally simplified to keep the setup easy to understand and deploy.</p><h3 id="lets-get-started">Let&apos;s get started</h3><p>Please select the <strong><strong>GitLab Cortex Demo</strong></strong> project and generate the artifact <strong><strong>Docker Compose Files</strong></strong>.</p><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2026/06/Untitled-3.jpg" class="kg-image" alt loading="lazy" width="1600" height="807" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2026/06/Untitled-3.jpg 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2026/06/Untitled-3.jpg 1000w, https://beeztech.kodo-tech.com/content/images/2026/06/Untitled-3.jpg 1600w" sizes="(min-width: 720px) 720px"></figure><p>Unzip the archive, open a terminal and navigate to the unzipped folder.</p><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2026/06/image-2.png" class="kg-image" alt loading="lazy" width="2000" height="926" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2026/06/image-2.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2026/06/image-2.png 1000w, https://beeztech.kodo-tech.com/content/images/size/w1600/2026/06/image-2.png 1600w, https://beeztech.kodo-tech.com/content/images/2026/06/image-2.png 2064w" sizes="(min-width: 720px) 720px"></figure><h3 id="create-shared-docker-networks">Create shared docker networks</h3><!--kg-card-begin: html--><div class="code-block" data-copy="docker network create gateway-net &amp;&amp;
docker network create backend-net">
    
    <div class="code-header">
		<span>MacOS / Linux (Ubuntu/Debian)</span>
    </div>
    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-bash"><code class="language-bash">docker network create gateway-net
docker network create backend-net</code></pre>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><div class="code-block" data-copy="docker network create gateway-net; docker network create backend-net">
    
    <div class="code-header">
		<span>Windows Powershell</span>
    </div>
    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-bash"><code class="language-bash">docker network create gateway-net
docker network create backend-net</code></pre>
</div><!--kg-card-end: html--><h3 id="generate-a-root-certificate-skip-if-you-already-have-one">Generate a root certificate (skip if you already have one)</h3><p></p><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2026/06/image-5.png" class="kg-image" alt loading="lazy" width="2000" height="909" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2026/06/image-5.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2026/06/image-5.png 1000w, https://beeztech.kodo-tech.com/content/images/size/w1600/2026/06/image-5.png 1600w, https://beeztech.kodo-tech.com/content/images/2026/06/image-5.png 2054w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: html--><div class="code-block" data-copy="chmod +x generate-root-ca.bash &amp;&amp;
./generate-root-ca.bash cortexRootCertificate">
    
    <div class="code-header">
		<span>MacOS / Linux (Ubuntu/Debian)</span>
    </div>
    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-bash"><code class="language-bash">chmod +x generate-root-ca.bash
./generate-root-ca.bash cortexRootCertificate</code></pre>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><div class="code-block" data-copy="bash ./generate-root-ca.bash cortexRootCertificate">
    
    <div class="code-header">
		<span>Windows Powershell</span>
    </div>
    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-powershell"><code class="language-powershell">bash ./generate-root-ca.bash cortexRootCertificate</code></pre>
</div><!--kg-card-end: html--><p>If you want your browser and tools (curl, Chrome, etc.) to trust the TLS certificates generated for the platform, you should install the generated root certificate into your system trust store.</p><!--kg-card-begin: html--><div class="code-block" data-copy="sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain cortexRootCertificate.crt">

    <div class="code-header">
		<span>Mac OS</span>
    </div>

    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-bash"><code class="language-bash">sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain cortexRootCertificate.crt</code></pre>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><div class="code-block" data-copy="sudo cp cortexRootCertificate.crt /usr/local/share/ca-certificates/ &amp;&amp; sudo update-ca-certificates">
    
    <div class="code-header">
		<span>Linux (Ubuntu/Debian)</span>
    </div>
    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-bash"><code class="language-bash">sudo cp cortexRootCertificate.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates</code></pre>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><div class="code-block" data-copy="Start-Process PowerShell -Verb RunAs -ArgumentList &apos;-Command &quot;Import-Certificate -FilePath cortexRootCertificate.crt -CertStoreLocation Cert:\LocalMachine\Root&quot;&apos;">
    <div class="code-header">
        <span>Windows PowerShell</span>
    </div>

    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-powershell"><code class="language-powershell">Import-Certificate -FilePath cortexRootCertificate.crt -CertStoreLocation Cert:\LocalMachine\Root
Get-ChildItem Cert:\LocalMachine\Root</code></pre>
</div><!--kg-card-end: html--><h3 id="generate-tls-certificates">Generate TLS certificates</h3><p>We&apos;ll now generate the application certificates using the provided root certificate.</p><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2026/06/Untitled-2.jpg" class="kg-image" alt loading="lazy" width="2000" height="1528" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2026/06/Untitled-2.jpg 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2026/06/Untitled-2.jpg 1000w, https://beeztech.kodo-tech.com/content/images/size/w1600/2026/06/Untitled-2.jpg 1600w, https://beeztech.kodo-tech.com/content/images/2026/06/Untitled-2.jpg 2058w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: html--><div class="code-block" data-copy="chmod +x make-certs-development.bash
./make-certs-development.bash ./cortexRootCertificate.crt ./cortexRootCertificate.key">

    <div class="code-header">
		<span>MacOS / Linux (Ubuntu/Debian)</span>
    </div>
    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-bash"><code class="language-bash">chmod +x make-certs-development.bash
./make-certs-development.bash ./cortexRootCertificate.crt ./cortexRootCertificate.key</code></pre>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><div class="code-block" data-copy="bash ./make-certs-development.bash ./cortexRootCertificate.crt ./cortexRootCertificate.key">

    <div class="code-header">
		<span>Windows Powershell</span>
    </div>
    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-powershell"><code class="language-powershell">bash ./make-certs-development.bash ./cortexRootCertificate.crt ./cortexRootCertificate.key</code></pre>
</div><!--kg-card-end: html--><p>We are using here the cortexRootCertificate.* files generated in the previous step. You may replace these files with your own root certificate if you want the generated TLS certificates to be trusted by your internal PKI.</p><h3 id="configure-openldap-users">Configure OpenLDAP users</h3><p>The OpenLDAP container automatically imports LDIF files located in the ldap-custom directory during initialization.</p><p>Create a directory named ldap-custom and add a file named 50-users.ldif containing the following user definition.</p><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2026/06/image-6.png" class="kg-image" alt loading="lazy" width="2000" height="786" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2026/06/image-6.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2026/06/image-6.png 1000w, https://beeztech.kodo-tech.com/content/images/size/w1600/2026/06/image-6.png 1600w, https://beeztech.kodo-tech.com/content/images/2026/06/image-6.png 2062w" sizes="(min-width: 720px) 720px"></figure><p>You may add additional LDAP users by extending this file.</p><!--kg-card-begin: html--><div class="code-block" data-copy="mkdir -p ldap-custom &amp;&amp; printf &apos;%s\n&apos; &apos;dn: uid=gitlabuser,dc=example,dc=org&apos; &apos;objectClass: inetOrgPerson&apos; &apos;objectClass: posixAccount&apos; &apos;objectClass: top&apos; &apos;cn: Gitlab User&apos; &apos;sn: User&apos; &apos;uid: gitlabuser&apos; &apos;mail: gitlabuser@example.org&apos; &apos;uidNumber: 1000&apos; &apos;gidNumber: 1000&apos; &apos;homeDirectory: /home/gitlabuser&apos; &apos;loginShell: /bin/bash&apos; &apos;userPassword: password123&apos; &gt; ldap-custom/50-users.ldif">
    
    <div class="code-header">
		<span>MacOS / Linux (Ubuntu/Debian)</span>
    </div>    
    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-bash"><code class="language-bash">dn: uid=gitlabuser,dc=example,dc=org
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
cn: Gitlab User
sn: User
uid: gitlabuser
mail: gitlabuser@example.org
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/gitlabuser
loginShell: /bin/bash
userPassword: password123</code></pre>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><div class="code-block" data-copy="$dir = Join-Path $PWD &quot;ldap-custom&quot;; New-Item -ItemType Directory -Force -Path $dir | Out-Null; [System.IO.File]::WriteAllText((Join-Path $dir &quot;50-users.ldif&quot;),&quot;dn: uid=gitlabuser,dc=example,dc=org`nobjectClass: inetOrgPerson`nobjectClass: posixAccount`nobjectClass: top`ncn: Gitlab User`nsn: User`nuid: gitlabuser`nmail: gitlabuser@example.org`nuidNumber: 1000`ngidNumber: 1000`nhomeDirectory: /home/gitlabuser`nloginShell: /bin/bash`nuserPassword: password123&quot;,[System.Text.UTF8Encoding]::new($false))">

    <div class="code-header">
        <span>Windows PowerShell</span>
    </div>

    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-powershell"><code class="language-powershell">dn: uid=gitlabuser,dc=example,dc=org
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
cn: Gitlab User
sn: User
uid: gitlabuser
mail: gitlabuser@example.org
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/gitlabuser
loginShell: /bin/bash
userPassword: password123</code></pre>
</div><!--kg-card-end: html--><h3 id="start-the-project">Start the project</h3><p>The ROOT_CA_FILE argument allows the Chromium container to trust the root certificate used to generate the TLS certificates.</p><!--kg-card-begin: html--><div class="code-block" data-copy="ROOT_CA_FILE=cortexRootCertificate.crt docker compose -f docker-compose-development.yaml -f docker-compose-common.yml up -d --build">
    
    <div class="code-header">
		<span>MacOS / Linux (Ubuntu/Debian)</span>
    </div>    
    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-bash"><code class="language-bash">ROOT_CA_FILE=cortexRootCertificate.crt docker compose -f docker-compose-development.yaml -f docker-compose-common.yml up -d --build</code></pre>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><div class="code-block" data-copy="$env:ROOT_CA_FILE=&quot;cortexRootCertificate.crt&quot;; docker compose -f docker-compose-development.yaml -f docker-compose-common.yml up -d --build">
    
    <div class="code-header">
		<span>Windows Powershell</span>
    </div>    
    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-powershell"><code class="language-powershell">$env:ROOT_CA_FILE=&quot;cortexRootCertificate.crt&quot;; docker compose -f docker-compose-development.yaml -f docker-compose-common.yml up -d --build</code></pre>
</div><!--kg-card-end: html--><h3 id="connect-to-gitlab">Connect to <strong>GitLab</strong></h3><!--kg-card-begin: html-->
    <div>
        You can connect to GitLab using the embedded Chromium service:
        <a href="http://localhost:5800" target="_blank" rel="noopener noreferrer">
            http://localhost:5800
        </a>
        and navigate to:
    </div><!--kg-card-end: html--><ul><li>GitLab<br><a href="https://gitlab.dev.cortexdemo.com">https://gitlab.dev.cortexdemo.com</a></li><li>PgAdmin<br><a href="https://pgadmin.dev.cortexdemo.com">https://pgadmin.dev.cortexdemo.com</a></li><li>PhpLDAPadmin<br><a href="https://phpldapadmin.dev.cortexdemo.com">https://phpldapadmin.dev.cortexdemo.com</a></li></ul><p>You can connect with the user: <a>gitlabuser@example.org</a> | password123</p><p>If you want to connect from your web browser, you&apos;ll have to install the root certificate on your local TrustStore and declare the hosts in /etc/hosts</p><!--kg-card-begin: html--><div class="code-block" data-copy="echo -e &quot;\n127.0.0.1\tgitlab.dev.cortexdemo.com\n127.0.0.1\tphpldapadmin.dev.cortexdemo.com\n127.0.0.1\tpgadmin.dev.cortexdemo.com&quot; | sudo tee -a /etc/hosts &gt; /dev/null">
   
    <div class="code-header">
		<span>MacOS / Linux (Ubuntu/Debian)</span>
    </div>
    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-bash"><code class="language-bash">127.0.0.1       gitlab.dev.cortexdemo.com
127.0.0.1       phpldapadmin.dev.cortexdemo.com
127.0.0.1       pgadmin.dev.cortexdemo.com</code></pre>
</div><!--kg-card-end: html--><!--kg-card-begin: html--><div class="code-block" data-copy="Start-Process PowerShell -Verb RunAs -ArgumentList &quot;-NoExit -Command Add-Content -Path &apos;C:\Windows\System32\drivers\etc\hosts&apos; -Value &apos;`n127.0.0.1 gitlab.dev.cortexdemo.com`n127.0.0.1 phpldapadmin.dev.cortexdemo.com`n127.0.0.1 pgadmin.dev.cortexdemo.com&apos;&quot;">

    <div class="code-header">
        <span>Windows PowerShell</span>
    </div>

    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-powershell"><code class="language-powershell">127.0.0.1       gitlab.dev.cortexdemo.com
127.0.0.1       phpldapadmin.dev.cortexdemo.com
127.0.0.1       pgadmin.dev.cortexdemo.com</code></pre>
</div><!--kg-card-end: html--><h3 id="stop-the-project">Stop the project</h3><!--kg-card-begin: html--><div class="code-block" data-copy="docker compose -f docker-compose-development.yaml -f docker-compose-common.yml down">

    <div class="code-header">
		<span>MacOS / Linux (Ubuntu/Debian) / Windows Powershell</span>
    </div>

    
    <button class="copy-btn" aria-label="Copy code">
        <svg width="18" height="18" viewbox="0 0 24 24" fill="none">
            <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" stroke-width="2"/>
            <path d="M5 15V5C5 3.9 5.9 3 7 3H17" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
        </svg>
    </button>

    <pre class="language-bash"><code class="language-bash">docker compose -f docker-compose-development.yaml -f docker-compose-common.yml down</code></pre>
</div><!--kg-card-end: html--><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Roadmap Q1 2026]]></title><link>https://beeztech.kodo-tech.com/roadmap-q1-2026/</link><guid isPermaLink="false">69a6168f3f195c00013639b2</guid><category><![CDATA[Roadmap]]></category><dc:creator><![CDATA[Guillaume Ganier]]></dc:creator><pubDate>Mon, 02 Mar 2026 23:00:48 GMT</pubDate><content:encoded/></item><item><title><![CDATA[Cortex V1.0 — Feature Overview]]></title><description><![CDATA[<h1></h1><p>Cortex V1.0 is an operational intelligence platform designed to structure how teams build, organize, deploy, and evolve systems. Below is the complete feature set for version 1.0.</p><!--kg-card-begin: markdown--><h2 id="index">Index</h2>
<ul>
<li><a href="#organization--team-management">Organization &amp; Team Management</a></li>
<li><a href="#project-management">Project Management</a></li>
<li><a href="#environment-management">Environment Management</a></li>
<li><a href="#service-definition--configuration">Service Definition &amp; Configuration</a></li>
<li><a href="#system-visualization">System Visualization</a></li>
<li><a href="#artifact-generation">Artifact Generation</a></li>
<li><a href="#feedback--issue-tracking">Feedback &amp; Issue Tracking</a></li></ul>]]></description><link>https://beeztech.kodo-tech.com/release-1-0/</link><guid isPermaLink="false">69a615b63f195c00013639a6</guid><category><![CDATA[Updates]]></category><dc:creator><![CDATA[Guillaume Ganier]]></dc:creator><pubDate>Mon, 02 Mar 2026 22:57:29 GMT</pubDate><content:encoded><![CDATA[<h1></h1><p>Cortex V1.0 is an operational intelligence platform designed to structure how teams build, organize, deploy, and evolve systems. Below is the complete feature set for version 1.0.</p><!--kg-card-begin: markdown--><h2 id="index">Index</h2>
<ul>
<li><a href="#organization--team-management">Organization &amp; Team Management</a></li>
<li><a href="#project-management">Project Management</a></li>
<li><a href="#environment-management">Environment Management</a></li>
<li><a href="#service-definition--configuration">Service Definition &amp; Configuration</a></li>
<li><a href="#system-visualization">System Visualization</a></li>
<li><a href="#artifact-generation">Artifact Generation</a></li>
<li><a href="#feedback--issue-tracking">Feedback &amp; Issue Tracking</a></li>
<li><a href="#intel-information">Intel Information</a></li>
</ul>
<!--kg-card-end: markdown--><hr><h2 id="organization-team-management"><strong>Organization &amp; Team Management</strong><br></h2><h3 id="organization-registration-onboarding"><strong>Organization Registration &amp; Onboarding</strong></h3><ul><li>Create and initialize an organization workspace</li><li>Guided onboarding flow for initial setup</li><li>Centralized configuration at the organization level<br></li></ul><h3 id="team-member-management"><strong>Team Member Management</strong></h3><ul><li>Invite users to join an organization</li><li>Role-based access and collaboration</li><li>Centralized user management across all projects</li></ul><hr><h2 id="project-management"><strong>Project Management</strong><br></h2><h3 id="project-creation"><strong>Project Creation</strong></h3><ul><li>Create and manage multiple projects within an organization</li><li>Logical separation of systems, domains, or products</li></ul><h3 id="project-level-collaboration"><strong>Project-Level Collaboration</strong></h3><ul><li>Invite team members to specific projects</li><li>Assign roles and responsibilities per project</li><li>Enable focused collaboration within project boundaries</li></ul><hr><h2 id="environment-management"><strong>Environment Management</strong><br></h2><h3 id="target-environments"><strong>Target Environments</strong></h3><ul><li>Define multiple deployment environments (e.g., dev, stage, preprod, prod)</li><li>Configure ordered deployment pipelines</li><li>Manage environment-specific configurations<br></li></ul><p><strong>Key capabilities:</strong></p><ul><li>Environment hierarchy and promotion flow</li><li>Deployment sequencing control</li><li>Environment isolation</li></ul><hr><h2 id="service-definition-configuration"><strong>Service Definition &amp; Configuration</strong><br></h2><h3 id="service-creation"><strong>Service Creation</strong></h3><ul><li>Define services as core building blocks of the system<br></li></ul><h3 id="service-configuration"><strong>Service Configuration</strong><br></h3><p>Each service supports:</p><ul><li>Metadata definition</li><li>Custom properties</li><li>Environment variables</li><li>Service dependencies<br></li></ul><h3 id="dependency-management"><strong>Dependency Management</strong></h3><ul><li>Map relationships between services</li><li>Define inter-service communication and order</li></ul><hr><h2 id="system-visualization"><strong>System Visualization</strong><br></h2><h3 id="servicemap-view"><strong>ServiceMap View</strong></h3><ul><li>Visual representation of all services and their dependencies</li><li>Real-time system topology overview</li><li>Improved understanding of system architecture</li></ul><hr><h2 id="artifact-generation"><strong>Artifact Generation</strong><br></h2><p>Cortex V1.0 automatically generates operational, deployment, and architectural artifacts from service definitions, environments, and dependencies &#x2014; ensuring consistency across the entire system lifecycle.</p><hr><h3 id="prometheus-configuration"><strong>Prometheus Configuration</strong><br></h3><p>Cortex generates an organization-wide Prometheus configuration to standardize monitoring across all services and environments.<br></p><p><strong>Key capabilities:</strong></p><p>Pre-configured service discovery</p><p>Unified metrics collection across environments</p><p>Consistent monitoring setup aligned with service definitions</p><hr><h3 id="grafana-configuration"><strong>Grafana Configuration</strong><br></h3><p>Cortex provides ready-to-use Grafana configurations for visualizing system metrics.<br></p><p><strong>Key capabilities:</strong></p><p>Pre-built dashboards aligned with generated Prometheus metrics</p><p>Organization-level observability views</p><p>Consistent visualization across environments</p><hr><h3 id="jenkins-cd-pipeline-with-bdd-tests"><strong>Jenkins CD Pipeline with BDD Tests</strong><br></h3><p>Cortex generates continuous delivery pipelines with integrated behavior-driven testing.<br></p><p><strong>Key capabilities:</strong></p><p>Automated pipeline generation per service</p><p>Integrated BDD testing stages</p><p>Environment-aware deployment steps</p><p>Standardized CI/CD structure across projects</p><hr><h3 id="system-architecture-document"><strong>System Architecture Document</strong><br></h3><p>Cortex automatically produces documentation that reflects the current system design.<br></p><p><strong>Key capabilities:</strong></p><p>Up-to-date representation of services and dependencies</p><p>Environment-aware architecture views</p><p>Consistent and shareable system documentation</p><hr><h3 id="docker-compose-files"><strong>Docker Compose Files</strong><br></h3><p>Cortex generates Docker Compose configurations to support local development and service orchestration.<br></p><p><strong>Key capabilities:</strong></p><p>Service-based container definitions</p><p>Dependency-aware startup configuration</p><p>Local environment parity with defined services</p><hr><h3 id="helm-charts"><strong>Helm Charts</strong><br></h3><p>Cortex V1.0 generates production-ready Helm Charts to standardize and automate deployments across environments and infrastructure providers.<br></p><p><strong>Key capabilities:</strong></p><p>Automated chart generation from service definitions</p><p>Environment-aware configuration (dev, stage, preprod, prod)</p><p>Dependency-aware deployment ordering</p><p>Consistent packaging across cloud and local Kubernetes clusters</p><hr><h3 id="supported-target-platforms"><strong>Supported Target Platforms</strong><br></h3><p>Cortex supports deployment to multiple Kubernetes distributions, enabling portability across cloud and local environments:</p><p><strong>AWS EKS</strong> (aws-eks)</p><p><strong>Azure AKS</strong> (azure-aks)</p><p><strong>Google GKE</strong> (google-gke)</p><p><strong>DigitalOcean DOKS</strong> (digital-ocean-doks)</p><p><strong>Docker Desktop (K8s)</strong> (docker-desktop-k8s)</p><p><strong>Kubernetes in Docker (KIND)</strong> (kind)</p><p><strong>Minikube</strong> (minikube)</p><p><strong>OpenShift (On-Prem)</strong> (on-prem-openshift)</p><hr><p><strong>Outcome:</strong></p><p>Cortex ensures that every system definition directly translates into consistent, production-ready artifacts &#x2014; reducing manual work and aligning architecture, deployment, and operations.</p><hr><h2 id="feedback-issue-tracking"><strong>Feedback &amp; Issue Tracking</strong><br></h2><h3 id="bug-reporting"><strong>Bug Reporting</strong></h3><p>Report issues directly within the platform</p><p>Associate bugs with services or projects<br></p><h3 id="feedback-system"><strong>Feedback System</strong></h3><p>Provide product and system feedback</p><p>Continuous improvement loop for teams</p><hr><h2 id="intelligence-layer"><strong>Intelligence Layer</strong></h2><p></p><h2 id="intel-information">Intel Information</h2><h3 id="technical-intelligence-hub">Technical Intelligence Hub</h3><ul><li>Centralized access to Cortex-related technical and product information</li><li>Searchable knowledge space for platform content, guidance, and updates</li><li>Structured content categories such as:</li><li>Perspectives</li><li>Reference</li><li>Roadmap</li><li>Updates</li></ul><h3 id="supported-content">Supported Content</h3><ul><li>Product documentation and usage guidance</li><li>Release information and product evolution</li><li>Architecture and engineering perspectives</li><li>Team knowledge-sharing and platform references</li></ul><p>Outcome:<br>Teams can access a single source of truth for product knowledge, reference material, and Cortex updates.</p><hr><h2 id="summary"><strong>Summary</strong></h2><p><br></p><p>Cortex V1.0 provides a unified platform to:</p><ul><li>Structure organizations and teams</li><li>Define and manage projects</li><li>Model services and environments</li><li>Visualize system architecture</li><li>Generate deployment and monitoring artifacts</li><li>Capture feedback and operational intelligence<br></li></ul><p>It brings together system design, deployment, and intelligence into a single cohesive layer.</p>]]></content:encoded></item><item><title><![CDATA[We Left the Monolith for Microservices — and Discovered What We Were Missing]]></title><description><![CDATA[<h1></h1><p>The monolith was not elegant. It was big. Sometimes slow. Occasionally frustrating. But it had one enormous quality: it was understandable.</p><p>Everything lived in one place. One repository. One deployment artifact. One runtime. When something broke, you could follow the execution path from controller to database without crossing a network</p>]]></description><link>https://beeztech.kodo-tech.com/untitled/</link><guid isPermaLink="false">69a4b23b3f195c00013638b2</guid><category><![CDATA[Perspectives]]></category><dc:creator><![CDATA[Guillaume Ganier]]></dc:creator><pubDate>Sun, 01 Mar 2026 21:49:24 GMT</pubDate><content:encoded><![CDATA[<h1></h1><p>The monolith was not elegant. It was big. Sometimes slow. Occasionally frustrating. But it had one enormous quality: it was understandable.</p><p>Everything lived in one place. One repository. One deployment artifact. One runtime. When something broke, you could follow the execution path from controller to database without crossing a network boundary or switching contexts between five teams.</p><p>It was not perfect. But it was coherent.</p><p>As the company grew, that coherence became a constraint. Builds took longer. Merge conflicts became routine. Teams blocked each other&#x2019;s releases. Scaling one hotspot required scaling everything. Deployments turned into coordinated events rather than routine operations. The pain was real &#x2014; and it was structural. So we did what many growing companies do. We broke the monolith.</p><hr><h2 id="the-promise-of-microservices"><strong>The Promise of Microservices</strong></h2><p></p><p>The move to microservices was not ideological. It was practical. We wanted smaller cognitive domains. We wanted independent deployments. We wanted teams to own their services end-to-end. We wanted architecture that scaled with the organization.</p><p>At first, it worked beautifully. The first few services felt liberating. Smaller repositories. Faster pipelines. Clearer ownership. Teams could ship without waiting on others. Deployments felt lighter. It felt like progress.</p><p>Then the number of services doubled. And doubled again.That&#x2019;s when something subtle started to shift.</p><hr><h2 id="when-independence-quietly-disappears"><strong>When Independence Quietly Disappears</strong></h2><p><br>Microservices rarely fail in dramatic ways. They drift. A service needs additional data, so it calls another service synchronously. Later, that second service needs something back. An event subscription is added for convenience. A deployment script introduces an ordering assumption.</p><p>Each decision is reasonable in isolation. But architecture is not the sum of isolated decisions. It is the shape of their connections.</p><p>Over time, the dependency graph thickens. Services that once felt independent now depend &#x2014; directly or indirectly &#x2014; on several others. You still have separate repositories. You still have separate teams. You still have separate pipelines. But deployment tells a different story.</p><p>A new version of Service A requires an update in Service B. Service B depends on a change in Service C. Rollback becomes coordinated. A clean environment refuses to start unless services are deployed in a precise order.</p><p>You now have many services. But you no longer have independence.</p><hr><h2 id="the-real-problem-wasn%E2%80%99t-microservices"><strong>The Real Problem Wasn&#x2019;t Microservices</strong></h2><p><br></p><p>The problem wasn&#x2019;t splitting the monolith. The problem was losing visibility of the system. In a monolith, the dependency graph is local. You can search it. You can reason about it. You can see the edges. In microservices, that graph becomes fragmented. It lives partly in code, partly in infrastructure files, partly in documentation, and partly in people&#x2019;s heads.</p><p>Independence becomes assumed rather than verified. But independent deployment is not an intention. It is a graph property. If your deployment dependencies form a cycle, at least one service cannot evolve independently. You have created a distributed monolith &#x2014; even if the code is physically separated. And you cannot detect that cycle by looking at a single repository. You must see the whole system.</p><hr><h2 id="the-paradox-of-microservices"><strong>The Paradox of Microservices</strong></h2><p></p><p>Microservices decentralize execution. But architecture must remain centralized in understanding. This does not mean centralizing control. It does not mean an architecture committee approving every change. It means maintaining a single, consistent view of how services truly connect.</p><p>Without that view:</p><ul><li>Transitive dependencies remain invisible.</li><li>Deployment constraints accumulate silently.</li><li>Impact analysis becomes guesswork.</li><li>Coordination cost creeps back in.</li></ul><p>What we needed was not more documentation. We needed a structural mechanism.</p><hr><h2 id="distributed-ownership-shared-reality"><strong>Distributed Ownership, Shared Reality</strong></h2><p></p><p>This is where the real challenge lies. If you centralize modeling in one team, you recreate a bottleneck. If you leave modeling entirely decentralized, the architecture drifts. The solution is to distribute the modeling itself &#x2014; but synchronize the result.</p><p>Each team should own its service definition:</p><ul><li>What it depends on</li><li>How it must be deployed</li><li>What capabilities it exposes</li></ul><p>But those local models must feed into a shared, continuously updated system graph. Architecture becomes a living structure, not a static diagram. If a new dependency introduces a circular deployment path &#x2014; even across teams &#x2014; it must be detected immediately. Not by policy. By topology.</p><hr><h2 id="public-properties-as-first-class-citizens"><strong>Public Properties as First-Class Citizens</strong></h2><p></p><p>In most microservice environments, service contracts are scattered. API specs live in one place. Configuration assumptions live elsewhere. Deployment constraints are buried in scripts. Consumers depend on knowledge that is rarely explicit.</p><p>A change in one service can ripple silently through others.</p><p>By explicitly modeling public service properties &#x2014; APIs, configuration requirements, deployment constraints, versioned capabilities &#x2014; those properties become automatically visible to all declared consumers. The graph itself becomes the contract surface. When something changes, you don&#x2019;t ask, &#x201C;Who might be impacted?&#x201D; You know. Because the relationships are structural.</p><hr><h2 id="making-evolution-safer"><strong>Making Evolution Safer</strong></h2><p></p><p>The hardest part of microservices is not adding services. It is changing them. When a public capability evolves, or a deployment requirement shifts, multiple services may need to adapt. Without a synchronized model, this becomes a coordination exercise: meetings, messages, spreadsheets.</p><p>With a unified graph, impact becomes computable. Consumers are visible. Dependencies are explicit. Changes can propagate systematically rather than informally. The architecture stays aligned with reality. Not because someone updated a diagram. Because the system enforces coherence.</p><hr><h2 id="preserving-the-promise"><strong>Preserving the Promise</strong></h2><p></p><p>We did not leave the monolith to replace one kind of coordination with another. We left it to scale. Microservices can absolutely scale organizations &#x2014; but only if independence is structural, not assumed.</p><p>That requires:</p><ul><li>Explicit modeling of service relationships</li><li>Validation of deployment topology</li><li>Visibility of transitive dependencies</li><li>Automatic synchronization of public properties</li><li>Decentralize code.</li><li>Decentralize ownership. </li><li>But centralize structural truth.</li></ul><p>Because in distributed systems, chaos does not come from having many services. It comes from not knowing how they truly connect. And once you lose sight of the graph, you lose independence.</p><p>That is the problem Cortex was built to solve &#x2014; not by centralizing power, but by synchronizing architectural reality across the organization.</p><p></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.cortex.kodo-tech.com/en"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Cortex</div><div class="kg-bookmark-description">Design your services once. Deploy them everywhere.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.cortex.kodo-tech.com/apple-touch-icon.png" alt></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.cortex.kodo-tech.com/assets/cortex-logo-navbarbff5672218abbd95d50f.svg" alt></div></a></figure>]]></content:encoded></item><item><title><![CDATA[registration]]></title><description><![CDATA[<p>Register to Kodo for free and start designing your micro-service application with <a href="https://www.kodo-tech.com/en/helmdesigner">Kodo Helm Chart Designer</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://beeztech.kodo-tech.com/content/images/2023/03/image-4.png" class="kg-image" alt loading="lazy" width="1402" height="1117" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2023/03/image-4.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2023/03/image-4.png 1000w, https://beeztech.kodo-tech.com/content/images/2023/03/image-4.png 1402w" sizes="(min-width: 720px) 720px"><figcaption>registration</figcaption></figure><ul><li>Provide your email and a password, with at least 7 characters, 1 capital letter, 1 digit and 1 special character.</li><li>Check that you have read the data policy and the terms and conditions</li></ul>]]></description><link>https://beeztech.kodo-tech.com/register/</link><guid isPermaLink="false">64197f95742e99000179e601</guid><category><![CDATA[Reference]]></category><dc:creator><![CDATA[Guillaume Ganier]]></dc:creator><pubDate>Tue, 21 Mar 2023 10:32:00 GMT</pubDate><content:encoded><![CDATA[<p>Register to Kodo for free and start designing your micro-service application with <a href="https://www.kodo-tech.com/en/helmdesigner">Kodo Helm Chart Designer</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://beeztech.kodo-tech.com/content/images/2023/03/image-4.png" class="kg-image" alt loading="lazy" width="1402" height="1117" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2023/03/image-4.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2023/03/image-4.png 1000w, https://beeztech.kodo-tech.com/content/images/2023/03/image-4.png 1402w" sizes="(min-width: 720px) 720px"><figcaption>registration</figcaption></figure><ul><li>Provide your email and a password, with at least 7 characters, 1 capital letter, 1 digit and 1 special character.</li><li>Check that you have read the data policy and the terms and conditions</li><li>Validate your registration</li><li>You&apos;ll recieve an email with a link to confirm your email address</li></ul><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2023/03/image-2.png" class="kg-image" alt loading="lazy" width="1261" height="759" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2023/03/image-2.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2023/03/image-2.png 1000w, https://beeztech.kodo-tech.com/content/images/2023/03/image-2.png 1261w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://beeztech.kodo-tech.com/content/images/2023/03/image-3.png" class="kg-image" alt loading="lazy" width="1402" height="1145" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2023/03/image-3.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2023/03/image-3.png 1000w, https://beeztech.kodo-tech.com/content/images/2023/03/image-3.png 1402w" sizes="(min-width: 720px) 720px"><figcaption>login</figcaption></figure><p>You will now start the onboarding process. To serve you the best we can, we need to know basic informations about your company. Please provied your company name and a phone number (optional).</p><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2023/03/image-5.png" class="kg-image" alt loading="lazy" width="1407" height="1063" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2023/03/image-5.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2023/03/image-5.png 1000w, https://beeztech.kodo-tech.com/content/images/2023/03/image-5.png 1407w" sizes="(min-width: 720px) 720px"></figure><p>We&apos;d like to know more about you. Please provide your job title, firstname and lastname</p><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2023/03/image-7.png" class="kg-image" alt loading="lazy" width="1401" height="1143" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2023/03/image-7.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2023/03/image-7.png 1000w, https://beeztech.kodo-tech.com/content/images/2023/03/image-7.png 1401w" sizes="(min-width: 720px) 720px"></figure><p>Finaly, hit the Next button to activate your account and start with your free benefits</p><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2023/03/image-8.png" class="kg-image" alt loading="lazy" width="1401" height="1143" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2023/03/image-8.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2023/03/image-8.png 1000w, https://beeztech.kodo-tech.com/content/images/2023/03/image-8.png 1401w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2023/03/image-9.png" class="kg-image" alt loading="lazy" width="1452" height="1137" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2023/03/image-9.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2023/03/image-9.png 1000w, https://beeztech.kodo-tech.com/content/images/2023/03/image-9.png 1452w" sizes="(min-width: 720px) 720px"></figure>]]></content:encoded></item><item><title><![CDATA[Invite a team member]]></title><description><![CDATA[<p>As a project owner, you want to collaborate with your team mates. To do so, you can invite registered and unregistered users to join your project.</p><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2023/03/image-10.png" class="kg-image" alt loading="lazy" width="1561" height="1197" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2023/03/image-10.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2023/03/image-10.png 1000w, https://beeztech.kodo-tech.com/content/images/2023/03/image-10.png 1561w" sizes="(min-width: 720px) 720px"></figure><p></p><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2023/03/image-11.png" class="kg-image" alt loading="lazy" width="1360" height="1144" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2023/03/image-11.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2023/03/image-11.png 1000w, https://beeztech.kodo-tech.com/content/images/2023/03/image-11.png 1360w" sizes="(min-width: 720px) 720px"></figure><p>A registered user will get an email asking to accept the invitation. The link will be valid as long as you don&apos;t</p>]]></description><link>https://beeztech.kodo-tech.com/invite-a-team-member/</link><guid isPermaLink="false">64197ddd742e99000179e5db</guid><category><![CDATA[Reference]]></category><dc:creator><![CDATA[Guillaume Ganier]]></dc:creator><pubDate>Tue, 21 Mar 2023 09:57:06 GMT</pubDate><content:encoded><![CDATA[<p>As a project owner, you want to collaborate with your team mates. To do so, you can invite registered and unregistered users to join your project.</p><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2023/03/image-10.png" class="kg-image" alt loading="lazy" width="1561" height="1197" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2023/03/image-10.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2023/03/image-10.png 1000w, https://beeztech.kodo-tech.com/content/images/2023/03/image-10.png 1561w" sizes="(min-width: 720px) 720px"></figure><p></p><figure class="kg-card kg-image-card"><img src="https://beeztech.kodo-tech.com/content/images/2023/03/image-11.png" class="kg-image" alt loading="lazy" width="1360" height="1144" srcset="https://beeztech.kodo-tech.com/content/images/size/w600/2023/03/image-11.png 600w, https://beeztech.kodo-tech.com/content/images/size/w1000/2023/03/image-11.png 1000w, https://beeztech.kodo-tech.com/content/images/2023/03/image-11.png 1360w" sizes="(min-width: 720px) 720px"></figure><p>A registered user will get an email asking to accept the invitation. The link will be valid as long as you don&apos;t delete the invite.</p><p>An unregistered user will recieve an email asking to join the platform. The process is the same as the regular registration process, except that onve the onboarding in completed, the invites will be automatically processed and the user will immediately be enabled to collaborate on the projects.</p>]]></content:encoded></item></channel></rss>