diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js index e5b0761..06c16a4 100644 --- a/docs/.vitepress/config.js +++ b/docs/.vitepress/config.js @@ -150,6 +150,7 @@ function sidebarDocs() { collapsed: false, items: [ { text: 'PHP cli селектор', link: '/docs/extensions/php-cli-selector.md' }, + { text: 'Расширенные модули', link: '/docs/extensions/extended-modules.md' }, ], }, ]; diff --git a/docs/docs/extensions/extended-modules.md b/docs/docs/extensions/extended-modules.md new file mode 100644 index 0000000..a59f5f2 --- /dev/null +++ b/docs/docs/extensions/extended-modules.md @@ -0,0 +1,150 @@ +# Расширенные модули + +## Что такое модули + +Модули расширения панели позволяют расширять функционал панели. + +## Как управлять модулями + +Для доступа к модулям расширения необходимо из-под пользователя `admin` перейти в `Настройки сервера`: + +![ext_modules_step1](/images/ext_modules_step1.png) + +Далее в строке выбора настроек выбрать `Доп. модули`: + +![ext_modules_step2](/images/ext_modules_step2.png) + +Далее откроется страинца достпных модулей и их сотояния. + +Пример страницы с демонстрационными модулями приведен ниже: + +![ext_modules_step3](/images/ext_modules_step3.png) + +Данная страница содержит следующую информацию: + +- **ID модуля** - числовой идентификатор модуля +- **Имя модуля** - сивольный идентификатор модуля +- **Описание модуля** - краткая ифнормация о модуле +- **Состояние** - включен(enabled) или выключен(disabled) +- **Зависимости** - список модулей, которые должны быть включены для работы текущего модуля +- **Конфигурация** - дополнительные настройки модуля (при наличии) + +Если модуль выключен, его состояние отображается как disabled. + +Для включения модуля необходимо нажать на кнопку , для выключения модуля необходимо нажать на кнопку . + +## Список предустановленных модулей + +- **puppet_installer** - установить puppet, для большинства модулей требуется puppet для изменения конфигурации системы, поэтому требуется, чтоб этот модуль был включен, при включении он установит puppet в систему. +- **empty_module** - пустой модуль, его включение или выключение не начто не влияет, является примером написания модулей +- **passenger_manager** - модуль по установке и настройке passenger в систему. + +## Управление модулями из командной строки + +Для управления модулями используется утилита `v-ext-modules`. + +Доступные команды: + +- **list** - вывести список доступных модулей +- **enable module_name** - включить модуль +- **disable module_name** - выключить модуль +- **state module_name** - состояние модуля + +Примеры: + +``` +# v-ext-modules list csv +1,puppet_installer,"Added puppet support, needed for another modules","","",enabled +2,passenger_manager,Added passenger support for nginx,puppet_installer,yes,enabled +3,empty_module,Just empty module for storing max module id,"","",disabled +``` + +``` +# v-ext-modules state passenger_manager + ID NAME DESCR STATE REQ CONF + -- ---- ----- ----- --- ---- + 2 passenger_manager Added passenger support for nginx enabled puppet_installer yes +``` + +## passenger_manager + +Модуль, для добавления поддержки passenger+nginx для запуска (пока что только) ruby приложений. + +### passenger_manager настройка + +Для настройки модуля нажмите на ссылку `Изменить`: + +![ext_modules_step4](/images/ext_modules_step4.png) + +Откроется страница вида: + +![ext_modules_step5](/images/ext_modules_step5.png) + +- **Добавить новый путь ruby** - добавить путь к бинарному файлу интерпретатору ruby, если его еще нет в списке ниже +- **Ruby list** - список достпных для выбора ruby интерпретаторов. Для удаления ruby из списка необходимо нажать на значек . + +При активации `passenger_manager` в меню настройки домена для пользователя появляется кнопка `Настройки passenger`: + +![ext_modules_step6](/images/ext_modules_step6.png) + +При нажатии на которую открывается форма: + +![ext_modules_step7](/images/ext_modules_step7.png) + +Где можно активировать passenger для домена установкой галочки `Включить passenger для домена`, а так же выбрать из списка ruby. + +Галочка `Включить логирование в браузер`, активирует вывод лога ошибки приложения в браузер, рекомендуется ее включать только при настройке приложения. + +Пример установки приложения: + +пусть есть пользователь `test2` и домен `ttt142.my.brp`, для него активируется passenger. + +Для него генерируются следующие настройки: + +``` +location / { + passenger_base_uri /; + passenger_app_root /home/test2/web/ttt142.my.brp/private; + passenger_document_root /home/test2/web/ttt142.my.brp/public_html; + passenger_startup_file config.rb; + passenger_app_type rack; +} +``` + +В `config.rb` необходимо поместить инструкции запуска приложения: + +``` +# encoding: UTF-8 +require './test' +run Sinatra::Application +``` + +и соновное приложение разметсить в каталоге `/home/test2/web/ttt142.my.brp/private`. + +Остальная логика будет размещена в `test.rb`, для примера вот так: + +``` +!/usr/bin/env ruby + +require 'sinatra' +get '/' do + "Hello #{Process.uid}" +end +``` + +Статические файлы располагать в каталоге `/home/test2/web/ttt142.my.brp/public_html`, а так же из этого каталога удалить файл `index.html` создаваемый как заглушка для пустого сайта. + +Так же создать файл `Gemfile` в каталоге `/home/test2/web/ttt142.my.brp/private` и выполнить от пользователя: + +``` +bundle config set --local path 'vendor' +bundle install +``` + +или по старому: + +``` +bundle install --path=vendor +``` + +для установки пользователю необходимых гемов локально. \ No newline at end of file diff --git a/docs/docs/index.md b/docs/docs/index.md index e22a638..b32587f 100644 --- a/docs/docs/index.md +++ b/docs/docs/index.md @@ -59,4 +59,4 @@ ## Дополнения - [PHP cli селектор](/docs/extensions/php-cli-selector.md') - +- [Расширенные модули](/docs/extensions/extended-modules.md') diff --git a/docs/docs/server-administration/web-templates.md b/docs/docs/server-administration/web-templates.md index 7888578..b627203 100644 --- a/docs/docs/server-administration/web-templates.md +++ b/docs/docs/server-administration/web-templates.md @@ -83,13 +83,13 @@ cp original.sh new.sh ## Установка модулей PHP ```bash -apt install php-package-name +dnf install php-package-name ``` Например, следующая команда установит `php-memcached` и `php-redis`, включая необходимые дополнительные пакеты для PHP. ```bash -apt install php-memcached php-redis +dnf install php-memcached php-redis ``` ## Nginx FastCGI Cache @@ -102,12 +102,6 @@ FastCGI применяется только для сервера Nginx + PHP-FP Кэш FastCGI лучше всего подходит для сайтов, получающих много запросов и страницы которых не так часто меняются, например, новостной сайт. Для более динамичных сайтов могут потребоваться изменения в конфигурации или полное его отключение. -### Почему программные пакеты x и y не работают с кэшем FastCGI - -Поскольку у нас более 20 различных шаблонов, и мы не используем их все, мы решили прекратить выпуск новых в будущем и надеемся, что сообщество поможет улучшить шаблоны, [отправив запрос на извлечение](https://github.com/hestiacp/hestiacp/pulls). - -Если вы хотите добавить поддержку определенного шаблона, следуйте инструкциям ниже. - ### Как включить кэш FastCGI для моего пользовательского шаблона Найдите блок, в котором вы вызываете `fastcgi_pass`: @@ -153,7 +147,7 @@ v-purge-nginx-cache user domain.tld Да, Hestia отлично работает с веб-сокетами, однако наши шаблоны по умолчанию включают по умолчанию: ```bash -proxy_hide_header Обновление +proxy_hide_header Upgrade ``` Это решило проблему с загрузкой веб-сайтов Safari. diff --git a/docs/docs/user-guide/web-domains.md b/docs/docs/user-guide/web-domains.md index a733a55..b99f324 100644 --- a/docs/docs/user-guide/web-domains.md +++ b/docs/docs/user-guide/web-domains.md @@ -123,8 +123,12 @@ Здесь также будут отображаться любые пользовательские шаблоны. +- **srvproxy**: шаблон для конфигурации прокси для любого внутреннего сервиса, например gitea, который запускается и присоединеятся к порту или создает unix-сокет. При выборе данного шаблона, появляется дополнительное поле `Установить порт для локального сервиса`, в котором нужно указать путь к unix-сокету или порт внутреннего сервиса. В качестве шаблона Backend в данном случае можно выбрать `no-php`, т.к. в данном случае бакэндом будет сервис. + +![domain_proxy](/images/proxy_domain.png) + ::: tip -Любые пользовательские шаблоны, начинающиеся с `caching-`, позволят использовать кнопку ** Очистить кэш Nginx**. Убедитесь, что файл `.sh` существует для `caching-my-template` с как минимум [этим содержимым](https://github.com/hestiacp/hestiacp/blob/main/install/deb/templates/web/nginx/caching.sh) +Любые пользовательские шаблоны, начинающиеся с `caching-`, позволят использовать кнопку ** Очистить кэш Nginx**. Убедитесь, что файл `.sh` существует для `caching-my-template` с как минимум [этим содержимым](https://dev.brepo.ru/bayrepo/hestiacp/raw/branch/master/install/rpm/templates/web/nginx/caching.sh) ::: ### Веб-шаблоны diff --git a/docs/public/images/ext_modules_step1.png b/docs/public/images/ext_modules_step1.png new file mode 100644 index 0000000..6deb3be Binary files /dev/null and b/docs/public/images/ext_modules_step1.png differ diff --git a/docs/public/images/ext_modules_step2.png b/docs/public/images/ext_modules_step2.png new file mode 100644 index 0000000..f818a4b Binary files /dev/null and b/docs/public/images/ext_modules_step2.png differ diff --git a/docs/public/images/ext_modules_step3.png b/docs/public/images/ext_modules_step3.png new file mode 100644 index 0000000..549289f Binary files /dev/null and b/docs/public/images/ext_modules_step3.png differ diff --git a/docs/public/images/ext_modules_step4.png b/docs/public/images/ext_modules_step4.png new file mode 100644 index 0000000..a0fc3b1 Binary files /dev/null and b/docs/public/images/ext_modules_step4.png differ diff --git a/docs/public/images/ext_modules_step5.png b/docs/public/images/ext_modules_step5.png new file mode 100644 index 0000000..cafd33a Binary files /dev/null and b/docs/public/images/ext_modules_step5.png differ diff --git a/docs/public/images/ext_modules_step6.png b/docs/public/images/ext_modules_step6.png new file mode 100644 index 0000000..75be000 Binary files /dev/null and b/docs/public/images/ext_modules_step6.png differ diff --git a/docs/public/images/ext_modules_step7.png b/docs/public/images/ext_modules_step7.png new file mode 100644 index 0000000..460c8cd Binary files /dev/null and b/docs/public/images/ext_modules_step7.png differ diff --git a/docs/public/images/proxy_domain.png b/docs/public/images/proxy_domain.png new file mode 100644 index 0000000..42d650e Binary files /dev/null and b/docs/public/images/proxy_domain.png differ diff --git a/src/rpm/hestia/hestia.spec b/src/rpm/hestia/hestia.spec index ff6eb00..9327e8f 100644 --- a/src/rpm/hestia/hestia.spec +++ b/src/rpm/hestia/hestia.spec @@ -2,7 +2,7 @@ %global _hardened_build 1 Name: hestia -Version: 1.8.6 +Version: 1.9.1 Release: 1%{dist} Summary: Hestia Control Panel Group: System Environment/Base @@ -187,6 +187,11 @@ fi %{_tmpfilesdir}/%{name}.conf %changelog +* Mon Dec 30 2024 Alexey Berezhok - 1.9.1-1 +- Added port specification ofor local services on domain editing +- Added support extended modules +- Added support passenger with nginx and ruby + * Thu Sep 05 2024 Alexey Berezhok - 1.8.6-1 - Fixed firewall rules restoring on system reboot diff --git a/web/locale/README b/web/locale/README index fdd2b91..c4ec088 100644 --- a/web/locale/README +++ b/web/locale/README @@ -26,4 +26,8 @@ ``` получаем файл ru/LC_MESSAGES/hestiacp.po.new +## Обновление mo файла после добавления локализации +``` +./hst_convert_po2mo.sh ru +```