Categories: Шпаргалки

Установка и запуск potree на Linux Ubuntu

Используемые термины: Potree , Ubuntu , NGINX .

В результате выполнения рекомендаций, указанных в инструкции мы получим:

  • Серверную часть potree (viewer), которая дает возможность просмотра изображений, собранных по точкам.
  • Настроенную службу, которая будет автоматически запускать potree при включении компьютера/сервера.
  • Установленную утилиту для конвертации сырых данных в страницу для viewer.
  • Проксирование http-запросов через NGINX.

Работы будут выполняться Linux DEB (Ubuntu / Debian / Astra Linux).

Установка и запуск potree

Выполним несколько шагов для старта приложения на сервере.

Установка NODEJS

Приложение potree разработано на nodejs и для своей работы требует соответствующего пакета. Для его установки сначала настроим репозиторий, а для этого установим следующие пакеты:

apt update

apt install ca-certificates curl gnupg

* где:

  • ca-certificates — набор корневых сертификатов.
  • curl — утилита командной строки для отправки http-запросов. Позволяет загрузить файлы или отправить запрос на веб-сервер.
  • 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

Развертывание potree

Мы загрузим исходники приложения и выполним установку необходимых расширений для 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 прокси

Выполним установку и настройку веб-прокси на базе 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.

Potree Converter

Для преобразования сырого формата координат (например, файл 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 ).

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago