Skip to content
Snippets Groups Projects
index.html 33.7 KiB
Newer Older

<!doctype html>
<html lang="en" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      
        <meta name="description" content="ETSI SDG TFS Documentation page">
      
      
        <meta name="author" content="TeraflowSDN by ETSI">
      
      
        <link rel="canonical" href="https://tfs.etsi.org/develop/deployment_guide/howtorun/">
      
      
      
      
      <link rel="icon" href="../../images/favicon.png">
      <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.34">
    
    
      
        <title>Howtorun - ETSI SDG TFS Documentation</title>
      
    
    
      <link rel="stylesheet" href="../../assets/stylesheets/main.35f28582.min.css">
      
        
        <link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
      
      


    
    
      
    
    
      
        
        
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
        <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
      
    
    
      <link rel="stylesheet" href="../../stylesheets/extra.css">
    
    <script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
    
      

    
    
    
  </head>
  
  
    
    
    
    
    
    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="custom" data-md-color-accent="custom">
  
    
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">
      
        
        <a href="#downloading-the-project" class="md-skip">
          Skip to content
        </a>
      
    </div>
    <div data-md-component="announce">
      
    </div>
    
      <div data-md-color-scheme="default" data-md-component="outdated" hidden>
        
      </div>
    
    
      

  

<header class="md-header md-header--shadow" data-md-component="header">
  <nav class="md-header__inner md-grid" aria-label="Header">
    <a href="../.." title="ETSI SDG TFS Documentation" class="md-header__button md-logo" aria-label="ETSI SDG TFS Documentation" data-md-component="logo">
      
  <img src="../../images/logos/TeraFlowSDN_tr.png" alt="logo">

    </a>
    <label class="md-header__button md-icon" for="__drawer">
      
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
    </label>
    <div class="md-header__title" data-md-component="header-title">
      <div class="md-header__ellipsis">
        <div class="md-header__topic">
          <span class="md-ellipsis">
            ETSI SDG TFS Documentation
          </span>
        </div>
        <div class="md-header__topic" data-md-component="header-topic">
          <span class="md-ellipsis">
            
            
          </span>
        </div>
      </div>
    </div>
    
      
    
    
    
    
      <label class="md-header__button md-icon" for="__search">
        
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
      </label>
      <div class="md-search" data-md-component="search" role="dialog">
  <label class="md-search__overlay" for="__search"></label>
  <div class="md-search__inner" role="search">
    <form class="md-search__form" name="search">
      <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
      <label class="md-search__icon md-icon" for="__search">
        
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
        
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
      </label>
      <nav class="md-search__options" aria-label="Search">
        
        <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
          
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
        </button>
      </nav>
      
    </form>
    <div class="md-search__output">
      <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
        <div class="md-search-result" data-md-component="search-result">
          <div class="md-search-result__meta">
            Initializing search
          </div>
          <ol class="md-search-result__list" role="presentation"></ol>
        </div>
      </div>
    </div>
  </div>
</div>
    
    
      <div class="md-header__source">
        <a href="https://labs.etsi.org/rep/tfs" title="Go to repository" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="m503.5 204.6-.7-1.8-69.7-181.78c-1.4-3.57-3.9-6.59-7.2-8.64-2.4-1.55-5.1-2.515-8-2.81s-5.7.083-8.4 1.11c-2.7 1.02-5.1 2.66-7.1 4.78-1.9 2.12-3.3 4.67-4.1 7.44l-47 144H160.8l-47.1-144c-.8-2.77-2.2-5.31-4.1-7.43-2-2.12-4.4-3.75-7.1-4.77a18.1 18.1 0 0 0-8.38-1.113 18.4 18.4 0 0 0-8.04 2.793 18.1 18.1 0 0 0-7.16 8.64L9.267 202.8l-.724 1.8a129.57 129.57 0 0 0-3.52 82c7.747 26.9 24.047 50.7 46.447 67.6l.27.2.59.4 105.97 79.5 52.6 39.7 32 24.2c3.7 1.9 8.3 4.3 13 4.3s9.3-2.4 13-4.3l32-24.2 52.6-39.7 106.7-79.9.3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82"/></svg>
  </div>
  <div class="md-source__repository">
    TFS GitLab
  </div>
</a>
      </div>
    
  </nav>
  
</header>
    
    <div class="md-container" data-md-component="container">
      
      
        
          
        
      
      <main class="md-main" data-md-component="main">
        <div class="md-main__inner md-grid">
          
            
              
              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    



