В этой статье рассмотрим как установить и настроить Node-Red на удаленный сервер Amazon.
Для чего это нужно?
Node-RED – это инструмент визуального программирования для интернета вещей IoT, позволяющий подключать друг к другу устройства, API и онлайн-сервисы. Для пользователей Flprog думаю будут интересны поддержка протоколов Modbus, MQTT и возможность создания ботов Telegram Viber и т.д. В общем платформа сочетает в себе гибкость и простоту в использовании, т.к. программируется визуально.
Почему Amazon AWS?
Главное для большинства стоимость использования сервиса, так вот у Amazon просто отличное соотношение цена-качество в первый год использования. Первый год после регистрации цена за 1 виртуальный сервер 0$, причем сервер имеет на борту 1 ядро 1Gb ОЗУ и 8Gb SSD. В общем не плохо для бесплатного сервера. Можете конечно выбрать любой другой сервис и благо подходящие для нас стоят они не очень дорого 100-200 рублей в месяц.
Приступим:
Зарегистрируемся на AWS
Поднимем сервер и подключимся к нему для настройки. Только в отличии от истанса указанного в этом видео нужно выбрать Ubuntu.
Рекомендую использовать для доступа по SSH Mobaxtern это вам сильно упростит дальнейшую работу.
Получилось подключиться? Тогда продолжим.
Установка Node.js
Для этого вводим в консоли команды ниже.
sudo apt-get update sudo apt-get upgrade cd ~ curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh sudo bash nodesource_setup.sh sudo apt install nodejs sudo apt install build-essential
Установили? Теперь проверяем.
nodejs -v
Вывод
v8.11.1
Устанавливаем Node-Red
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
После этого вы сможете протестировать свой экземпляр, запустив команду
node-red
После запуска Node-RED вы можете открыть сам редактор при помощи следующей команды:
http://ip-адрес-вашего-экземпляра:1880
Автозагрузка Node-Red
Чтобы не лезть в консоль каждый раз после перезапуска сервера настроим автозапуск Node-Red
sudo npm install -g pm2 sudo pm2 start `which node-red` -- -v sudo pm2 save sudo pm2 startup
sudo pm2 start node-red
Остановка Node-Red
sudo pm2 stop node-red
Перезапуск Node-Red
sudo pm2 restart node-red
Удалить Node-Red из автозагрузки
sudo pm2 delete node-red
Защита Node-RED
Теперь нужно защитить доступ к интерфейсу Node-RED с помощью пароля. Хешируйте пароль, прежде чем добавлять его в конфигурационный файл.
node-red-admin hash-pw
Команда запросит пароль. Введите его, нажмите Enter, и на экране появится хеш пароля. Скопируйте его и добавьте в файл настроек Node-RED:
nano /home/ubuntu/.node-red/settings.js
Для того чтобы поставить пароль на панель настроек
Найдите и раскомментируйте строку adminAuth (удалите // в начале строки).
В строке username укажите имя администратора, а в строку password добавьте хеш пароля.
adminAuth: { type: "credentials", users: [{ username: "admin", password: "$2a$08$Ab9prIr1M8a5a1/Zx8.B9.uIOCPe.v90ZGuZc2kAATp6BHJ/WV5KS", permissions: "*" }]
Чтобы установить пароль на dashboard раскомментируйте строки httpNodeAuth и httpStaticAuth
в строке username укажите имя пользователя, а в строку password добавьте хеш пароля.
по окончании работы с файлом нажмите ctrl+X на вопрос нажмите Y затем Enter.
Выводим Dashboard на главную страницу
Сейчас адреса у нас выглядят как http://ваш-IP:1880 для панели администратора и http://ваш-IP:1880/ui для Dashboard. Если вас все устраивает, то на этом можно и закончить. Но если хотите сделать адреса более логичными, к примеру для Dashboard http://ваш-IP и для администраторской панели http://ваш-IP/admin – то продолжим.
Установим Nginx
sudo apt install nginx sudo nano /etc/nginx/sites-enabled/default
меняем в файле после location /
на { proxy_pass http://127.0.0.1:1880; } и сохраняем.
Далее опять запускаем
sudo nano /home/ubuntu/.node-red/settings.js
расскоментируем и меняем httpAdminRoot: '/admin', ui: { path: "/" }, uiHost: "127.0.0.1",
И последняя точка это
sudo reboot
Вот и все система настроена и готова к работе. Спасибо за внимание.