Размещение навыка на своем сервере
Есть множество вариантов размещения навыка на собственном сервере. Пример навыка на Python адаптирован для размещения при помощи менеджера контейнеров Dokku.
Примечание. Помните, что для размещения навыка на собственном сервере у вас должен быть домен.
Подготовка
Установите Dokku одним из методов:
Для систем на Debian введите командуwget https://raw.githubusercontent.com/dokku/dokku/v0.26.8/bootstrap.sh; sudo DOKKU_TAG=v0.26.8 bash bootstrap.sh
СкопированоУстановка длится 5–10 минут.
- Установите SSH-ключ. Перед выполнением следующей команды убедитесь, что ключ уже доступен в файле
~/.ssh/authorized_keys
.cat ~/.ssh/authorized_keys | dokku ssh-keys:add admin
Скопировано - Настройте виртуальный хост. Вместо
example.com
укажите домен, к которому у вас есть доступ и который содержитA record
илиCNAME
, указывающий на IP вашего сервера.dokku domains:set-global example.com
СкопированоВы также можете использовать IP вашего сервера.
dokku domains:set-global 10.0.0.2
Скопировано
Размещение веб-приложения
Подробнее о размещении приложения читайте в документации Dokku.
- Разверните приложение. Скачайте или скопируйте исходный код примера из GitHub-репозитория Яндекса. Для этого на вашем сервере должен быть включен SSH-доступ к github.
git clone https://github.com/yandex/alice-skills/tree/master/python/buy-elephant/now
Скопировано - Соберите приложение.
dokku apps:create buy-elephant
Скопировано - Создайте резервные службы. Dokku не предоставляет поддержку баз данных по умолчанию, но ее можно подключить при помощи плагинов. Для установки плагинов нужно сменить пользователя на root. Например, Postgress:
sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git
СкопированоСоздайте базу данных
mydatabase
:dokku postgres:create mydatabase
СкопированоПосле установки укажите базу данных в приложении:
dokku postgres:link mydatabase buy-elephant
Скопировано - Разместите приложение.
cd buy-elephant git remote add dokku dokku@example.com:buy-elephant git push dokku main:master
СкопированоКак только размещение завершится, будет сгенерирован URL приложения. Например:
=====> Application deployed: http://buy-elephant.example.com
- Чтобы поддержать https-запросы, надо импортировать SSL-сертификаты из плагина Dokku.
dokku certs:add buy-elephant server.crt server.key
Скопировано
Добавление Webhook URL
- Перейдите в консоль разработчика навыка.
- Откройте вкладку Настройки.
- В блоке Backend в поле Webhook URL укажите URL приложения.
- Внизу страницы нажмите кнопку Сохранить.
- Проверьте работу навыка на вкладке Тестирование. Подробнее см. раздел Тестирование навыка.
Тестирование навыка
Подробнее о тестировании навыка.
- Проверьте работу навыка на вкладке Тестирование. Если все настроено правильно, появится приветствие: Привет! Купи слона!
- Отправьте сообщение и убедитесь, что навык отвечает.
- Попробуйте изменить код навыка. Откройте файл api.py в визуальном редакторе. Отредактируйте приветственную фразу: в тексте кода замените
'Привет! Купи слона!'
на'Добрый день! Не желаете купить слона?'
. - Повторно разверните приложение с помощью консольной команды:
dokku ps:rebuild buy-elephant
Скопировано - Обновите страницу на вкладке Тестирование. Проверьте изменения в навыке.
Чтобы писать более сложные навыки, ознакомьтесь с протоколом работы Яндекс Диалогов.