From bcd2ca49e12b1d236befcfbe6b8c0b2cff6c5004 Mon Sep 17 00:00:00 2001
From: Alexey Berezhok
Date: Wed, 1 Jul 2026 23:00:40 +0300
Subject: [PATCH] Init
---
.gitignore | 1 +
...nager-plugin-nginx_mod_rewrite_plugin.spec | 35 ++++++++++++
.../mgr5/addon/nginx_mod_rewrite_plugin.py | 57 +++++++++++++++++++
.../ispmgr/nginx_mod_rewrite_plugin.xml | 13 +++++
.../ispmgr_mod_nginx_mod_rewrite_plugin.xml | 34 +++++++++++
5 files changed, 140 insertions(+)
create mode 100644 .gitignore
create mode 100644 ispmanager-plugin-nginx_mod_rewrite_plugin.spec
create mode 100755 usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py
create mode 100644 usr/local/mgr5/etc/plugins/ispmgr/nginx_mod_rewrite_plugin.xml
create mode 100644 usr/local/mgr5/etc/xml/ispmgr_mod_nginx_mod_rewrite_plugin.xml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ceeb05b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/tmp
diff --git a/ispmanager-plugin-nginx_mod_rewrite_plugin.spec b/ispmanager-plugin-nginx_mod_rewrite_plugin.spec
new file mode 100644
index 0000000..a61db18
--- /dev/null
+++ b/ispmanager-plugin-nginx_mod_rewrite_plugin.spec
@@ -0,0 +1,35 @@
+Name: ispmanager-plugin-nginx_mod_rewrite_plugin
+Version: 0.0.1
+Release: 1%{?dist}
+Summary: Модуль nginx mod_rewrite
+License: Apache License 2.0
+URL: https://github.com/bayrepo/ngx_http_apache_rewrite_module
+Source0: %{name}-%{version}.tar.gz
+BuildRequires: wget
+
+%description
+Модуль добавления поддержки mod_rewrite правил и .htaccess в nginx
+
+%prep
+%setup -q
+
+%build
+# nothing to build
+
+%install
+mkdir -p %{buildroot}/usr/local/mgr5/etc/plugins/ispmgr
+mkdir -p %{buildroot}/usr/local/mgr5/addon
+cp -a ispmgr/* %{buildroot}/usr/local/mgr5/etc/plugins/ispmgr/
+cp -a nginx_mod_rewrite_plugin.py %{buildroot}/usr/local/mgr5/addon/
+mkdir -p %{buildroot}/usr/local/ispmanager-mod_rewrite
+wget -O %{buildroot}/usr/local/ispmanager-mod_rewrite/mod_rewrite.zip https://github.com/bayrepo/ngx_http_apache_rewrite_module/archive/refs/heads/main.zip
+
+%files
+/usr/local/mgr5/etc/xml/ispmgr_mod_nginx_mod_rewrite_plugin.xml
+/usr/local/mgr5/etc/plugins/ispmgr/nginx_mod_rewrite_plugin.xml
+%attr(700, root, root) /usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py
+%attr(600, root, root) /usr/local/ispmanager-mod_rewrite/mod_rewrite.zip
+
+%changelog
+* Mon Jun 29 2026 Alexey BayRepo - 0.0.1-1
+- Initial release
diff --git a/usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py b/usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py
new file mode 100755
index 0000000..fbf2f0e
--- /dev/null
+++ b/usr/local/mgr5/addon/nginx_mod_rewrite_plugin.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python3
+
+import os
+import xml.etree.ElementTree as etree
+from sys import stdin
+
+
+def CheckModuleExists():
+ module_path = '/usr/share/nginx/modules/ngx_http_apache_rewrite_module.conf'
+ if os.path.isfile(module_path):
+ return 'mod_rewrite already installed'
+ return None
+
+def InstallModule():
+ #Todo func
+ return None
+
+# Обработка нажатия на кнопку "Сохранить"
+def Handle(root):
+ result = True
+ result_error = CheckModuleExists()
+ if result_error is None:
+ result_error = InstallModule()
+ result = result_error is None
+
+ if not result:
+ # Формирование сообщения об ошибке согласно структуре в metadata
+ error = etree.SubElement(root, "error")
+ error.set('code', '1')
+ error.set('type', 'nginx_mod_rewrite_plugin')
+ error.set('object', 'wrong_value')
+ param = etree.SubElement(error, 'param')
+ param.text = 'wrong_value'
+ param.set('name', 'object')
+ param.set('type', 'msg')
+ param = etree.SubElement(error, 'param')
+ param.set('name', 'value')
+ param.text = result_error
+
+
+if __name__ == "__main__":
+ func = os.getenv("PARAM_func")
+ correct_function = False
+
+ if func == "nginx_mod_rewrite_plugin.settings":
+ correct_function = True
+ elif func == "plugin.settings":
+ if os.getenv("PARAM_plugin_settings") == "nginx_mod_rewrite_plugin":
+ correct_function = True
+ root = etree.parse(stdin).getroot()
+
+ if correct_function:
+ if os.getenv("PARAM_clicked_button") == "ok":
+ Handle(root)
+
+ etree.dump(root)
+ quit(0)
diff --git a/usr/local/mgr5/etc/plugins/ispmgr/nginx_mod_rewrite_plugin.xml b/usr/local/mgr5/etc/plugins/ispmgr/nginx_mod_rewrite_plugin.xml
new file mode 100644
index 0000000..d260345
--- /dev/null
+++ b/usr/local/mgr5/etc/plugins/ispmgr/nginx_mod_rewrite_plugin.xml
@@ -0,0 +1,13 @@
+
+
+
+ 1
+
+ nginx_mod_rewrite_plugin.settings
+ Модуль nginx mod_rewrite
+ Модуль добавления поддержки mod_rewrite правил и .htaccess в nginx<br/><a href="https://github.com/bayrepo/ngx_http_apache_rewrite_module" target="_blank">Документация по настройкам модуля</a>
+
+
diff --git a/usr/local/mgr5/etc/xml/ispmgr_mod_nginx_mod_rewrite_plugin.xml b/usr/local/mgr5/etc/xml/ispmgr_mod_nginx_mod_rewrite_plugin.xml
new file mode 100644
index 0000000..08a9551
--- /dev/null
+++ b/usr/local/mgr5/etc/xml/ispmgr_mod_nginx_mod_rewrite_plugin.xml
@@ -0,0 +1,34 @@
+
+
+
+ 1
+ nginx_mod_rewrite_plugin.settings
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Установка модуля для nginx
+ Данный плагин установит ряд пакетов для сборки модуля nginx
+ Собрать модуль и установить хук на пересборку
+ << Отменить сборку
+
+
+ Ошибка модуля: __object__
+ __value__
+
+
+