Настройка личного домена и его проксирование.
Создание репозитория в Diplodoc
Быстрый старт («Quick Start») — сервис, который поможет создать репозиторий и привязать его к внешнему сервису Diplodoc.
Для создания базовой документации:
-
Откройте Быстрый старт.
-
В шаге №1 авторизуйтесь в GitHub.
-
В шаге №2 нажмите Создать и создайте репозиторий в GitHub. В результате будет создан проект с именем «diplodoc-example», предзаполненный командой Diplodoc.
-
В шаге №3 нажмите Создать и создайте проект в Diplodoc.
-
После выполнения пошаговой инструкции вы получите сообщение:
Ключи от каталога с документацией в S3. Идентификатор ключа: *********************** Секретный ключ: *********************** Сохраните идентификатор и ключ. После закрытия диалога значение ключа будет недоступно. Ключ будет добавлен в созданный репозиторий автоматически. -
Дождитесь завершения релиза, проект будет доступен по ссылке в шаге №3 на странице Быстрого старта.
Подготовка Yandex Cloud для привязки домена
Создание API-шлюза
-
Зарегистрируйте домен (можно воспользоваться доменным регистратором).
-
Авторизуйтесь или создайте аккаунт в Yandex Cloud.
Важно
На странице Биллинг убедитесь, что у вас подключен платежный аккаунт и находится в статусе
ACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его. -
Перейдите в консоль Yandex Cloud.
-
Откройте Все сервисы → API Gateway.
Примечание
API Gateway — упрощенный сервер в Yandex Cloud, который позволяет обслуживать внешние запросы. Настраивается с помощью OpenAPI спецификации.
-
Нажмите кнопку Создать API-шлюз.
-
Заполните поля Имя* и описание. Поле со звездочкой обязательно для заполнения.
-
В поле Сеть выберите
defaultили свой вариант. -
Заполните поле Спецификация: можно воспользоваться своей OpenAPI спецификацией или примером.
Пример OpenAPI спецификации
Важно
Вы можете использовать пример OpenAPI спецификации, но не забудьте изменить некоторые важные параметры, такие как: адрес внешнего домена или путь, на который должна проксироваться документация.
OpenAPI Спецификация
openapi: 3.0.0 info: title: Proxy Example version: 1.0.0 servers: - url: https://d5dj3947rd2qu5g1lbak.apigw.yandexcloud.net - url: example-for-your-domain.net paths: /путь/{path+}: get: x-yc-apigateway-integration: headers: x-real-host: example-for-your-domain.net x-docs-proxy-base: docs x-docs-project-name: diplodoc-platform--docs http_method: get query: '*': '*' type: http url: https://diplodoc-platform--docs.viewer.diplodoc.com/{path} parameters: - name: path in: path required: false schema: type: stringОписание параметров OpenAPI спецификации
Параметр
Описание параметра
serversНастройка вложенных параметров
urlразделаserversпозволит указать, по какому адресу необходимо проксировать документацию.
Для проксирования документации на ваш домен настройте вложенные параметры:- Первый параметр
urlсодержит адрес, на котором работает API Gateway, — оставьте значение по умолчанию. - Для второго параметра
urlукажите внешний домен, на который нужно проксировать документацию.
pathsСодержит вложенное правило, которое позволяет конфигурировать ответ для параметра
urlиз разделаservers. Параметр/путь/{path+}:, вложенный в разделpaths, указывает, по какому пути должна располагаться документация.Примечание
Если вы используете пример OpenAPI спецификации, то документация будет расположена по пути
example-for-your-domain.net/docs.getВложенное правило, которое обрабатывает все get-запросы.
headersРаздел содержит служебные заголовки. Для настройки служебных заголовков:
1. В параметре
x-real-host:укажите адрес домена.
2. В параметреx-docs-proxy-base:укажите каталог, на котором будет размещаться документация.
3. В параметреx-docs-project-name:укажите название проекта.urlПараметр, вложенный в правило
get, содержит адрес, на который перенаправляется документация.Примечание
Если вы используете пример OpenAPI спецификации, то документация будет перенаправляться на домен диплодока.
parametersРаздел обрабатывает параметр
pathпо заданному правилу.Важно
Для размещения в корне домена в OpenAPI-конфигурации измените:
- У параметра
x-docs-proxy-baseзначение на' '. - У параметра
paths:значение на/{path+}:.
- Первый параметр
-
Нажмите Создать.
-
Если платежный аккаунт не привязан, нажмите Привязать.
-
В результате должен появиться API-шлюз со статусом
active. -
Теперь Yandex Cloud может проксировать документацию на свой url.
-
Чтобы заработало проксирование на внешний домен, создайте новый или загрузите личный сертификат.
Создание/загрузка сертификата
Для создания или загрузки личного сертификата:
-
Перейдите в консоль.
-
Откройте Все сервисы → Certificate Manager.
-
Нажмите Создать сертификат.
-
На странице выберите Добавить сертификат → Сертификат от Let's Encrypt.
Примечание
Если у вас уже есть сертификат, который зарегистрирован во внешнем сервисе, вы можете использовать его, для этого в выпадающем меню выберите Пользовательский сертификат.
-
Заполните поля Имя* и описание. Поле со звездочкой обязательно для заполнения.
-
Укажите Домены*, для которых необходимо добавить сертификат. Поле обязательно для заполнения.
-
Выберите в поле Тип проверки — DNS.
-
Созданный сертификат будет ожидать подтверждения со статусом
Validating. -
Подтвердите, что вы являетесь владельцем домена.
Подтверждение сертификата
Для подтверждения прав на владение доменом:
- Перейдите в консоль.
- Откройте Все сервисы → Certificate Manager.
- Выберите созданный или добавленный сертификат.
- Подтвердите права на владение доменом, используя один из предложенных способов.
- Права на владение домена подтверждены.
- Подключите домен.
Привязка домена к Yandex Cloud
Подключение домена
Для завершения привязки домена к Yandex Cloud:
- Откройте Все сервисы → API Gateway.
- Выберите созданный API-шлюз.
- В левом меню нажмите домены → Подключить.
- Выберите созданный сертификат.
- Укажите домен.
- Нажмите Подключить.
- Настройка проксирования на личный домен завершена.