<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  <label class="md-nav__title" for="__drawer">
    <a href="../.." title="ETSI SDG TFS Documentation" class="md-nav__button md-logo" aria-label="ETSI SDG TFS Documentation" data-md-component="logo">
      
  <img src="../../images/logos/TeraFlowSDN_tr.png" alt="logo">

    </a>
    ETSI SDG TFS Documentation
  </label>
  
    <div class="md-nav__source">
      <a href="https://labs.etsi.org/rep/tfs" title="Go to repository" class="md-source" data-md-component="source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="m503.5 204.6-.7-1.8-69.7-181.78c-1.4-3.57-3.9-6.59-7.2-8.64-2.4-1.55-5.1-2.515-8-2.81s-5.7.083-8.4 1.11c-2.7 1.02-5.1 2.66-7.1 4.78-1.9 2.12-3.3 4.67-4.1 7.44l-47 144H160.8l-47.1-144c-.8-2.77-2.2-5.31-4.1-7.43-2-2.12-4.4-3.75-7.1-4.77a18.1 18.1 0 0 0-8.38-1.113 18.4 18.4 0 0 0-8.04 2.793 18.1 18.1 0 0 0-7.16 8.64L9.267 202.8l-.724 1.8a129.57 129.57 0 0 0-3.52 82c7.747 26.9 24.047 50.7 46.447 67.6l.27.2.59.4 105.97 79.5 52.6 39.7 32 24.2c3.7 1.9 8.3 4.3 13 4.3s9.3-2.4 13-4.3l32-24.2 52.6-39.7 106.7-79.9.3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82"/></svg>
  </div>
  <div class="md-source__repository">
    TFS GitLab
  </div>
</a>
    </div>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
        
          
          <label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
            
  
  <span class="md-ellipsis">
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_1">
            <span class="md-nav__icon md-icon"></span>
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1_1" >
        
          
          <label class="md-nav__link" for="__nav_1_1" id="__nav_1_1_label" tabindex="0">
            
  
  <span class="md-ellipsis">
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_1_1_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_1_1">
            <span class="md-nav__icon md-icon"></span>
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../configure_your_machine/physical_server/" class="md-nav__link">
      <a href="../configure_your_machine/oracle_virtual_box/" class="md-nav__link">
      <a href="../configure_your_machine/vm_ware_fusion/" class="md-nav__link">
      <a href="../configure_your_machine/openstack/" class="md-nav__link">
      <a href="../configure_your_machine/vagrant_box/" class="md-nav__link">
      <a href="../install_micro_k8s/install_micro_k8s/" class="md-nav__link">
      <a href="../deploy_TeraFlowSDN/deploy_TeraFlowSDN/" class="md-nav__link">
      <a href="../webUI_and_grafana_dashboards/webUI_and_grafana_dashboards/" class="md-nav__link">
    1.4. WebUI and Grafana Dashboards
      <a href="../show_deployment_and_logs/show_deployment_and_logs/" class="md-nav__link">
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
        
          
          <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
            
  
  <span class="md-ellipsis">
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_2">
            <span class="md-nav__icon md-icon"></span>
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1" >
        
          
          <label class="md-nav__link" for="__nav_2_1" id="__nav_2_1_label" tabindex="0">
            
  
  <span class="md-ellipsis">
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_1_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_2_1">
            <span class="md-nav__icon md-icon"></span>
      <a href="../../development_guide/configure_environment/python/" class="md-nav__link">
      <a href="../../development_guide/configure_environment/java_quarkus/" class="md-nav__link">
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    
    
    
    
    <li class="md-nav__item md-nav__item--nested">
      
        
        
        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
        
          
          <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
            
  
  <span class="md-ellipsis">
    Testing
  </span>
  

            <span class="md-nav__icon md-icon"></span>
          </label>
        
        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
          <label class="md-nav__title" for="__nav_3">
            <span class="md-nav__icon md-icon"></span>
            Testing
          </label>
          <ul class="md-nav__list" data-md-scrollfix>
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../testing/testplan/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Test Plan
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../testing/robotframework/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Robot Framework
  </span>
  

      </a>
    </li>
  

              
            
              
                
  
  
  
  
    <li class="md-nav__item">
      <a href="../../testing/postman/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    Postman
  </span>
  

      </a>
    </li>
  

              
            
          </ul>
        </nav>
      
    </li>
  

    
      
      
  
  
  
  
    <li class="md-nav__item">
      <a href="../../FAQ/" class="md-nav__link">
        
  
  <span class="md-ellipsis">
    FAQ
  </span>
  

      </a>
    </li>
  

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              
              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    

