Компонент обновляет информацию о текущем IP адресе для сервиса DDNS.
Необходимо иметь аккаунт на сайте duckdns.
Проходить скучную процедуру регистрации необязательно, можно просто авторизоваться любым удобным способом
Нужно создать домен (одновременно можно держать до 5-ти доменов).
Для работы с библиотекой нам нужно будет сохранить имя домена и выданный токен.
Все это описано в FAQ.
Клонировать репу, открыть cmd
, дать команды
cd myPath\autumn-dduck
opm build
opm i autumn-dduck-0.1.5.ospx
Все, компонента ляжет в бибилиотеки lib
оскрипта.
Надо пробросить порты на вашем роутере (да-да, без этого к сожалению совсем никак).
Информацию по своему роутеру легко гуглить.
Дальше нам надо задать настройки.
autumn-properties.yml
DDNS: # Имя настроек, должно быть точно таким же
Token: # Токен сюды, обязателен к заполнению
Domain: # Домен сюды, обязателен к заполнению
Use: # Истина, если запуск библиотеки необходим (Ложь по умолчанию)
Delay: # Значение в милисекундах, частота обновления информации в DDNS (300000мс по умолчанию)
Использовать библиотеку можно (и нужно) в связке с бибилиотекой ОСень.
#Использовать autumn
#Использовать autumn-dduck
Поделка = Новый Поделка();
Поделка.ЗапуститьПриложение();
Все готово, поделка прочтет нужную инфу из файла, и будет спамить в сервис DDNS наш текущий IP.
А ваши сервисы могут стучаться в ваш роутер из всемирной паутины.
Если вы любитель Вина, то autumn-dduck нужно импортировать раньше.
#Использовать autumn
#Использовать autumn-dduck
#Использовать winow
Поделка = Новый Поделка();
Поделка.ЗапуститьПриложение();
Если вы уже прокинули порты, будьте внимательны. Вино оно такое, если его не контролировать, оно сразу побежит слушать порт 3333
.
Чтобы установить свой порт, вернемся к файлу autumn-properties.yml
DDNS: # Имя настроек, должно быть точно таким же
Token: # Токен сюды, обязателен к заполнению
Domain: # Домен сюды, обязателен к заполнению
Use: # Истина, если запуск библиотеки необходим (Ложь по умолчанию)
Delay: # Значение в милисекундах, частота обновления информации в DDNS (300000мс по умолчанию)
winow:
Порт: # Сюды необходимый порт
Ну вот и все, сервисы крутятся, лавеха мутится, сервис поднят, DDNS своевременно получает инфу о IP, можно ддосить самого себя.
Так как компонента пишется для домашнего сервера, примеры будут показаны для проекта на оскрипте с использованием библиотеки Вино и с использованием самоподписанных сертификатов.
main.os
#Использовать autumn
#Использовать autumn-dduck
#Использовать winow
Поделка = Новый Поделка();
Поделка.ЗапуститьПриложение();
Для начала мы должны выпустить этот самый сертификат, и в этом нам поможет приложуха certbot
. Скачать его можно отсюда
Далее, воспользуемся волшебной командной строкой и введем в нее следующие данные:
certbot certonly --manual --preferred-challenges dns-01 --register-unsafely-without-email -d "ВашДомен.duckdns.org" -d "*.ВашДомен.duckdns.org" --agree-tos
Результатом этого действия будет сообщения типа:
Please deploy a DNS TXT record under the name:
_acme-challenge.ВашДомен.duckdns.org.
with the following value:
ds-5lpyPEf7VUnnlAmf3ZTn_noNF1mwtyxSCsLqXEtw
Мы должны скопировать эту строку и поместить в наш файл autumn-properties.yml
DDNS: # Имя настроек, должно быть точно таким же
Token: # Токен сюды, обязателен к заполнению
Domain: # Домен сюды, обязателен к заполнению
Use: # Истина, если запуск библиотеки необходим (Ложь по умолчанию)
Delay: # Значение в милисекундах, частота обновления информации в DDNS (300000мс по умолчанию)
ACMEtxt: ds-5lpyPEf7VUnnlAmf3ZTn_noNF1mwtyxSCsLqXEtw # Текст, генерируемый в certbot при создании сертификатов для SSL для ACME CHALLENGE
winow:
Порт: # Сюды необходимый порт
И запустить наш сервер. После запуска компонента зарегистрирует выданную строку в домене. Для проверки корректности регистрации можно открыть в браузере ссылку:
https://www.digwebinterface.com/?hostnames=ВашДомен.duckdns.org&type=TXT&ns=resolver&useresolver=8.8.4.4&nameservers=
В браузере вы должны увидеть вот такую строку:
ВашДомен.duckdns.org. 60 IN TXT "ds-5lpyPEf7VUnnlAmf3ZTn_noNF1mwtyxSCsLqXEtw"
Можем возвращаться в cmd и нажать на клавишу enter. Половину работы считайте что мы сделали.
Далее, поскольку вино не умеет работать с https
запросами (пока что) нам нужен прокси сервер, который обработает, расшифрует и отдаст нам готовые данные на блюдечке с голубой каемочкой. Для этого используем docker образ с nginx
на борту и научим его работать с нашими сертификатами. Кстати о них, после всех предыдущих телодвижений я советую вам пройти по пути C:\Certbot\live
и увидеть там папку с именем вашего домена, в котором будут лежить сертификаты и ключ с разрешением .pem
. Это нам понадобится для работы с nginx
.
Итак, к практике. В этом репо вы можете увидеть каталог nginx-proxy
. Вы можете клонировать это репо, или создать похожу структуру файлов и папок у себя руками, неважно. Главное чтобы там был файл docker-compose.yml
, и 2 каталога certs
и conf
, в каталоге conf
должен быть файл nginx.conf
, в каталог cert
нужно скопировать свои сертификаты с разрешением .pem
. Тело файла docker-compose.yml
и nginx.conf
можете скопировать с этого репо, для старта этого будет достаточно. В файле nginx.conf
вам надо обратить внимание на строку proxy_pass http://host.docker.internal:3333;
. Строка host.docker.internal
просит nginx
отправлять запросы в localhost
нашего компа, а порт 3333 выставлен для библиотеки вино по умолчанию. Если вы хотите кастомный порт, тогда его нужно изменить в этой строке и в файле autumn-properties.yml
. Все, запускаем main.os
, поднимаем докер с nginx
, радуемся обработке https запросов.
Да, чуть не забыл, https
по стандарту работает на порту 443, nginx
слушает именно этот порт, как видно в строке listen 443 http2 ssl;
в nginx.conf
, и строка 443:443
в docker-compose.yml
, если захотите кастомизировать, я показал вам где это делается)