Files
help365/platform/installing-elma365-enterprise.html
koziavin 00717a92fb
All checks were successful
Deploy Static Site / deploy (push) Successful in 6m6s
update
2025-05-29 16:42:45 +04:00

372 lines
42 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<title>Install BRIX Enterprise</title>
<meta name="generator" content="Help+Manual" />
<meta name="keywords" content="" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="BRIX On-Premises is installed in a Kubernetes cluster. It uses PostgreSQL, MongoDB, Redis database management systems, RabbitMQ service bus, and an S3 compatible object storage..." />
<meta name="picture" content="" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Full documentation for BRIX365 platform. Low-code developer guide. User guide. Admin guide. Developer guide." />
<meta property="og:url" content="https://brix365.com/en/help" />
<meta property="og:image" content="" />
<link rel="icon" href="favicon.png" type="image/png" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="./jquery-ui.min.css" />
<link rel="stylesheet" href="default.css" />
<link rel="stylesheet" href="./search-yandex.css" />
<link rel="stylesheet" href="./article.css" />
<link rel="stylesheet" href="./glossary.css" />
<link rel="stylesheet" href="./theme.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="helpman_settings.js"></script>
<script type="text/javascript" src="helpman_topicinit.js"></script>
<script type="text/javascript" src="highlight.js"></script>
<script type="text/javascript">
$(document).ready(function(){highlight();});
</script>
</head>
<body>
<script>!function(e,t,c,n,r,a,m){e.ym=e.ym||function(){(e.ym.a=e.ym.a||[]).push(arguments)},e.ym.l=1*new Date;for(var s=0;s<document.scripts.length;s++)if(document.scripts[s].src===n)return;a=t.createElement(c),m=t.getElementsByTagName(c)[0],a.async=1,a.src=n,m.parentNode.insertBefore(a,m)}(window,document,"script","https://mc.yandex.ru/metrika/tag.js"),ym(83179930,"init",{clickmap:!0,trackLinks:!0,accurateTrackBounce:!0,webvisor:!0})</script><noscript><div><img alt=""src=https://mc.yandex.ru/watch/83179930 style=position:absolute;left:-9999px></div></noscript>
<header class="header elma-365">
<div class="container">
<a class="header__logo" href="https://brix365.com/en/help">
<img src="./logo-en.svg" alt="header logo">
</a>
<!-- <div class="hero__search-form" id="search-panel">
<form class="search-form" onsubmit="ym(83180416,'reachGoal','poisk')">
<label class="search-form__label">
<span id="reset-search" class="search__icon"></span>
<input class="search-form__input" type="text">
</label>
<input class="search-form__submit" type="submit" value="Submit">
</form>
</div> -->
<div class="hero__search-form" id="search-panel"> <form class="search-form"> <label class="search-form__label"> <span id="reset-search" class="search__icon"></span> <input class="search-form__input" type="text"> </label> <input class="search-form__submit" type="submit" value="Submit"> </form> </div>
<div class="hero__search">
<a href="#" id="search-icon" class="hero__search-icon">
<img src="search-icon-white.svg" alt="search string">
</a>
<a href="#" id="side-menu-icon" class="hero__side-icon">
<img src="side_menu.svg" alt="side menu">
</a>
</div>
<div class="header__navi">
<ul class="header__list"><li><span class="solution-select"><span class="solution-select__selected"></span><svg width="7" height="4" viewBox="0 0 7 4" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L3.5 3.5L6 1" stroke="white" stroke-linecap="round" stroke-linejoin="round"/></svg><ul class="solution-select__list"><li><a class="project-link" href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a class="project-link" href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a class="project-link" href="https://brix365.com/en/help/crm/crm_overview.html">CRM</a></li><li><a class="project-link" href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a class="project-link" href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li><li><a class="project-link" href="https://brix365.com/en/help/business_solutions/-elma365-store.html">Business Solutions</a></li></ul></span></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li><li><a href="https://tssdk.brix365.com/" target="_blank">SDK</a></li></ul>
</div>
</div>
</header>
<main class="main container">
<aside class="sidebar" id="sidebar">
<div class="sidebar__header">
<a class="header__logo" href="https://brix365.com/en/help">
<img src="./logo-light-en.svg">
</a>
<span class="sidebar__close elma-365-close" id="close"></span>
</div>
<div class="sidebar__wrapper" id="side-menu">
</div>
</aside>
<article class="article" id="article">
<div class="article-inner">
<div class="content">
<header class="article__header">
<div class="article__bread" style="display:flex; gap:10px;">
<span id="subcategory" class="search-res__item-category search-res__item-category_subcategory subcategory article__badge"></span>
<div class="topic__breadcrumbs">
<p><a href="elma365-on-premises.html">BRIX On-Premises</a> &gt; <a href="elma365-enterprise.html">BRIX On-Premises Enterprise</a> / Install BRIX Enterprise</p>
</div>
</div>
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Install BRIX Enterprise</span></h1>
</div>
</header>
<section class="article__content">
<div class="scroll-top-inner">
<a href="#h1-article" class="scroll-top"></a>
</div>
<!-- Placeholder for topic body. -->
<p class="p_Normal">BRIX On-Premises is installed in a Kubernetes cluster. It uses PostgreSQL, MongoDB, Redis database management systems, RabbitMQ service bus, and an S3 compatible object storage (MinIO). For more details, refer to the <a href="architecture.html" class="topiclink">Architecture</a> article.</p>
<p class="p_Normal">The installation consists of five steps:</p>
<ol style="list-style-type:decimal">
<li value="1" class="p_Normal"><a href="installing-elma365-enterprise.html#prepare" class="topiclink">Prepare infrastructure (optional)</a>.</li><li value="2" class="p_Normal"><a href="installing-elma365-enterprise.html#helm_chart" class="topiclink">Download the Helm chart and the configuration file</a>.</li><li value="3" class="p_Normal"><a href="installing-elma365-enterprise.html#config_file" class="topiclink">Fill out the configuration file</a>.</li><li value="4" class="p_Normal"><a href="installing-elma365-enterprise.html#install" class="topiclink">Install BRIX using helm in a Kubernetes cluster</a>.</li><li value="5" class="p_Normal"><a href="installing-elma365-enterprise.html#install_addons" class="topiclink">Install add-ons for BRIX (optional)</a>.</li></ol>
<p class="p_Normal">Before starting the installation, read the system requirements of BRIX On-Premises Enterprise.</p>
<h2 class="p_Heading2"><a id="prepare" class="hmanchor"></a><span class="f_Heading2">Step 1: Prepare infrastructure (optional)</span></h2>
<p class="p_Normal">By infrastructure we mean the necessary components for the operation of the BRIX On-Premises application.</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало&nbsp;внимание</span></p>
<p class="p_Normal">The client deploys the dependent components independently. All work related to organizing a high-availability local architecture and setting up the high availability of dependent components is also done by the client.</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">конец&nbsp;внимание</span></p>
<p class="p_Normal">Components necessary for BRIX On-Premises operation:</p>
<ul style="list-style-type:disc">
<li class="p_Normal">Kubernetes cluster.</li><li class="p_Normal">PostgreSQL.</li><li class="p_Normal">MongoDB.</li><li class="p_Normal">RabbitMQ.</li><li class="p_Normal">Redis.</li><li class="p_Normal">S3 (MinIO).</li></ul>
<p class="p_Normal">In this article, databases and the S3 storage are installed in the Kubernetes cluster as per the <a href="embedded-databases-settings.html" class="topiclink">Prepare embedded databases</a> article and use standard connection strings and passwords.</p>
<p class="p_Normal"><a class="dropdown-toggle" style="font-style: normal; font-weight: normal; color: #000000; background-color: transparent; text-decoration: none;" href="javascript:HMToggle('toggle','TOGGLE0186A1')">Requirements for component configuration</a></p>
<div id="TOGGLE0186A1" class="dropdown-toggle-body" style="text-align: left; text-indent: 0; line-height: 1.80; padding: 0 0 0 0; margin: 0 0 0 0;"><table style="border:none; border-spacing:0;">
<tr>
<td style="vertical-align:top; padding:0; border:none"><h4 class="p_Heading4"><span class="f_Heading4">Kubernetes</span></h4>
<p class="p_Normal">The installed version of the Kubernetes cluster should support Kubernetes API v.2 (Kubernetes version 1.21 - 1.30) and contain the following components: ingress-nginx controller, coredns, rbac, storageclass.</p>
<p class="p_Normal">The installation is done using Helm v.3.</p>
<p class="p_Normal">Proxying from pods to the external network should be allowed.</p>
<p class="p_Normal">Read more about how to deploy a Kubernetes cluster in the <a href="kubernetes-air-gap.html" class="topiclink">Kubernetes</a> section.</p>
<h4 class="p_Heading4"><span class="f_Heading4">Data storage</span></h4>
<p class="p_Normal">You can use your existing databases and S3 storage as components for BRIX On-Premises. There is also an option to combine your components with those deployed using the <code><b>elma365-dbs</b></code> or <code><b>elma365-stack</b></code> charts. In the next installation steps, you will need to specify the connection strings to the databases and the S3 storage.</p>
<p class="p_Normal">If there's a need to deploy all or just the missing components, refer to the articles in the <a href="configure-postgresql.html" class="topiclink">Databases</a> section.</p>
<p class="p_Normal">&nbsp;</p>
<h4 class="p_Heading4"><span class="f_Heading4">High availability</span></h4>
<p class="p_Normal">To ensure continuous operation of BRIX on Bare-metal servers, it is necessary to build a high-availability Kubernetes cluster and ensure the operation of the used databases and S3 storage. For more details on building a high-availability environment for BRIX, refer to <a href="infrastructure-preparation.html" class="topiclink">Prepare infrastructure</a>.</p>
<p class="p_Normal">&nbsp;</p>
<h4 class="p_Heading4"><span class="f_Heading4">Offline installation (Air-gap)</span></h4>
<p class="p_Normal">You can install BRIX in a closed-loop environment without direct access to the external container image storage. For this, on a computer with internet access, you need to download the BRIX application images and import them into a local image repository. Read more in <a href="downloadin-images-elma365.html" class="topiclink">Download BRIX images</a>.</p>
</td>
</tr>
</table>
</div>
<p class="p_Normal">You can skip this section if the component configuration requirements are met and there's no need to deploy components necessary for the operation of BRIX On-Premises.</p>
<p class="p_Normal">&nbsp;</p>
<h2 class="p_Heading2"><a id="helm_chart" class="hmanchor"></a><span class="f_Heading2">Step 2: Download the Helm chart and configuration file</span></h2>
<p class="p_Normal">Obtain the configuration file <code><b>values-elma365.yaml</b></code> for installation via the internet by executing the following command:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;</span><span class="f_CodeExample">repo&nbsp;add&nbsp;elma365&nbsp;https://charts.elma365.tech</span><br />
<span class="f_CodeExample">helm&nbsp;repo&nbsp;update</span><br />
<span class="f_CodeExample">helm&nbsp;show&nbsp;values&nbsp;elma365/elma365&nbsp;&gt;&nbsp;values-elma365.yaml</span></p>
<p class="p_Normal"><a class="dropdown-toggle" style="font-style: normal; font-weight: normal; color: #000000; background-color: transparent; text-decoration: none;" href="javascript:HMToggle('toggle','TOGGLE0186A2')">Obtaining the configuration file for installation in a closed loop without internet access</a></p>
<div id="TOGGLE0186A2" class="dropdown-toggle-body" style="text-align: left; text-indent: 0; line-height: 1.80; padding: 0 0 0 0; margin: 0 0 0 0;"><table style="border:none; border-spacing:0;">
<tr>
<td style="vertical-align:top; padding:0; border:none"><ol style="list-style-type:decimal">
<li value="1" class="p_Normal">On a computer with internet access, download BRIX images and upload them to the local image registry. Read more in the <a href="downloadin-images-elma365.html" class="topiclink">Download BRIX images</a> article.</li><li value="2" class="p_Normal">Download the archive of the latest version of the BRIX On-Premises chart from the <code><b>elma365</b></code> repository by executing the following command:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;repo&nbsp;</span><span class="f_CodeExample">add&nbsp;elma365&nbsp;https://charts.elma365.tech</span><br />
<span class="f_CodeExample">helm&nbsp;repo&nbsp;update</span><br />
<span class="f_CodeExample">helm&nbsp;pull&nbsp;elma365/elma365</span></p>
<ol style="list-style-type:decimal">
<li value="3" class="p_Normal">Copy the received chart archive <code><b>elma365-X.Y.Z.tgz</b></code> to the server where the installation will take place.</li><li value="4" class="p_Normal">Unpack the obtained chart on the server and copy the default configuration file <code><b>values.yaml</b></code> to <code><b>values-elma365.yaml</b></code>. To do this, run the following command:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">tar&nbsp;-xf&nbsp;elma365-X.Y.Z.tgz</span><br />
<span class="f_CodeExample">cp&nbsp;elma365/values.yaml&nbsp;values-elma365.yaml</span></p>
</td>
</tr>
</table>
</div>
<p class="p_Normal">You can also download a <span style="font-weight: bold;">.tar.gz</span> file with a specific BRIX version using the links provided in <a href="links-for-install-elma365.html#links-for-install-helm-offline" class="topiclink">Links for downloading BRIX distribution packages</a>.</p>
<h2 class="p_Heading2"><a id="config_file" class="hmanchor"></a><span class="f_Heading2">Step 3: Fill out the configuration file </span></h2>
<p class="p_Normal">For a quick start of the app, fill out the main parameters:</p>
<ul style="list-style-type:disc">
<li class="p_Normal"><code><b>global.host</b></code> — domain (FQDN) or IP address by which the system will be accessible.</li><li class="p_Normal"><code><b>bootstrapCompany.email</b></code> — administrators email.</li><li class="p_Normal"><code><b>bootstrapCompany.password</b></code> — administrators password.</li><li class="p_Normal"><code><b>db.psqlUrl</b></code> — connection string to the PostgreSQL DB.</li><li class="p_Normal"><code><b>db.mongoUrl</b></code> — connection string to the MongoDB for the app.</li><li class="p_Normal"><code><b>db.vahterMongoUrl</b></code> — connection string to the MongoDB for the authorization server.</li><li class="p_Normal"><code><b>db.redisUrl</b></code> — connection string to Redis.</li><li class="p_Normal"><code><b>db.amqpUrl</b></code> — connection string to RabbitMQ.</li><li class="p_Normal"><code><b>db.s3.method</b></code> — request method to S3.</li><li class="p_Normal"><code><b>db.s3.accesskeyid</b></code> — S3 username.</li><li class="p_Normal"><code><b>db.s3.secretaccesskey</b></code> — password for the S3 user.</li><li class="p_Normal"><code><b>db.s3.bucket</b></code> — S3 bucket.</li><li class="p_Normal"><code><b>db.s3.backend.address</b></code> — S3 address.</li><li class="p_Normal"><code><b>db.s3.backend.region</b></code> — S3 region.</li><li class="p_Normal"><code><b>db.s3.ssl.enabled</b></code> — enabling S3 SSL.</li></ul>
<p class="p_Normal">Fill in the variables in the <code><b>values-elma365.yaml</b></code> file by performing the following actions:</p>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal">Set the FQDN domain or IP address through which the system will be accessible in the <code><b>global.host</b></code> parameter.</li></ol>
<p class="p_Normal">In the article <a href="embedded-databases-settings.html" class="topiclink">Prepare embedded databases</a>, on step 1, you should have prepared an S3 MinIO storage, which is accessible via the FQDN domain <code><b>elma365_server.your_domain</b></code>. When using the built-in S3 storage accessible by the FQDN, BRIX should be accessible under the same domain name. To do this, in <code><b>global.host</b></code> specify <code><b>elma365_server.your_domain</b></code> and enable the <code><b>ingress</b></code> binding to the domain <code><b>elma365_server.your_domain</b></code>. To do this, set the value true for the <code><b>ingress.hostEnabled</b></code> parameter.</p>
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">global:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample"># domain (FQDN) or IP address where the system will be available</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">host:</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">'elma365_server.your_domain'</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">ingress:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample">hostEnabled:</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample" style="font-weight: bold;">true</span></p>
<ol style="list-style-type:upper-roman" start="2">
<li value="2" class="p_Normal">Complete the company creation parameters in the <code><b>bootstrapCompany</b></code> section. The company will be created during the BRIX installation.</li><li value="3" class="p_Normal">Set the administrator's email address in the <code><b>bootstrapCompany.email</b></code> parameter. This address will serve as the login for the main administrator.</li></ol>
<p class="p_Normal">The main administrator's login cannot be changed after the system installation.</p>
<ol style="list-style-type:upper-roman" start="2">
<li value="4" class="p_Normal">Indicate, according to your security policy, the password for the main administrator's login in the <code><b>bootstrapCompany.password</b></code> parameter.</li><li value="5" class="p_Normal">Set the company language in the <code><b>bootstrapCompany.locale</b></code> parameter, for example, en-US:</li></ol>
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">bootstrapCompany:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample"># Admin email</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">email:</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&quot;admin@mail.com&quot;</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample"># Admin password</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">password:</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&quot;test&quot;</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample"># Installed system language, possible options: &quot;ru-RU&quot;, &quot;en-US&quot;, &quot;sk-SK&quot;</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">locale:</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&quot;en-US&quot;</span></p>
<ol style="list-style-type:upper-roman" start="6">
<li value="6" class="p_Normal">Set the installed system language in the language.default parameter, for example, en-US:</li></ol>
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">language:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample"># Installed system language, possible options: &quot;ru-RU&quot;, &quot;en-US&quot;, &quot;sk-SK&quot;</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample" style="font-weight: bold;">default</span><span class="f_CodeExample">:</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">&quot;en-US&quot;</span></p>
<ol style="list-style-type:upper-roman" start="7">
<li value="7" class="p_Normal"> Fill in the connection strings for the PostgreSQL, MongoDB, RabbitMQ, Redis databases. To do this, you need to fill in the following parameters: <code><b> db.psqlUrl</b></code>, <code><b>db.mongoUrl</b></code>, <code><b>db.vahterMongoUrl</b></code>, <code><b>db.redisUrl</b></code>, <code><b>db.amqpUrl</b></code>.</li></ol>
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">db:</span><br />
<span class="f_CodeExample"> # Connection string </span><span class="f_CodeExample" style="font-weight: bold;">for</span><span class="f_CodeExample"> Postgres DB, format:</span><br />
<span class="f_CodeExample">postgresql://user:password@hostname:5432/databaseName</span><br />
<span class="f_CodeExample"> psqlUrl: 'postgres://postgres:pgpassword@postgres.elma365-dbs.svc.cluster.local:5432/elma365?sslmode=disable'</span><br />
<span class="f_CodeExample"> # Connection string </span><span class="f_CodeExample" style="font-weight: bold;">for</span><span class="f_CodeExample"> read-only Postgres DB, format:</span><br />
<span class="f_CodeExample">postgresql://user:password@hostname:5432/databaseName</span><br />
<span class="f_CodeExample"> roPsqlUrl: ''</span><br />
<span class="f_CodeExample"> # Connection string </span><span class="f_CodeExample" style="font-weight: bold;">for</span><span class="f_CodeExample"> the MongoDB </span><span class="f_CodeExample" style="font-weight: bold;">for</span><span class="f_CodeExample"> the application, format:</span><br />
<span class="f_CodeExample">mongodb://user:password@hostname:27017/databaseName</span><br />
<span class="f_CodeExample"> mongoUrl: 'mongodb://elma365:mongopassword@mongo.elma365-dbs.svc.cluster.local:27017/elma365?ssl=false&amp;replicaSet=rs0&amp;readPreference=secondaryPreferred'</span><br />
<span class="f_CodeExample"> # Connection string </span><span class="f_CodeExample" style="font-weight: bold;">for</span><span class="f_CodeExample"> MongoDB </span><span class="f_CodeExample" style="font-weight: bold;">for</span><span class="f_CodeExample"> the authorization server, format:</span><br />
<span class="f_CodeExample">mongodb://user:password@hostname:27017/databaseName</span><br />
<span class="f_CodeExample"> vahterMongoUrl: 'mongodb://elma365:mongopassword@mongo.elma365-dbs.svc.cluster.local:27017/elma365?ssl=false&amp;replicaSet=rs0&amp;readPreference=secondaryPreferred'</span><br />
<span class="f_CodeExample"> # Connection string </span><span class="f_CodeExample" style="font-weight: bold;">for</span><span class="f_CodeExample"> Redis, format:</span><br />
<span class="f_CodeExample">redis://user:password@redis.local:6379/databaseName</span><br />
<span class="f_CodeExample"> redisUrl: 'redis://redis.elma365-dbs.svc.cluster.local:6379/0'</span><br />
<span class="f_CodeExample"> # Connection string </span><span class="f_CodeExample" style="font-weight: bold;">for</span><span class="f_CodeExample"> Rabbit, format:</span><br />
<span class="f_CodeExample">amqp://user:password@hostname:5672/vhost</span><br />
<span class="f_CodeExample"> amqpUrl: 'amqp://elma365:rmqpassword@rabbitmq.elma365-dbs.svc.cluster.local:5672/elma365'</span></p>
<ol style="list-style-type:upper-roman" start="8">
<li value="8" class="p_Normal">Fill in the parameters for connecting to the S3 file storage:</li></ol>
<ul style="list-style-type:disc">
<li class="p_Normal"><code><b>db.s3.method</b></code> — S3 request method.</li><li class="p_Normal"><code><b>db.s3.accesskeyid</b></code> — S3 username.</li><li class="p_Normal"><code><b>db.s3.secretaccesskey</b></code> — password for the S3 user.</li><li class="p_Normal"><code><b>db.s3.secretaccdb.s3.bucket</b></code> — S3 bucket.</li><li class="p_Normal"><code><b>db.s3.backend.address</b></code> — S3 address.</li><li class="p_Normal"><code><b>db.s3.backend.region</b></code> — S3 region.</li><li class="p_Normal"><code><b>db.s3.ssl.enabled</b></code> — enable S3 SSL.</li></ul>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">db:</span><br />
<span class="f_CodeExample" style="color: #ffffff;">&nbsp;</span><span class="f_CodeExample">s3:</span><br />
<span class="f_CodeExample" style="color: #ffffff;">&nbsp;&nbsp;&nbsp;</span><span class="f_CodeExample">method:&nbsp;PUT</span><br />
<span class="f_CodeExample" style="color: #ffffff;">&nbsp;&nbsp;&nbsp;</span><span class="f_CodeExample">accesskeyid:&nbsp;PZSF73JG72Ksd955JKU1HIA</span><br />
<span class="f_CodeExample" style="color: #ffffff;">&nbsp;&nbsp;&nbsp;</span><span class="f_CodeExample">secretaccesskey:&nbsp;aFDkj28Jbs2JKbnvJH678MNwiz88zKjsuNBHHs</span><br />
<span class="f_CodeExample" style="color: #ffffff;">&nbsp;&nbsp;&nbsp;</span><span class="f_CodeExample">bucket:&nbsp;s3elma365</span><br />
<span class="f_CodeExample" style="color: #ffffff;">&nbsp;&nbsp;&nbsp;</span><span class="f_CodeExample">backend:</span><br />
<span class="f_CodeExample" style="color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="f_CodeExample">address:&nbsp;elma365_server.your_domain</span><br />
<span class="f_CodeExample" style="color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="f_CodeExample">region:&nbsp;us-east-1</span><br />
<span class="f_CodeExample" style="color: #ffffff;">&nbsp;&nbsp;&nbsp;</span><span class="f_CodeExample">ssl:</span><br />
<span class="f_CodeExample" style="color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="f_CodeExample">enabled:&nbsp;&quot;false&quot;</span></p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal"><a class="dropdown-toggle" style="font-style: normal; font-weight: normal; color: #000000; background-color: transparent; text-decoration: none;" href="javascript:HMToggle('toggle','TOGGLE0186A3')">Filling in the connection parameters to a private registry for installation in a closed-loop without internet access</a></p>
<div id="TOGGLE0186A3" class="dropdown-toggle-body" style="text-align: left; text-indent: 0; line-height: 1.80; padding: 0 0 0 0; margin: 0 0 0 0;"><table style="border:none; border-spacing:0;">
<tr>
<td style="vertical-align:top; padding:0; border:none"><ol style="list-style-type:decimal">
<li value="1" class="p_Normal">Set the address and path in the <code><b>global.image.repository</b></code> parameter.</li><li value="2" class="p_Normal">Indicate the name of the secret with access rights to the private registry in the <code><b>global.image.pullSecret</b></code> parameter. The private registry should be manually created and encrypted in Base64 global:</li></ol>
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample"># Address and path for private registry</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">image:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample">repository: registry.example.com/images/elma365</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample"># Secret with access permissions for the private registry must be created manually, </span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample">encoded </span><span class="f_CodeExample" style="font-weight: bold;">in </span><span class="f_CodeExample">Base64</span><span class="f_CodeExample" style="color: #ffffff;"> </span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; </span><span class="f_CodeExample">pullSecret:</span><br />
<span class="f_CodeExample" style="color: #ffffff;"> &nbsp; &nbsp; </span><span class="f_CodeExample">- name: myRegistryKeySecretName</span></p>
<p class="p_Normal">&nbsp;<br />
Where format of <code><b>repository</b></code> is:</p>
<ul style="list-style-type:disc">
<li class="p_Normal"><code><b>registry.example.com</b></code> — address.</li><li class="p_Normal"><code><b>/images/elma365</b></code> — path.</li></ul>
</td>
</tr>
</table>
</div>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal">The configuration file <code><b>values-elma365.yaml</b></code> contains a large number of parameters for the BRIX On-Premises application.</p>
<h2 class="p_Heading2"><a id="install" class="hmanchor"></a><span class="f_Heading2">Step 4: Install BRIX using helm in the Kubernetes cluster</span></h2>
<ol style="list-style-type:upper-roman">
<li value="1" class="p_Normal">In the <code><b>namespace</b></code> for BRIX installation, change the value for the Deckhouse security policy to <code><b>privileged</b></code> to avoid errors when deploying services. To do this, run the command:</li></ol>
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">kubectl label namespace elma365 security.deckhouse.io/pod-policy=privileged --overwrite</span></p>
<ol style="list-style-type:upper-roman">
<li value="2" class="p_Normal">Install &nbsp;BRIX Enterprise using the configuration file <code><b>values-elma365.yaml</b></code>. If you need to install the application in a separate namespace, specify it in the installation command:</li></ol>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;upgrade&nbsp;--install&nbsp;elma365&nbsp;elma365/elma365&nbsp;\</span><br />
<span class="f_CodeExample">-f&nbsp;values-elma365.yaml&nbsp;\</span><br />
<span class="f_CodeExample">--timeout=30m&nbsp;--wait&nbsp;[-n</span><span class="f_CodeExample" style="color: #ffffff;">&nbsp;</span><span class="f_CodeExample" style="font-weight: bold;">namespace</span><span class="f_CodeExample">]</span></p>
<p class="p_Normal">To install the BRIX Enterprise application in an isolated environment without internet access, run the following command:</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">helm&nbsp;upgrade&nbsp;--install&nbsp;elma365&nbsp;./elma365&nbsp;\</span><br />
<span class="f_CodeExample">-f&nbsp;values-elma365.yaml&nbsp;\</span><br />
<span class="f_CodeExample">--timeout=30m&nbsp;--wait&nbsp;[-n&nbsp;</span><span class="f_CodeExample" style="font-weight: bold;">namespace</span><span class="f_CodeExample">]</span></p>
<p class="p_Normal">The installation time for the BRIX Enterprise application takes 10-30 minutes. Wait for the update of the BRIX Enterprise application parameters.</p>
<ol style="list-style-type:upper-roman" start="3">
<li value="3" class="p_Normal">Open a browser and navigate to the BRIX Enterprise login page at <code><b> http://global.host</b></code>. The <code><b>global.host</b></code> parameter was specified in the <code><b>values-elma365.yaml</b></code> configuration file in the step of downloading the helm chart and configuration file.<br />
&nbsp;<br />
In the given example, the following login page address for the BRIX Enterprise application is used: <a href="http://example.com" target="_blank" class="weblink">http://example.com</a></li></ol>
<ol style="list-style-type:upper-roman" start="4">
<li value="4" class="p_Normal">Use the administrator's email address as the login and the password you used in the <code><b>values-elma365.yaml</b></code> configuration file for the parameters <code><b>bootstrapCompany.email</b></code> and <code><b>bootstrapCompany.password</b></code>.<br />
&nbsp;<br />
In the given example, the following are used:</li></ol>
<ul style="list-style-type:disc">
<li class="p_Normal"><span style="font-weight: bold;">Login — admin@mail.com;</span></li><li class="p_Normal"><span style="font-weight: bold;">Password — test.</span></li></ul>
<ol style="list-style-type:upper-roman" start="5">
<li value="5" class="p_Normal">Click the <span style="font-weight: bold;">Login to the system</span> button.<br />
&nbsp;<br />
The BRIX application window will open.</li></ol>
<ol style="list-style-type:upper-roman" start="6">
<li value="6" class="p_Normal">Activate the system. For more details, see <a href="activate_on_premise.html" class="topiclink">Activate On-Premises</a>.</li></ol>
<p class="p_Normal">The installation of the BRIX Enterprise edition application has been successfully completed.</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">начало&nbsp;внимание</span></p>
<p class="p_Normal">Save the <code><b>values-elma365.yaml</b></code> configuration file for future updates.</p>
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">конец&nbsp;внимание</span></p>
<p class="p_Normal">&nbsp;</p>
<h2 class="p_Heading2"><a id="install_addons" class="hmanchor"></a><span class="f_Heading2">Step 5: Install add-ons for the BRIX application (optional)</span></h2>
<p class="p_Normal">Under add-ons for the BRIX application, components are understood that extend the functional and infrastructure capabilities of the BRIX application, which include:</p>
<ul style="list-style-type:disc">
<li class="p_Normal">Linkerd routing system (Service Mesh).</li><li class="p_Normal">Prometheus + Grafana monitoring system.</li><li class="p_Normal">Descheduler.</li><li class="p_Normal">NodeLocal DNSCache.</li><li class="p_Normal">Kyverno.</li><li class="p_Normal">KEDA.</li><li class="p_Normal">The <span style="font-weight: bold;">Security Audit</span> module.</li></ul>
<p class="p_Normal">Add-ons are installed as needed, considering the existing infrastructure. Articles in the <a href="enable-portable-services.html" class="topiclink">Administering BRIX Enterprise</a> section will help decide whether you should to install an add-on component.</p>
<div class="bottom-nav">
<a id="prev-link" class="topic__navi_prev" href="elma365-enterprise.html">
<span class="bottom-nav__arrow bottom-nav__arrow--prev"></span> <span
class="bottom-nav__link">elma365-enterprise.html</span>
</a>
<a id="next-link" class="topic__navi_next" href="change-settings-enterprise.html">
<span class="bottom-nav__link">change-settings-enterprise.html</span> <span
class="bottom-nav__arrow bottom-nav__arrow--next"></span>
</a>
</div>
<!-- добавляет на страницу строку блок Была ли статья полезной? -->
<div class="feedback" id="feedback"><div class="feedback-help"><span><b>Was this helpful?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx" style="display: none;">Thanks for your feedback!</div><div class="feedback__popup" id="feedback__popup_why" style="display: none;"><div class="feedback__popup-header">Please specify why:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Recommendations did not help me</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Article is hard to understand</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Didn`t answer my question</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Content does not match the topic</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Other</label></div><div class="feedback__popup" id="feedback__popup-other" style="display: none;"><div class="feedback__popup-header">How we can improve it?</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Submit"></div><div class="feedback-form__btn-group"><input type="radio" name="useful" id="feedback__useful_yes" value="true"><label for="feedback__useful_yes"><img src="like.svg" class="small-img" alt="like"><spanclass="feedback-form__btn-group_yes-btn">Yes</spanclass="feedback-form__btn-group_yes-btn"></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg" class="small-img" alt="dislike"><spanclass="feedback-form__btn-group_no-btn">No</spanclass="feedback-form__btn-group_no-btn"></label></div><select name="category"><option disabled="">Please specify why</option><option value="bad_recommendation" selected="">Recommendations did not help me</option><option value="difficult_text">Article is hard to understand</option><option value="no_answer">Didn`t answer my question</option><option value="bad_header">Content does not match the topic</option><option value="other_reason">Other</option></select><input type="submit"></form></div><div class="found_typo"><p style="margin: 0px; margin-top: 16px !important;"><span><b>Found a typo?</b></span> Select it and press <i>Ctrl+Enter</i> to send us feedback</p></div></div>
</section>
</div>
<aside class="article__sidebar" style="display:none">
<input type="checkbox" />
<div class="article__arrow"></div>
<div class="table-of-contents elma365-right" id="toc2Content">
<h3 class="h3-toc">In this topic</h3>
<nav id="toc2"></nav>
</div>
</aside>
</div>
</article>
</main>
<footer class="footer">
<div class="footer-container">
<div class="footer-mobile">
<ul class="footer-mobile__list"><li><a href="https://brix365.com/en/" target="_blank">BRIX</a></li><li><a href="https://tssdk.brix365.com/en/latest/" target="_blank">SDK</a></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li></ul><ul class="footer-mobile__list"><li><a href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li></ul>
</div>
<div class="footer-wrap">
<div><span class="mobile-question-popup">Send feedback</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Ask a question</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Send"></div></form><div class="hidden fade-in question-success-xs">Sent</div></div>
<div class="footer-flex-b">
<span class="footer-copy">&copy; 2025 BRIX</span>
<ul class="footer-list">
<li class="footer-item">
<a href="#" class="arrow-top" style="display: block;"></a>
</li>
</ul>
</div>
</div>
</div>
</footer>
<iframe name="hmnavigation" style="display:none!important"></iframe>
<script src="./jquery-ui.js"></script>
<!--script src="//cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.js" type="text/javascript" charset="utf-8"></script-->
<script src="./jquery.tocify.min.js"></script>
<script src="./TypoReporter.min.js"></script>
<script src="./google-search.js"></script>
<script src="./main.js"></script>
<script type="text/javascript">
HMInitToggle('TOGGLE0186A1','hm.type','dropdown','hm.state','0');
HMInitToggle('TOGGLE0186A2','hm.type','dropdown','hm.state','0');
HMInitToggle('TOGGLE0186A3','hm.type','dropdown','hm.state','0');
</script>
</body>
</html>