Help:Installation: Difference between revisions
No edit summary |
No edit summary |
||
Line 25: | Line 25: | ||
Установите PostgeSQL версии не ниже 10-й для вашей ОС следуя [https://www.postgresql.org/download/linux/redhat/ документации]. Дополнительно установите пакет postgresql-contrib из тех же репозиториев. | Установите PostgeSQL версии не ниже 10-й для вашей ОС следуя [https://www.postgresql.org/download/linux/redhat/ документации]. Дополнительно установите пакет postgresql-contrib из тех же репозиториев. | ||
Пример для Centos 7 | Пример для Centos 7<br> | ||
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm | sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm | ||
Line 59: | Line 59: | ||
После установки Svacer требуется создать пользователя и БД PostgreSQL. Для этого перейдите в пользователя postgres, запустите psql и выполните соответствующие запросы, после чего выйдите из консоли PostgreSQL и из пользователя postgres. | После установки Svacer требуется создать пользователя и БД PostgreSQL. Для этого перейдите в пользователя postgres, запустите psql и выполните соответствующие запросы, после чего выйдите из консоли PostgreSQL и из пользователя postgres. | ||
sudo su -l postgres | sudo su -l postgres | ||
psql | psql | ||
postgres=# create database svace; | postgres=# create database svace; | ||
postgres=# create user svace with encrypted password 'svace'; | postgres=# create user svace with encrypted password 'svace'; | ||
postgres=# grant all privileges on database svace to svace; | postgres=# grant all privileges on database svace to svace; | ||
postgres=# alter user svace superuser; | postgres=# alter user svace superuser; | ||
В данном примере создается БД svace и права на нее выдаются пользователю svace с паролем svace, а также этому пользователю выдаются права суперюзера (это необходимо для создания расширений в PostgreSQL). При использовании этих значений дальнейшая конфигурация не требуется и можно переходить к запуску. | В данном примере создается БД svace и права на нее выдаются пользователю svace с паролем svace, а также этому пользователю выдаются права суперюзера (это необходимо для создания расширений в PostgreSQL). При использовании этих значений дальнейшая конфигурация не требуется и можно переходить к запуску. | ||
При использовании других имен пользователя, БД или пароля потребуется дополнительная конфигурация перед запуском Svacer: в файле /etc/default/svacer нужно поменять параметры подключения к БД в строке | При использовании других имен пользователя, БД или пароля потребуется дополнительная конфигурация перед запуском Svacer: в файле '''/etc/default/svacer''' нужно поменять параметры подключения к БД в строке | ||
SVACER_ARGS="--pg postgres://<user>:<password>@127.0.0.1:5432/<database>" | '''SVACER_ARGS="--pg postgres://<user>:<password>@127.0.0.1:5432/<database>"''' | ||
В этой же строке можно указывать прочие аргументы для запуска сервера Svacer. | В этой же строке можно указывать прочие аргументы для запуска сервера Svacer. | ||
Line 76: | Line 76: | ||
После создания БД и настройки конфигурации Svacer запустить его можно следующими командами | После создания БД и настройки конфигурации Svacer запустить его можно следующими командами | ||
sudo systemctl enable svacer | sudo systemctl enable svacer | ||
sudo systemctl start svacer | sudo systemctl start svacer | ||
После чего проверить успешность запуска командой | После чего проверить успешность запуска командой | ||
systemctl status svacer | systemctl status svacer | ||
В случае успешного запуска сервер будет доступен по адресу http://localhost:8080 | В случае успешного запуска сервер будет доступен по адресу http://localhost:8080 | ||
При установке из .deb или .rpm пакета Svacer ставится в директорию, прописанную в $PATH, поэтому при запуске Svacer для импорта и загрузки результатов полный путь к исполняемому файлу svacer указывать не требуется, он будет доступен просто по имени. | При установке из .deb или .rpm пакета Svacer ставится в директорию, прописанную в $PATH, поэтому при запуске Svacer для импорта и загрузки результатов полный путь к исполняемому файлу '''svacer''' указывать не требуется, он будет доступен просто по имени. | ||
Line 91: | Line 91: | ||
Установите docker и docker-compose. Поскольку образы PostgreSQL и Svacer размещены на докер-хабе, для их скачивания при запуске необходимо наличие интернета. | Установите docker и docker-compose. Поскольку образы PostgreSQL и Svacer размещены на докер-хабе, для их скачивания при запуске необходимо наличие интернета. | ||
Используйте для запуска docker-compose файл, находящийся в дистрибутиве Svacer: ./extra/docker-compose.yml. Перейдите в директорию, где находится этот файл и выполните команду | Используйте для запуска docker-compose файл, находящийся в дистрибутиве Svacer: '''./extra/docker-compose.yml'''. Перейдите в директорию, где находится этот файл и выполните команду | ||
docker-compose up -d | docker-compose up -d | ||
При этом будет запущено два контейнера: PostgreSQL и Svacer. После запуска контейнеров веб-интерфейс Svacer будет доступен по адресу http://localhost:8080 | При этом будет запущено два контейнера: PostgreSQL и Svacer. После запуска контейнеров веб-интерфейс Svacer будет доступен по адресу http://localhost:8080 | ||
Line 108: | Line 108: | ||
Остановить сервер Svacer можно, выполнив следующую команду | Остановить сервер Svacer можно, выполнив следующую команду | ||
docker-compose down | docker-compose down | ||
Также можно запустить в докер-контейнере только PostgreSQL для последующего запуска Svacer вручную. Используйте файл ./extra/docker-compose-postgres.yml | Также можно запустить в докер-контейнере только PostgreSQL для последующего запуска Svacer вручную. Используйте файл '''./extra/docker-compose-postgres.yml''' | ||
docker-compose -f docker-compose-postgres.yml up -d | docker-compose -f docker-compose-postgres.yml up -d | ||
Чтобы остановить, соответственно | Чтобы остановить, соответственно | ||
docker-compose -f docker-compose-postgres.yml down | docker-compose -f docker-compose-postgres.yml down | ||
=== Установка и запуск вручную === | === Установка и запуск вручную === | ||
Для установки Svacer скачайте и распакуйте архив дистрибутива (файл с названием вида svacer_release-<version>.zip). | Для установки Svacer скачайте и распакуйте архив дистрибутива (файл с названием вида '''svacer_release-<version>.zip'''). | ||
При использовании PostgreSQL, предварительно настроенного на каком-либо хосте, необходимо использовать соответствующие параметры запуска. Допустим, PostgreSQL работает на локальном хосте, в нем создана БД svacer_db, доступная от пользователя svacer_user с паролем svacer123. В этом случае запустите Svacer со следующими параметрами | При использовании PostgreSQL, предварительно настроенного на каком-либо хосте, необходимо использовать соответствующие параметры запуска. Допустим, PostgreSQL работает на локальном хосте, в нем создана БД '''svacer_db''', доступная от пользователя '''svacer_user''' с паролем '''svacer123'''. В этом случае запустите Svacer со следующими параметрами | ||
./bin/svacer server --pg postgres://svacer_user:svacer123@127.0.0.1:5432/svacer_db | ./bin/svacer server --pg postgres://svacer_user:svacer123@127.0.0.1:5432/svacer_db | ||
Если вы запустили PostgreSQL в докер-контейнере, используя файл ./extra/docker-compose-postgres.yml, то при запуске Svacer параметр --pg для подключения к БД можно не указывать, поскольку был создан пользователь и база, прописанные в Svacer как параметры по умолчанию. | Если вы запустили PostgreSQL в докер-контейнере, используя файл '''./extra/docker-compose-postgres.yml''', то при запуске Svacer параметр '''--pg''' для подключения к БД можно не указывать, поскольку был создан пользователь и база, прописанные в Svacer как параметры по умолчанию. | ||
После запуска сервера его веб-интерфейс будет доступен по адресу http://localhost:8080 | После запуска сервера его веб-интерфейс будет доступен по адресу http://localhost:8080 | ||
По умолчанию web сервер запускается на интерфейсе 0.0.0.0:<port>. Для указания отличного сетевого интерфейса пользователь может использовать опцию --listen <network interface>. | По умолчанию web сервер запускается на интерфейсе '''0.0.0.0:<port>'''. Для указания отличного сетевого интерфейса пользователь может использовать опцию '''--listen <network interface>'''. | ||
По умолчанию grpc сервер запускается на интерфейсе 0.0.0.0:<port>. Для указания отличного сетевого интерфейса пользователь может использовать опцию --listen-grpc <network interface>. | По умолчанию grpc сервер запускается на интерфейсе '''0.0.0.0:<port>'''. Для указания отличного сетевого интерфейса пользователь может использовать опцию '''--listen-grpc <network interface>'''. | ||
=== Hooks === | === Hooks === | ||
Для получения данных Hooks при запуске сервера нужно указать опцию --hooks <path to JSON file>. Эта опция задаёт файл, содержащий информацию о расширении сервера посредством хуков, которые пользователь может вызывать из web-интерфейса. | Для получения данных Hooks при запуске сервера нужно указать опцию '''--hooks <path to JSON file>'''. Эта опция задаёт файл, содержащий информацию о расширении сервера посредством хуков, которые пользователь может вызывать из web-интерфейса. | ||
Каждый хук соответствует некоторому процессу или скрипту, который сервер запускает в ответ на вызов соответствующей команды из web-интерфейса. | Каждый хук соответствует некоторому процессу или скрипту, который сервер запускает в ответ на вызов соответствующей команды из web-интерфейса. | ||
Формат файла Hooks следующий: | Формат файла Hooks следующий: |
Revision as of 16:24, 6 December 2022
Установка
Для работы сервера необходим PostgreSQL. Его можно установить как пакет, либо запустить в докере — docker-compose файл для этого находится в ./extra/docker-compose-postgres.yml. Svacer сервер состоит из единственного бинарного файла — svacer. Он предоставляет как backend-часть, так и веб-сервер, который передаёт статику. По умолчанию запускается на порту 8080. После запуска по умолчанию создается учётная запись пользователя admin c паролем admin. Изменить пароль можно в веб-интерфейсе. Сервер имеет широкие возможности настройки параметров запуска. Узнать о них подробнее можно, прочитав svacer --help.
Установка и запуск из deb/rpm пакета
Процесс установки из .deb и .rpm пакетов несколько различается и будет описан ниже в отдельных главах. Процесс настройки и запуска не различается и будет описан в одной общей главе.
.deb
Скачайте .deb пакет релиза и выполните следующую команду
sudo apt install ./svacer_<version>_amd64.deb
При этом, если в репозиториях есть PostgreSQL нужной версии, он будет установлен автоматически. Если нет, то установка завершится с ошибкой о зависимости от PostgreSQL. В этом случае вам надо будет установить PostgreSQL версии не ниже 10-й (см. документацию), после чего повторить установку Svacer.
.rpm
Установите PostgeSQL версии не ниже 10-й для вашей ОС следуя документации. Дополнительно установите пакет postgresql-contrib из тех же репозиториев.
Пример для Centos 7
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo yum install -y postgresql14-server postgresql14-contrib sudo /usr/pgsql-14/bin/postgresql-14-setup initdb sudo systemctl enable postgresql-14 sudo systemctl start postgresql-14
Для версий PostgreSQL ниже 13-й требуется явно разрешить подключение к локальному хосту базы с логином/паролем. Для этого проверьте следующие строчки в конце файла /var/lib/pgsql/<version>/data/pg_hba.conf
# IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident
В случае если в последнем столбце указано значение ident, поменяйте его на md5 и перезапустите PostgreSQL.
sudo systemctl restart postgresql-12
Скачайте .rpm пакет релиза Svacer и выполните следующую команду
sudo yum install ./svacer-<version>.x86_64.rpm
Настройка и запуск
Процесс настройки и запуска одинаковый для Svacer установленного из .deb и .rpm пакетов.
В процессе установки создаются следующие файлы и директории
- /etc/default/svacer — конфигурационный файл
- /var/log/svacer — директория для логов
- /var/lib/svacer — директория для object store
После установки Svacer требуется создать пользователя и БД PostgreSQL. Для этого перейдите в пользователя postgres, запустите psql и выполните соответствующие запросы, после чего выйдите из консоли PostgreSQL и из пользователя postgres.
sudo su -l postgres psql postgres=# create database svace; postgres=# create user svace with encrypted password 'svace'; postgres=# grant all privileges on database svace to svace; postgres=# alter user svace superuser;
В данном примере создается БД svace и права на нее выдаются пользователю svace с паролем svace, а также этому пользователю выдаются права суперюзера (это необходимо для создания расширений в PostgreSQL). При использовании этих значений дальнейшая конфигурация не требуется и можно переходить к запуску.
При использовании других имен пользователя, БД или пароля потребуется дополнительная конфигурация перед запуском Svacer: в файле /etc/default/svacer нужно поменять параметры подключения к БД в строке
SVACER_ARGS="--pg postgres://<user>:<password>@127.0.0.1:5432/<database>"
В этой же строке можно указывать прочие аргументы для запуска сервера Svacer.
После создания БД и настройки конфигурации Svacer запустить его можно следующими командами
sudo systemctl enable svacer sudo systemctl start svacer
После чего проверить успешность запуска командой
systemctl status svacer
В случае успешного запуска сервер будет доступен по адресу http://localhost:8080
При установке из .deb или .rpm пакета Svacer ставится в директорию, прописанную в $PATH, поэтому при запуске Svacer для импорта и загрузки результатов полный путь к исполняемому файлу svacer указывать не требуется, он будет доступен просто по имени.
Запуск в docker
Установите docker и docker-compose. Поскольку образы PostgreSQL и Svacer размещены на докер-хабе, для их скачивания при запуске необходимо наличие интернета.
Используйте для запуска docker-compose файл, находящийся в дистрибутиве Svacer: ./extra/docker-compose.yml. Перейдите в директорию, где находится этот файл и выполните команду
docker-compose up -d
При этом будет запущено два контейнера: PostgreSQL и Svacer. После запуска контейнеров веб-интерфейс Svacer будет доступен по адресу http://localhost:8080
В процессе запуска в текущей директории будут созданы две директории
- postgres_data — для хранения БД PostgreSQL
- svacer_data — для object store сервера Svacer
Эти директории будут примонтированы в соответствующие контейнеры как volumes, это необходимо для сохранения данных БД и сервера после остановки или перезапуска контейнеров.
Важное уточнение: в докере запускается только сервер Svacer. Для импорта и загрузки результатов на сервер будет нужен исполняемый файл svacer.
Остановить сервер Svacer можно, выполнив следующую команду
docker-compose down
Также можно запустить в докер-контейнере только PostgreSQL для последующего запуска Svacer вручную. Используйте файл ./extra/docker-compose-postgres.yml
docker-compose -f docker-compose-postgres.yml up -d
Чтобы остановить, соответственно
docker-compose -f docker-compose-postgres.yml down
Установка и запуск вручную
Для установки Svacer скачайте и распакуйте архив дистрибутива (файл с названием вида svacer_release-<version>.zip).
При использовании PostgreSQL, предварительно настроенного на каком-либо хосте, необходимо использовать соответствующие параметры запуска. Допустим, PostgreSQL работает на локальном хосте, в нем создана БД svacer_db, доступная от пользователя svacer_user с паролем svacer123. В этом случае запустите Svacer со следующими параметрами
./bin/svacer server --pg postgres://svacer_user:svacer123@127.0.0.1:5432/svacer_db
Если вы запустили PostgreSQL в докер-контейнере, используя файл ./extra/docker-compose-postgres.yml, то при запуске Svacer параметр --pg для подключения к БД можно не указывать, поскольку был создан пользователь и база, прописанные в Svacer как параметры по умолчанию.
После запуска сервера его веб-интерфейс будет доступен по адресу http://localhost:8080 По умолчанию web сервер запускается на интерфейсе 0.0.0.0:<port>. Для указания отличного сетевого интерфейса пользователь может использовать опцию --listen <network interface>. По умолчанию grpc сервер запускается на интерфейсе 0.0.0.0:<port>. Для указания отличного сетевого интерфейса пользователь может использовать опцию --listen-grpc <network interface>.
Hooks
Для получения данных Hooks при запуске сервера нужно указать опцию --hooks <path to JSON file>. Эта опция задаёт файл, содержащий информацию о расширении сервера посредством хуков, которые пользователь может вызывать из web-интерфейса. Каждый хук соответствует некоторому процессу или скрипту, который сервер запускает в ответ на вызов соответствующей команды из web-интерфейса. Формат файла Hooks следующий: {
"hooks": [ { "id": "<id>", "label": "<label >", "target": "<target>", "input": ["<param1>", "<param2>",…], "cmd": "<path to executable>", "args": ["<arg1>", “<arg2>”, …] },
….
]
}
Параметры Hooks
Параметр | Описание |
---|---|
id | Идентификатор хука. Должен быть уникальным в файле |
label | Имя команды, которую пользователь видит в web-интерфейсе |
target | Место в UI, в которое будет добавлена команда. Сейчас поддерживается только одно значение — default. Оно соответствует вкладке Details на правой панели пользовательского интерфейса |
input | Параметры, которые можно передать в запускаемый процесс, исходя из контекста вызова команды в web-интерфейсе. Поддерживаемые значения:
|
cmd | Полный путь к процессу, который будет запущен. Не должен включать аргументы запуска |
args | Аргументы, передаваемые в запускаемый процесс. Полный список аргументов запускаемого процесса состоит из списка <args> и списка значений, соответствующих полю <input> |