<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  
  
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      Table of contents
    </label>
    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#downloading-the-project" class="md-nav__link">
    <span class="md-ellipsis">
      Downloading the project
    </span>
  </a>
  
    <nav class="md-nav" aria-label="Downloading the project">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#1-create-a-folder-to-download-the-project" class="md-nav__link">
    <span class="md-ellipsis">
      1. Create a folder to download the project
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#2-download-the-deployment-script" class="md-nav__link">
    <span class="md-ellipsis">
      2. Download the deployment script
    </span>
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#3-run-the-deployment-script" class="md-nav__link">
    <span class="md-ellipsis">
      3. Run the deployment script
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
        <li class="md-nav__item">
  <a href="#run-all-capif-services-locally-with-docker-images" class="md-nav__link">
    <span class="md-ellipsis">
      Run All CAPIF Services locally with Docker images
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#run-all-capif-services-locally-with-docker-images-and-deploy-monitoring-stack" class="md-nav__link">
    <span class="md-ellipsis">
      Run All CAPIF Services locally with Docker images and deploy monitoring stack
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#run-each-service-using-docker" class="md-nav__link">
    <span class="md-ellipsis">
      Run each service using Docker
    </span>
  </a>
  
</li>
      
        <li class="md-nav__item">
  <a href="#run-each-service-using-python" class="md-nav__link">
    <span class="md-ellipsis">
      Run each service using Python
    </span>
  </a>
  
    <nav class="md-nav" aria-label="Run each service using Python">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#start-your-testing-with-opencapif" class="md-nav__link">
    <span class="md-ellipsis">
      Start Your Testing with OpenCAPIF
    </span>
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
    </ul>
  
</nav>
                  </div>
                </div>
              </div>
            
          
          
            <div class="md-content" data-md-component="content">
              <article class="md-content__inner md-typeset">
                
                  


  <h1>Howtorun</h1>

<ul>
<li><a href="#downloading-the-project">Downloading the project</a></li>
<li><a href="#1-create-a-folder-to-download-the-project">1. Create a folder to download the project</a></li>
<li><a href="#2-download-the-deployment-script">2. Download the deployment script</a></li>
<li><a href="#3-run-the-deployment-script">3. Run the deployment script</a></li>
<li><a href="#run-all-capif-services-locally-with-docker-images">Run All CAPIF Services locally with Docker images</a></li>
<li><a href="#run-all-capif-services-locally-with-docker-images-and-deploy-monitoring-stack">Run All CAPIF Services locally with Docker images and deploy monitoring stack</a></li>
<li><a href="#run-each-service-using-docker">Run each service using Docker</a></li>
<li><a href="#run-each-service-using-python">Run each service using Python</a></li>
<li><a href="#start-your-testing-with-opencapif">Start Your Testing with OpenCAPIF</a></li>
</ul>
<p>Capif services are developed under <a href="https://labs.etsi.org/rep/ocf/capif/-/tree/main/services">services folder</a>.</p>
<h3 id="downloading-the-project">Downloading the project</h3>
<p>You can easily download CAPIF to run in local environment following next steps:</p>
<h4 id="1-create-a-folder-to-download-the-project">1. Create a folder to download the project</h4>
<pre><code>mkdir OpenCAPIF

cd OpenCAPIF
</code></pre>
<h4 id="2-download-the-deployment-script">2. Download the deployment script</h4>
<p>Download the deployment / environment preparation script (press <a href="https://labs.etsi.org/rep/ocf/capif/-/raw/staging/deploy.sh?inline=false">here</a> to directly download script):</p>
<pre><code>wget https://labs.etsi.org/rep/ocf/capif/-/raw/staging/deploy.sh
</code></pre>
<p>Make it executable:</p>
<pre><code>chmod +x deploy.sh
</code></pre>
<h4 id="3-run-the-deployment-script">3. Run the deployment script</h4>
<p>This script selects the branch for capif repository project to pull from.</p>
<p>If you run the script without selecting a branch the the main branch is going to be selected.</p>
<p>We recommend:</p>
<ul>
<li><strong>main</strong> branch for the most stable experience and <strong>staging</strong> branch for an experience with the latest features (for staging branch installation, it is strongly advisable that you may as well follow the staging documentation)</li>
</ul>
<pre><code># ./deploy.sh [branch to fetch] [true or false (default) to install monitoring stack or not]

