---
title: 'Облачный сервер с Harbor'
sidebar_label: 'Harbor'
sidebar_position: 5
toc_max_heading_level: 3
description: 'Как создать облачный сервер с реестром контейнеров'
---

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'
import {CustomTable} from '@selectel/docux/components'
import Formbricks from '@theme/MDXComponents/Formbricks'
import CopyIcon from '@selectel/docux/icons/copy'
import CreateServer from '@site/docs/_partials/cloud-servers/applications/create-server-for-apps.mdx'

# Облачный сервер с Harbor

Harbor — реестр с открытым исходным кодом, который предназначен для безопасного хранения и управления артефактами.
Harbor обеспечивает защиту артефактов с помощью политик безопасности и ролевой модели доступа (RBAC).
Он автоматически может сканировать контейнерные образы на уязвимости и подписывать их как доверенные.

Сервис позволяет централизованно, последовательно и безопасно управлять образами и другими артефактами, например, в экосистемах Kubernetes и Docker.

Вы можете [создать облачный сервер с Harbor](#create-cloud-server-with-harbor).
В России приложение работает на облачном сервере с настроенной операционной системой [SelectOS 1 64-bit](https://selectos.selectel.ru/news/mega/).
В других [странах](/infrastructure/locations.mdx#country) — Ubuntu 24.04.

Перед созданием облачного сервера с приложением ознакомьтесь с [лицензионными соглашениями программного обеспечения](https://423.selcdn.ru/kb/license-agreements-for-application-images-LANG.pdf), которое входит в образ.

## Минимальные требования к ресурсам \{#minimum-requirements}

<CustomTable>
  <table>
    <thead>
      <th />

      <th>Тестовая среда</th>
      <th>Продуктивная среда</th>
    </thead>

    <tbody>
      <tr>
        <th>Количество vCPU</th>
        <td>2</td>
        <td>4</td>
      </tr>

      <tr>
        <th>RAM</th>
        <td>4 ГБ</td>
        <td>8 ГБ</td>
      </tr>

      <tr>
        <th>Загрузочный диск</th>
        <td>40 ГБ</td>
        <td>160 ГБ</td>
      </tr>
    </tbody>
  </table>
</CustomTable>

## Создать облачный сервер с Harbor \{#create-cloud-server-with-harbor}

Для работы Harbor облачный сервер должен быть доступен из интернета.
Для этого при создании сервера нужно создать приватную подсеть и подключить публичный плавающий IP-адрес.
Чтобы настроить Harbor, при создании сервера необходимо указать user data — пользовательские параметры конфигурации операционной системы.

После создания сервера с Harbor автоматически выпустится бесплатный [TLS-сертификат от Let’s Encrypt®](/certificates-manager/certificates/lets-encrypt.mdx) для домена, который вы укажете.
Для выпуска сертификата нужно добавить A-запись для домена и указать в значении записи публичный плавающий IP-адрес сервера.
Домен можно добавить в [DNS-хостинг Selectel (actual)](/dns-hosting/).

1. [Создайте публичный плавающий IP-адрес](#create-floating-ip).

2. [Добавьте A-запись для домена](#add-a-record).

3. [Создайте облачный сервер с Harbor](#create-harbor-server).

### 1. Создать публичный плавающий IP-адрес \{#create-floating-ip}

Создайте публичный плавающий IP-адрес, чтобы облачный сервер с Harbor был доступен из интернета.

Используйте подраздел [Создать публичный плавающий IP-адрес](/cloud-servers/cloud-networks/public-floating-ip-addresses.mdx#create-public-floating-ip) инструкции [Публичные плавающие IP-адреса](/cloud-servers/cloud-networks/public-floating-ip-addresses.mdx).

### 2. Добавить A-запись для домена \{#add-a-record}

[Добавьте ресурсную запись](/dns-hosting/records/add-record.mdx), чтобы получить доступ к Harbor по домену.

Укажите:

* [тип ресурсных записей](/dns-hosting/records/add-record.mdx#record-types) в группе — A;
* значение записи — публичный плавающий IP-адрес, который вы [создали на этапе 1](#create-floating-ip).

### 3. Создать сервер с Harbor \{#create-harbor-server}

<CreateServer AppNameInPanel="Cloud Harbor" MinConfig="2 vCPU, RAM от 4 ГБ и размером загрузочного диска от 40 ГБ" OptionalVolumes="Опционально: добавьте дополнительный" VolumeSize="Укажите размер сетевого диска в ГБ или ТБ" />

<div style={{paddingLeft:'2em'}}>
  ```bash
  #cloud-config
   
  write_files:
  - path: "/opt/gomplate/values/user-values.yaml"
    permissions: "0644"
    content: |
      harborDomain: "<example.com>"
      harborAdminPassword: "<administrator_password>"
      harborPostgresPassword: "<db_administrator_password>"
      harborAcmeEmail: "<root@example.com>"
      useTrivy: <enable_trivy>
  ```

  Укажите:

  * `<example.com>` — домен для доступа к Harbor, который вы [добавили на этапе 2](#add-a-record);
  * `<administrator_password>` — пароль администратора Harbor;
  * `<db_administrator_password>` — пароль учетной записи администратора базы данных PostgreSQL;
  * `<root@example.com>` — электронная почта администратора Harbor для выпуска сертификата Let’s Encrypt®;
  * опционально: `<enable_trivy>` — включение сканера уязвимостей Trivy. Возможные значения: `true` — сканер включен, `false` или параметр не указан — сканер выключен.
</div>

<Formbricks />
