Используемые термины: Potree , Ubuntu , NGINX .
В результате выполнения рекомендаций, указанных в инструкции мы получим:
Работы будут выполняться Linux DEB (Ubuntu / Debian / Astra Linux).
Развертывание potree и настройка автозапуска
Установка NodeJS
Установка potree
Настройка systemd для автозапуска сервиса
Настройка NGINX для проксирования http-запросов
Установка и использование конвертера potree
Выполним несколько шагов для старта приложения на сервере.
Приложение potree разработано на nodejs и для своей работы требует соответствующего пакета. Для его установки сначала настроим репозиторий, а для этого установим следующие пакеты:
apt update
apt install ca-certificates curl gnupg
* где:
Скачаем ключ репозитория nodejs и сохраним его в виде цепочки:
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg —dearmor -o /etc/apt/keyrings/nodesource.gpg
Создадим переменную, в качестве значения которой укажем версию устанавливаемой nodejs:
NODE_MAJOR=20
Создадим файл с настройкой репозитория nodejs:
echo «deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main» > /etc/apt/sources.list.d/nodesource.list
Обновляем кэш репозиториев и устанавливаем nodejs:
apt update
apt install nodejs
Посмотреть версию установленного пакета можно командой:
node -v
Мы загрузим исходники приложения и выполним установку необходимых расширений для nodejs.
Нам понадобится приложение git:
apt install git
Создадим каталог, где разместим исходник:
mkdir /var/www
Создадим клон проекта potree и поместим файлы в созданном каталоге:
git clone https://github.com/potree/potree.git /var/www/potree
Перейдем в него:
cd /var/www/potree
Запускаем установку зависимых модулей:
npm install
* команда npm install находит файл package.json в текущем каталоге, в котором есть список необходимых для приложения модулей nodejs. А также выполнит их установку.
Приложение готово к работе.
Мы планируем запускать приложение в качестве сервиса. Для этого создадим systemd-юнит:
vi /etc/systemd/system/potree.service
[Unit]
Description=Potree Service
After=network.target
[Service]
User=potree
Group=potree
Type=simple
ExecStart=/usr/bin/npm start
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
WorkingDirectory=/var/www/potree
[Install]
WantedBy=multi-user.target
* в нашем примере будет создан файл для сервиса potree . При запуске будет вызываться npm с аргументом start . Сам запуск будет выполнен от системной учетной записи potree .
Создадим пользователя:
useradd -r -d /var/www/potree potree
* это будет служебная учетная запись с именем potree и домашним каталогом /var/www/potree .
Разрешаем автозапуск для созданного сервиса и сразу стартуем его:
systemctl enable potree
systemctl start potree
Проверим, что сервис работает, отправив http-запрос на локальный хост и порт 1234 :
curl http://127.0.0.1:1234
Мы должны увидеть html-разметку, что говорит нам о работе сервиса.
Установка и запуск potree завершена.
Выполним установку и настройку веб-прокси на базе NGINX. Это позволит использовать более удобные URL для запроса к сервису potree.
Устанавливаем пакет nginx:
apt install nginx
После открываем конфигурационный файл:
vi /etc/nginx/sites-enabled/default
Внутри раздела server находим настройку для location / и приводим ее к виду:
location / {
proxy_pass http://127.0.0.1:1234/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
* в данном примере мы все запросы к веб-серверу проксируем на локальный узел, порт 1234 , то есть, на potree.
Проверяем конфигурацию nginx и перечитываем ее:
nginx -t && nginx -s reload
Можно попробовать перейти в браузере по адресу http://192.168.0.15/examples , где 192.168.0.15 — IP-адрес сервера potree.
Для преобразования сырого формата координат (например, файл las) в html-страницу предназначена утилита Potree Converter. Рассмотрим, как ее установить и использовать.
Устанавливаем утилиту для распаковки zip-архивов:
apt install unzip
На странице в GitHub ознакомимся с имеющимися версиями программного продукта.
Переходим во временный каталог и загружаем PotreeConverter:
cd /tmp
curl -sLO https://github.com/potree/PotreeConverter/releases/download/2.1.1/PotreeConverter_2.1.1_x64_linux.zip
* в нашем примере будет загружен конвертер версии 2.1.1.
Распакуем загруженный архив:
unzip PotreeConverter_*_x64_linux.zip
Перенесем библиотеку liblaszip.so в каталог /lib/x86_64-linux-gnu:
mv ./PotreeConverter_linux_x64/liblaszip.so /lib/x86_64-linux-gnu/
Файлы конвертера перенесем в любое место на нашем компьютере, например:
mv PotreeConverter_linux_x64 /var/www/potree/potreeconverter
* в итоге, конвертер будет находиться в каталоге /var/www/potree/potreeconverter .
Разрешим запуск файла PotreeConverter на выполнение:
chmod +x /var/www/potree/potreeconverter/PotreeConverter
Готово. Конвертер можно использовать.
Например, если у нас есть файл /tmp/Block_merge.las, мы можем его преобразовать командой:
/var/www/potree/potreeconverter/PotreeConverter /tmp/Block_merge.las -o /var/www/potree/examples/ —generate-page Block_merge
* сконвертированный файл будет сохранен в каталоге с html-файлами ( /var/www/potree/examples ).
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…