Пару вопросов по настройке VPS для Telegram-бота на NodeJS
Есть Telegram-бот на NodeJS. Его нужно задеплоить на VPS-сервер.
Как это сделать правильно, а именно:
Как сделать так, чтобы бот работал не из-под root? И надо ли? Запускаю я бота с помощью пакета pm2. Как видно, если прописать
pm2 status, бот запускается с правами root (см. скриншот).Как правильно и безопасно настроить переменные окружения? Сейчас они хранятся в файле .bash_profile пользователя root.
Как настроить удобный деплой обновлений для бота? Допустим, я обновил код бота и отправил изменения на GitHub. Как мне сделать так, чтобы на VPS автоматически сохранились изменения кода?
В какой папке должен находиться Telegram-бот?
Ответы (1 шт):
Я не эксперт в области настройки и безопасности сервера, но я делал так. Если что-то не так, прошу поправить.
- Из под root нужно создать отдельного пользователя с ограниченными правами. Например, открыть доступ только к директории /home со всеми программами, ботами, серверами и т.п. Ну и затем из-под этого пользователя все запускать. Официальная документация, как это можно сделать в ubuntu: ссылка
- Переменные окружения это environment variables, вы же приводите переменные оболочки. Насколько я знаю, это какие-то системные переменные, которые работают особым образом. Не буду врать - я не знаю как они работают Для хранения токенов я использовал переменные окружения. При разработке их можно задать в .env файле, а при запуске на продакшене они задаются во время запуска вместе с командой. Пример с pm2:
pm2 start index.js TG_BOT_API=bot123123123. - Для автодеплоя можно использовать github actions. Тема обширная, но могу посоветовать вот этот гайд
- Можно и безопасно в директории home хранить. Первый пункт
