Skip to content

Инструкция по подготовке проверочного экземпляра (VPN + SSH)

Доступ предоставляется через OpenVPN + SSH к хосту с установленным PRIMO CORE. Веб-интерфейс (http://192.168.1.112/) открыт для пользователя admin с паролем 1111.

Предварительные требования

  • Файл подключения OpenVPN (*.ovpn).
  • SSH-доступ к хосту в VPN.
  • Пользователь: meristem (приложение и сервисы запускаются из его домашней директории), с паролем 1111.
  • Права на чтение systemd-журналов, проверку сетевых портов и содержимого каталога /home/meristem/primocore.

Подключение

1) VPN (OpenVPN)

sudo openvpn --config primo-core.ovpn --auth-user-pass
Убедитесь, что маршруты к внутренней сети поднялись (ip route, ping <vpn-gateway>).

2) SSH

ssh meristem@192.168.1.112
При первом подключении подтвердите fingerprint.

Структура ПО на хосте

  • Репозиторий: /home/meristem/primocore
  • Виртуальное окружение: /home/meristem/primocore/env (активация source env/bin/activate)
  • Код и сервисы: service/, modules/, web/, dev/
  • Конфигурации: conf/*.json (режимы, калибровки, подсистемы)
  • Логи: logs/*.log
  • Системные юниты: __build/*.service (симлинки в /etc/systemd/system/)
  • Статические файлы и шаблоны: web/static, web/templates

Контейнеризация не используется; все компоненты работают как отдельные процессы под управлением systemd.

Ключевые сервисы (systemd)

  • pub-meristem.service — публикация данных в MQTT, service/pub.py, окружение /home/meristem/primocore/env.
  • recv-meristem.service — приём команд из MQTT, service/recv.py, то же окружение.
  • web-meristem.service — uWSGI + Flask (uwsgi.ini), фронт через Nginx.
  • light-meristem.service — управление освещением, service/light.py.
  • nutrient-meristem.service — регулировка pH/EC, service/nutrient.py.
  • aqua-meristem.service — подача раствора, service/aqua.py.
  • Сторонние процессы: Mosquitto (MQTT брокер), Nginx (reverse-proxy).

Быстрая проверка экземпляра

cd /home/meristem/primocore
ls conf logs service web modules
systemctl status pub-meristem.service recv-meristem.service web-meristem.service
systemctl status light-meristem.service aqua-meristem.service
journalctl -u web-meristem.service -n 200
- Проверка брокера: sudo ss -lntp | grep 1883 (MQTT) и grep 9001 (WebSocket). - Проверка веб-фронта: curl -I http://localhost (должен отвечать 200/302). Авторизация в UI: логин admin, пароль 1111.

Критерии готовности проверочного стенда

  • Все systemd-юниты в состоянии active (running) и включены в автозапуск (systemctl is-enabled <service>).
  • Mosquitto слушает порты 1883 и 9001, Nginx/uWSGI отвечает локально.
  • Конфигурации актуальны для сценария проверки (verification: true при необходимости, корректные режимы подсистем).
  • Логи обновляются и не содержат критических ошибок (tail -f logs/web-meristem-*.log, tail -f logs/api-meristem-*.log).