# Подключение своего домена

В этой статье мы подробно расскажем как подключить к платформе Tuna собственный домен и опубликовать локальный сайт в интернет без публичного IP, сложных конфигураций сети вроде VPN и без публикации кода на какой либо сервер или хостинг.

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

## Подключение домена

### Покупка домена

Для начала вам понадобится собственный домен (если у вас его нет), вы можете купить его например у [Рег.ру](https://www.reg.ru/?utm_source=tuna.am) или [namecheap](https://www.namecheap.com/?utm_source=tuna.am) или любого другого регистратора доменов. Для примеров в этой статье мы используем домен `tuna-dev.ru`.

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

Перейдите на [страницу управления доменами](https://my.tuna.am/domains) в личном кабинете и нажмите **Добавить домен** cправа вверху.

![](/docs/img/connect-self-domain/add-domain.png)

Выберете Регион, Тип - **Свой домен**, в поле Домен введите свой домен. В нашем случае это `api.tuna-dev.ru`. Если у вас Unicode домен например в одной из таких зон `.РФ, .ДЕТИ, .ҚАЗ`, то нужно указывать конвертированный [punycode](https://www.reg.ru/web-tools/punycode?utm_source=tuna.am) вариант.

![](/docs/img/connect-self-domain/adding-in-my.png)

После указания своего домена вы увидите нужные настройки для DNS.

### Настройка DNS

Перейдите в панель управления DNS записями. Потребуется создать **CNAME** или **A** запись в настройках DNS вашего домена. Если у вас указана **AAAA** запись для выбранного домена, то её нужно удалить, так как работа по IPv6 пока не поддерживается.

![](/docs/img/connect-self-domain/add-cname.png)

### Ожидание подтверждения

После создания DNS записи, можно вернуться в личный кабинет и нажать **Добавить**, домен перейдёт в режим проверки.

![](/docs/img/connect-self-domain/check-status.png)

Валидация обычно занимает от 15 минут до 2 часов, но может растянуться и на пару дней, зависит от TTL на DNS запись. Процесс проверки ограничен **24 часами**, и разбит на 2 основных этапа:

* **Проверка DNS** - проверяем, что ваш домен настроен корректно
* **Проверка TLS** - выпускаем [Let's Encrypt](https://letsencrypt.org/?utm_source=tuna.am) сертификат для вашего домена

Если процесс добавления завершился ошибкой DNS, [проверьте](https://www.reg.ru/nettools/dig?utm_source=tuna.am), что вы верно создали DNS запись и она указывает на нужный сервер. Если всё корректно, возможно ещё не обновился DNS кэш и нужно ждать, тогда просто возобновите проверку. Если процесс добавления завершился ошибкой TLS, проверьте нет ли явных ошибок в настройке DNS: AAAA записи, рекурсивно зацикленные указатели. Если самостоятельно разобраться не получается, обратитесь в [поддержку](mailto:info@tuna.am).

### Использование

После успешной верификации домена, вы получите письмо с уведомлением.

![](/docs/img/connect-self-domain/domain-verified.png)

Теперь его можно начать использовать, для этого к команде `tuna http <ваш_порт>` укажите флаг `--domain` или его короткий вариант `-d` или [переменную окружения](https://tuna.am/docs/guides/environment-variables.md) и ваш домен, например:

```shell
tuna http 8080 --domain=api.tuna-dev.ru

```

```shell
tuna http 8080 -d api.tuna-dev.ru

```

```shell
export TUNA_DOMAIN=api.tuna-dev.ru
tuna http 8080

```