sudo ./deploy.sh staging
</code></pre>
<blockquote>
<p><strong>We recommend running the deploy.sh script with root permissions! In other case, some directories may not be accessible by the project building tools and hinder the smooth installation.</strong></p>
</blockquote>
<h3 id="run-all-capif-services-locally-with-docker-images">Run All CAPIF Services locally with Docker images</h3>
<p>To run using docker and docker compose, version 2.10 or higher, you must ensure you have those tools installed in your machine. Also to simplify the process, we have 3 scripts allowing docker images to deploy, check and cleanup.</p>
<p>All these scripts are available under <strong><em>services</em></strong> directory.</p>
<p>To run CAPIF APIs locally using docker and docker-compose you can use run.sh script:</p>
<pre><code>./run.sh -h

Usage: ./run.sh &lt;options&gt;
       -c : Setup different hostname for capif
       -m : Launch monitoring service
       -h : show this help
</code></pre>
<p>This script builds and runs all services using docker images, including mongodb and nginx locally and in the background, and imports ca.crt to nginx. By default monitoring is not activated and Nginx is deployed use <strong>capifcore</strong> as a hostname. </p>
<p>Some examples of use:</p>
<pre><code># Default values, No monitoring and capifcore as CAPIF_HOSTNAME
./run.sh

# opencapif.etsi.org as CAPIF_HOSTNAME
./run.sh -c opencapif.etsi.org

# opencapif.etsi.org as CAPIF_HOSTNAME and monitoring activated
./run.sh -c opencapif.etsi.org -m 

</code></pre>
<p>If you want to check if all CAPIF services are running properly in a local machine after executing run.sh, you can use:</p>
<pre><code>./check_services_are_running.sh
</code></pre>
<p>This shell script will return 0 if all services are running properly.</p>
<p>When we need to stop all CAPIF services, we can use next bash script:</p>
<pre><code>./clean_capif_docker_services.sh -a
</code></pre>
<p>NOTE: You can use different flags if you only want to stop some of them, please check the help using</p>
<pre><code>./clean_capif_docker_services.sh -h

Usage: clean_capif_docker_services.sh &lt;options&gt;
       -c : clean capif services
       -v : clean vault service
       -r : clean register service
       -m : clean monitoring service
       -a : clean all services
       -h : show this help
</code></pre>
<p>This shell script will remove and clean all CAPIF services started previously with run.sh</p>
<p>On the other hand you can check logs using show_logs.sh script, please check options:</p>
<pre><code>./show_logs.sh
You must specify an option when running the script.
Usage: ./show_logs.sh &lt;options&gt;
       -c : Show capif services
       -v : Show vault service
       -r : Show register service
       -m : Show monitoring service
       -a : Show all services
       -f : Follow log output
       -h : Show this help
</code></pre>
<p>You can also use option -f in order to follow log output in real time</p>
<h3 id="run-all-capif-services-locally-with-docker-images-and-deploy-monitoring-stack">Run All CAPIF Services locally with Docker images and deploy monitoring stack</h3>
<p>It is now possible to deploy a monitoring stack for CAPIF with Grafana, Prometheus, FluentBit, Loki, Cadvisor, Tempo and Opentelemetry.</p>
<p>To deploy CAPIF together with the monitoring stack, it is only necessary to execute the following.</p>
<pre><code>./run.sh -m true
</code></pre>
<p>After they have been built, the different panels can be consulted in Grafana at the url</p>
<pre><code>http://localhost:3000
</code></pre>
<p>By default, the monitoring option is set to false. Once up, all data sources and dashboards are automatically provisioned.</p>
<h3 id="run-each-service-using-docker">Run each service using Docker</h3>
<p>Also you can run OpenCAPIF service by service using docker:</p>
<pre><code>cd &lt;Service&gt;
docker build -t capif_security .
docker run -p 8080:8080 capif_security
</code></pre>
<h3 id="run-each-service-using-python">Run each service using Python</h3>
<p>Run using python</p>
<pre><code>cd &lt;Service&gt;
pip3 install -r requirements.txt
python3 -m &lt;service&gt;
</code></pre>