---
title: "Деплой из кастомных реестров"
---

# Деплой из кастомных реестров

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

Сервис App Platform позволяет развернуть приложение из готового Docker-образа в публичном или приватном реестре. Реестры Timeweb Cloud отображаются в списке автоматически — подключать и настраивать их отдельно не требуется. Для GitHub Container Registry, GitLab Container Registry и Yandex Cloud Registry доступны пресеты подключения. Любой другой реестр можно подключить по URL.

Для приватных образов потребуются имя пользователя и пароль или токен доступа — в зависимости от требований провайдера.

Такой способ подходит, если вы собираете образы самостоятельно или используете готовые образы из реестров контейнеров.

## Особенности работы

App Platform автоматически настраивает доступ к приложению через обратный прокси. Порт приложения определяется из метаданных Docker-образа, например `EXPOSE`, или переменных окружения, если они явно задают порт. Если порт не указан, используется значение по умолчанию.

Сервис направляет трафик с внешних портов `80` и `443` на порт контейнера. Настраивать проксирование вручную не требуется.

Помимо доступа по домену через HTTPS, может быть доступно прямое подключение к сервисным портам по адресу `домен:порт`. Это полезно для сервисов, которые работают не по HTTP.

При повторном деплое приложение может временно становиться недоступным.

Данные внутри контейнера не сохраняются между деплоями. Для файлов и баз данных используйте внешние хранилища. Подробнее — в статье [о принципах работы App Platform](https://timeweb.cloud/docs/apps/how-it-works).

Образ приложения должен быть собран для платформы `linux/amd64`. Если образ собран для другой платформы, тогда деплой приложения завершится ошибкой манифеста.

## Шаг 1. Выбор реестра и образа

1.  Перейдите в раздел [«App Platform»](https://timeweb.cloud/my/apps) и нажмите «Создать» или «Добавить».
    
2.  Перейдите на вкладку «Container image».
    
3.  Выберите источник образа.
    

### Timeweb Cloud Container Registry

Реестры Timeweb Cloud, созданные в вашем аккаунте, доступны без дополнительного подключения:

1.  Выберите «Timeweb Cloud Container Registry».
    
2.  Выберите нужный реестр из списка.
    
3.  Выберите образ и укажите тег или дайджест.
    

Вводить адрес реестра или данные для авторизации не требуется.

Дополнительному пользователю доступны только реестры из тех проектов, к которым у него есть доступ.

При создании первого приложения из реестра App Platform автоматически выпускает сервисный токен для доступа к нему. Если из того же реестра создать другие приложения, для них будет использоваться уже выпущенный токен. Токен автоматически удалится после удаления последнего приложения, которое использует этот реестр.

### Пресеты подключения

Для GitHub Container Registry, GitLab Container Registry и Yandex Cloud Registry доступны пресеты подключения. Выберите нужный источник, нажмите «Добавить» и укажите данные для доступа к реестру.

После подключения пользователь, организация или реестр появится в списке. Выберите его, затем выберите образ и укажите тег или дайджест. Повторно вводить данные для доступа не потребуется.

#### GitHub Container Registry

Укажите пользователя или организацию (`namespace`) и токен с правом `read:packages`. Токен используется для поиска образов и тегов в выбранном namespace, а также для скачивания образа при деплое.

При проверке образа App Platform ищет указанный тег только среди последних 500 версий в GitHub Container Registry. Если тег относится к более старой версии, сервис вернет ошибку «образ не найден».

#### GitLab Container Registry

Укажите пользователя или организацию (`namespace`) и токен с правами `read_api` и `read_registry`. Вместо них можно выдать право `api`.

Токен используется для поиска образов и тегов в выбранном namespace, а также для скачивания образа при деплое. Для доступа к приватным группам и проектам выпустите токен в аккаунте, у которого есть к ним доступ.

При проверке образа App Platform ищет указанный тег только среди последних 500 версий в GitLab Container Registry. Если тег относится к более старой версии, сервис вернет ошибку «образ не найден».

#### Yandex Cloud Registry

Укажите ID реестра и API-ключ сервисного аккаунта. Сервисному аккаунту необходимо выдать роль `cloud-registry.artifacts.puller` на реестр, а API-ключу — область действия `yc.cloud-registry.artifacts.pull`.

ID реестра — это часть адреса образа после `registry.yandexcloud.net/`.

Yandex Cloud не передает список образов по API, поэтому путь к образу необходимо указать вручную. Доступные теги App Platform предложит автоматически.

### Подключение другого реестра

1.  Выберите «Другой реестр».
    
2.  Нажмите «Добавить».
    
3.  Укажите адрес реестра, например `registry.example.com` или `registry.example.com:5000`.
    
4.  Если реестр приватный, укажите логин и пароль или токен с правом на скачивание образов.
    
5.  Нажмите «Подключить».
    

Для реестра, подключенного через вариант «Другой реестр», поиск образов и тегов недоступен. Укажите путь к образу и тег вручную — App Platform проверит наличие образа при создании приложения.

В дальнейшем подключенный реестр можно выбрать из списка. Повторно вводить адрес и данные для авторизации не потребуется.

## Шаг 2. Регион и конфигурация сервера

Приложения разворачиваются на отдельных облачных серверах. Выберите регион размещения и подходящую конфигурацию сервера.

Вы можете выбрать один из готовых тарифов или настроить конфигурацию вручную на вкладке «Произвольная».

В дальнейшем, если потребуется, вы сможете перейти на более мощный тариф.

## Шаг 3. Дополнительные настройки

#### Переменные

При необходимости задайте [переменные окружения](https://timeweb.cloud/docs/apps/variables): выберите существующие или добавьте новые.

Нажмите «Показать расширенные настройки», чтобы настроить приватную сеть и сертификаты.

#### Приватная сеть

Выберите приватную сеть, в которую будет добавлено приложение, и укажите IP-адрес, который оно будет использовать. Если сеть не нужна, выберите «Без приватной сети».

Изменить приватную сеть после деплоя нельзя.

Если для приложения настроен приватный IP-адрес, во время повторного деплоя возможна кратковременная недоступность приложения. Это связано с тем, что перед запуском новой версии необходимо освободить занятые порты.

#### Сертификаты Минцифры и ТЦИ

Оставьте включенной или отключите установку [сертификатов Минцифры и/или ТЦИ](https://timeweb.cloud/docs/apps/trusted-certificates). Они могут потребоваться для работы с API российских банков и государственных организаций.

Для приложений из готовых образов App Platform добавляет файлы сертификатов в контейнер. Настроить доверие к ним в приложении необходимо самостоятельно. Подробнее — в [инструкции по подключению сертификатов](https://timeweb.cloud/docs/apps/trusted-certificates#ustanovka-sertifikatov-dlya-prilojenij-iz-dockerfile-i-docker-compose).

## Шаг 4. Информация о приложении

Укажите имя приложения и при необходимости добавьте комментарий. Эти данные будут отображаться в панели управления.

Также выберите проект, в который нужно добавить приложение.

Эти настройки можно изменить в дальнейшем.

## Шаг 5. Деплой

Нажмите «Заказать». Как только процесс начнется, на вкладке «Деплой» появится лог. Если во время деплоя произойдет ошибка, в логе отобразится ее причина.

При первом развертывании установка сервера может занять некоторое время. После завершения деплоя статус приложения обновится, а в логе появится сообщение об успешном завершении.

IP-адрес приложения и бесплатный технический домен, привязанный к нему по умолчанию, можно найти на вкладке «Дашборд». Для технического домена автоматически выпускается SSL-сертификат Let's Encrypt.

Привязать собственный домен можно [по нашей инструкции](https://timeweb.cloud/docs/apps/domain).

В дальнейшем вы сможете изменить образ, тег и переменные в настройках приложения и выполнить новый деплой.
