acme.sh:curl https://get.acme.sh | sh
acme.sh --issue -d example.com -w /var/www/example
Где:
acme.sh --install-cert -d example.com \
--key-file /etc/ssl/private/example.key \
--fullchain-file /etc/ssl/certs/example.crt \
--reloadcmd "sudo systemctl reload nginx"
Добавьте в конфигурацию nginx:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/certs/example.crt;
ssl_certificate_key /etc/ssl/private/example.key;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Перезагрузите nginx:
sudo systemctl reload nginx
Соберите проект:
npm run build
Запустите с помощью pm2 (рекомендуется для продакшена): Если pm2 не установлен, то установите его:
npm install -g pm2
Запустите сам процесс:
pm2 start dist/index.js --name "umbot-production"
Для того чтобы после перезагрузки сервера приложение было доступно, выполните следующие команды:
pm2 startup
pm2 save
Теперь ваш навык доступен по HTTPS и готов к подключению в консолях разработчика:
bot.start('0.0.0.0', 3000);
См. (Универсальный webhook-обработчик.)[https://www.maxim-m.ru/bot/ts-doc/bot/ts-doc/documents/src_docs_platform-integration.md]
При создании проекта через CLI с флагом --prod, генерируется Dockerfile. Пример запуска:
docker build -t my-bot .
docker run -p 3000:3000 -e YANDEX_TOKEN=... my-bot
Шаблон .github/workflows/deploy.yml автоматически настраивает:
🔐 Безопасность: никогда не коммитьте .env в Git. Используйте GitHub Secrets.