Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
Заблокированный
Регистрация
8 Янв 2025
Сообщения
209
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Всем привет... Наверное
Я открыл студию Return Games.... Вот....
Ниже можете почитать немного обо мне и еще рандом инфу....
VK для связи: @dima_twolife


Проект Ariozna RP - 50 RUB
Проект Black Russia - 25 RUB
Проект Diamond RP - 10 RUB

Форум любого проекта - 10 RUB
Сайт любого проекта - 10 RUB

Бот для пиара - 5 RUB
Бот для проверки подписки - 5 RUB
Бот для логов - 5 RUB

Дополнительный BattlePass для проекта - 15 RUB
Дополнительные / новые квесты для проекта - 15 RUB

Прошу строго не судить
 
Последнее редактирование:
Заблокированный
Регистрация
28 Дек 2024
Сообщения
302
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Всем привет... Наверное
сразу видно уверенность на все 100
Я открыл студию ReyVer Sliv.... Вот....
рекомендую почитать книги о том, как научится общается с людьми и не боятся их

Проект Ariozna RP - 50 RUB
Проект Black Russia - 25 RUB
Проект Diamond RP - 10 RUB

Форум любого проекта - 10 RUB
Сайт любого проекта - 10 RUB

Бот для пиара - 5 RUB
Бот для проверки подписки - 5 RUB
Бот для логов - 5 RUB

Дополнительный BattlePass для проекта - 15 RUB
Дополнительные / новые квесты для проекта - 15 RUB
а подробнее чутка можно что туда входит то? сервер? мод? сервер с модом? форум и т.д
 
Заблокированный
Регистрация
8 Янв 2025
Сообщения
209
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
сразу видно уверенность на все 100

рекомендую почитать книги о том, как научится общается с людьми и не боятся их


а подробнее чутка можно что туда входит то? сервер? мод? сервер с модом? форум и т.д
Мод, форум, сайт, логи, авто-пиар бот
рекомендую почитать книги о том, как научится общается с людьми и не боятся их
После хейта в сторону моего проекта "MChat" вот так приходится
 
Заблокированный
Регистрация
8 Янв 2025
Сообщения
209
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Update Arizona RP || 23.08.2025
  • Добавил остаток скинов
  • Настроил отображение CEF
  • Оптимизировал CASH
  • Исправил команду /ban (там был баг что система не успевала проверять забанен ли игрок)
 
Заблокированный
Регистрация
8 Янв 2025
Сообщения
209
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Update Site || 25.08.2025
  • Запустил в бета тестирование сайт студии
 
Команда форума
Модератор
Регистрация
4 Ноя 2024
Сообщения
1,029
Форум любого проекта - 10 RUB
OFFTOP


:love:, мне, пожалуйста, копию форума kingz.net, сделать стиль без зависимости плагинов, если плагин нужен будет, то прописать в шаблоне условие, которое будет проверять активность плагина. Еще в профиле хотелось бы, чтобы вместо вкладки "Web3" выводились сообщения профиля. Еще мне хочется, чтобы у сообщений пользователей был фон, который стоит у них на баннере профиля
изображение_2025-08-25_112920884.png
И еще главное просьба, даже условие! Нужно это все делать при помощи CSS, изменения в шаблонах я не одобряю, так как считаю, что слабаки могу изменять шаблоны и туда лезть:cautious:, настоящие проффисианалы должы все делать при помощи CSS. ТЗ все мои делание описывает, если будете браться за него, то мяукните 🥵

 
Заблокированный
Регистрация
8 Янв 2025
Сообщения
209
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
OFFTOP


:love:, мне, пожалуйста, копию форума kingz.net, сделать стиль без зависимости плагинов, если плагин нужен будет, то прописать в шаблоне условие, которое будет проверять активность плагина. Еще в профиле хотелось бы, чтобы вместо вкладки "Web3" выводились сообщения профиля. Еще мне хочется, чтобы у сообщений пользователей был фон, который стоит у них на баннере профиля
Посмотреть вложение 11984
И еще главное просьба, даже условие! Нужно это все делать при помощи CSS, изменения в шаблонах я не одобряю, так как считаю, что слабаки могу изменять шаблоны и туда лезть:cautious:, настоящие проффисианалы должы все делать при помощи CSS. ТЗ все мои делание описывает, если будете браться за него, то мяукните 🥵

жирно не будет?
 
𝚖𝚎𝚖𝚎𝚗𝚝𝚘 𝚖𝚘𝚛𝚒.
Команда форума
Администратор
Регистрация
13 Мар 2022
Сообщения
1,091
Работать за такие ценники, даже если ты начинающий pawn-разработчик == не уважать самого себя.
Студия, которую ты открыл, соберет неплатежеспособную аудиторию. Если на русском - школьников.
Не ставь фиксированные ценники. Работай в зависимости от сложности тех. задания, собирай портфолио и цени себя и свое время.
 
Заблокированный
Регистрация
8 Янв 2025
Сообщения
209
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Работать за такие ценники, даже если ты начинающий pawn-разработчик == не уважать самого себя.
Студия, которую ты открыл, соберет неплатежеспособную аудиторию. Если на русском - школьников.
Не ставь фиксированные ценники. Работай в зависимости от сложности тех. задания, собирай портфолио и цени себя и свое время.
Ладно, видимо мне все что светит - это заброс Pawn'а.
Шучу)

Эти школьники - аудитория которая приносят прибыль и актив
Это бизнес, это актив
 
Пользователь
Регистрация
11 Дек 2024
Сообщения
245
Update Arizona RP || 23.08.2025
  • Добавил остаток скинов
  • Настроил отображение CEF
  • Оптимизировал CASH
  • Исправил команду /ban (там был баг что система не успевала проверять забанен ли игрок)
Как я понял мод 2к21-22 года
 
Заблокированный
Регистрация
8 Янв 2025
Сообщения
209
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Как я понял мод 2к21-22 года
Нет, беру слитый, изменяю как могу, фикшу как могу
 
Активный
Регистрация
26 Апр 2022
Сообщения
865
2.14. Запрещено флудить, оффтопить, заниматься флеймом.
OFFTOP


:love:, мне, пожалуйста, копию форума kingz.net, сделать стиль без зависимости плагинов, если плагин нужен будет, то прописать в шаблоне условие, которое будет проверять активность плагина. Еще в профиле хотелось бы, чтобы вместо вкладки "Web3" выводились сообщения профиля. Еще мне хочется, чтобы у сообщений пользователей был фон, который стоит у них на баннере профиля
Посмотреть вложение 11984
И еще главное просьба, даже условие! Нужно это все делать при помощи CSS, изменения в шаблонах я не одобряю, так как считаю, что слабаки могу изменять шаблоны и туда лезть:cautious:, настоящие проффисианалы должы все делать при помощи CSS. ТЗ все мои делание описывает, если будете браться за него, то мяукните 🥵

Сэр, подвиньтесь, такого перспективного разработчика должен забрать я.

Так вот, мне нужен плагин чтоб я удаленно мог управлять веб-сервером из админ панели, вот ТЗ:
1. Общее описание

Плагин "Server Control Panel" предназначен для предоставления администраторам XenForo удобного интерфейса для мониторинга и базового управления ключевыми компонентами серверной инфраструктуры (веб-сервер, PHP, MySQL) напрямую из админ-панели XenForo. Цель — упростить частые операции по настройке и перезапуску сервисов, сокращая необходимость прямого доступа к SSH.

2. Версия XenForo

  • Требуемая версия: XenForo 2.3.x
3. Цели плагина

  • Обеспечить возможность перезапуска/перезагрузки веб-сервера (Apache/Nginx), PHP-FPM и MySQL.
  • Предоставить интерфейс для просмотра и изменения ключевых параметров php.ini.
  • Предоставить интерфейс для просмотра и изменения ключевых параметров my.cnf.
  • Отображать текущий статус управляемых сервисов.
  • Вести логи всех действий, выполненных через плагин.
  • Обеспечить высокий уровень безопасности, предотвращая несанкционированный доступ и потенциальные уязвимости.
4. Нефункциональные требования

  • Безопасность:
    • Все действия должны быть доступны только пользователям с соответствующими разрешениями администратора XenForo.
    • Любое выполнение системных команд (через exec, shell_exec и т.д.) должно быть крайне осторожным, с полной валидацией входных данных и использованием "белых списков" разрешенных команд/параметров.
    • Должна быть возможность указать, какие команды требуют sudo и какие пользователи могут их выполнять (путем настройки sudoers на сервере). Плагин не должен запрашивать пароль.
    • Конфигурационные файлы (пути к ним, команды перезапуска) должны храниться в защищенном месте (например, в системных настройках XenForo, а не в открытом коде).
    • Предупреждения о потенциальной опасности изменения настроек должны быть явно видны.
  • Производительность: Плагин не должен создавать чрезмерную нагрузку на сервер. Запросы к сервисам должны быть быстрыми.
  • Удобство использования (UX): Интуитивно понятный интерфейс в админ-панели XenForo, с четкими описаниями полей и действий.
  • Надежность: Устойчивость к ошибкам при выполнении команд. Четкое информирование пользователя об успехе или неудаче операции.
  • Локализация: Все текстовые элементы должны быть реализованы через систему фраз XenForo.
5. Функциональные требования

5.1. Административный интерфейс (Admin CP)


  • Новый раздел/меню: В админ-панели XenForo должен быть создан новый раздел, например, "Server Control".
  • Главная страница плагина ("Dashboard"):
    • Краткий обзор состояния всех управляемых сервисов (Web Server, PHP-FPM, MySQL).
    • Возможность быстрого перезапуска/перезагрузки для каждого сервиса.
    • Ссылки на более детальные страницы настроек каждого модуля.
  • Страница настроек плагина:
    • Настройка путей к конфигурационным файлам (e.g., /etc/php/8.x/fpm/php.ini, /etc/nginx/nginx.conf, /etc/mysql/my.cnf).
    • Настройка команд для проверки статуса сервисов (e.g., systemctl status nginx, pgrep -x php-fpm).
    • Настройка команд для перезагрузки/перезапуска сервисов (e.g., sudo systemctl reload nginx, sudo systemctl restart php8.x-fpm, sudo systemctl restart mysql).
    • Выбор типа веб-сервера (Apache/Nginx).
    • Выбор версии PHP-FPM.
    • Раздел предупреждений и рекомендаций по безопасности.
5.2. Модуль управления Web Server (Apache/Nginx)

  • Страница: "Server Control -> Web Server"
  • Отображение статуса:
    • Текущий статус сервиса (работает/остановлен/ошибка).
    • Дополнительная информация (PID, время работы, нагрузка — если доступно через команду статуса).
  • Действия:
    • Перезагрузить (Reload): Мягкая перезагрузка конфигурации без остановки сервиса.
    • Перезапустить (Restart): Полная остановка и повторный запуск сервиса.
    • Остановить (Stop): Полная остановка сервиса (с предупреждением).
    • Запустить (Start): Запуск остановленного сервиса.
  • Отображение конфигурации (read-only): Возможность просмотреть содержимое основного конфигурационного файла веб-сервера (например, nginx.conf или httpd.conf). Только для чтения.
5.3. Модуль управления PHP (PHP-FPM)

  • Страница: "Server Control -> PHP"
  • Отображение статуса:
    • Текущий статус сервиса PHP-FPM.
    • Текущая используемая версия PHP.
  • Просмотр и изменение php.ini параметров:
    • Список ключевых параметров, которые можно редактировать (через xf:eek:ption_group или кастомный интерфейс):
      • upload_max_filesize
      • post_max_size
      • memory_limit
      • max_execution_time
      • max_input_vars
      • display_errors (с предупреждением о безопасности для production)
      • error_reporting
      • date.timezone
      • Другие, часто используемые.
    • Каждый параметр должен быть представлен в виде формы ввода с текущим значением и возможностью его изменения.
    • После изменения параметров должна быть кнопка "Сохранить и перезапустить PHP-FPM".
  • Действия:
    • Перезапустить PHP-FPM: Полная остановка и повторный запуск сервиса для применения новых настроек.
  • Кэширование PHP: Возможность очистки opcache (если используется и команда доступна).
5.4. Модуль управления MySQL

  • Страница: "Server Control -> MySQL"
  • Отображение статуса:
    • Текущий статус сервиса (работает/остановлен/ошибка).
    • Версия MySQL/MariaDB.
  • Просмотр и изменение my.cnf параметров:
    • Список ключевых параметров, которые можно редактировать (через xf:eek:ption_group или кастомный интерфейс):
      • max_connections
      • innodb_buffer_pool_size
      • query_cache_size (если используется)
      • wait_timeout
      • interactive_timeout
      • key_buffer_size
      • Другие, часто используемые.
    • Каждый параметр должен быть представлен в виде формы ввода с текущим значением и возможностью его изменения.
    • После изменения параметров должна быть кнопка "Сохранить и перезапустить MySQL".
  • Действия:
    • Перезапустить MySQL: Полная остановка и повторный запуск сервиса для применения новых настроек.
5.5. Общие функции

  • Логирование действий:
    • Каждое действие (перезапуск, изменение параметра, попытка выполнения команды) должно быть записано в журнал.
    • Журнал должен содержать: дату/время, администратора, тип действия, измененный параметр (если применимо), результат (успех/ошибка), полный вывод команды (если есть).
    • Интерфейс для просмотра журнала в админ-панели.
  • Система разрешений:
    • Интеграция с системой разрешений администраторов XenForo. Возможность назначать, какие группы администраторов могут управлять каждым из сервисов или выполнять определенные действия.
  • Валидация:
    • Строгая валидация всех пользовательских вводов (числовые значения, строки, пути к файлам).
    • Проверка существования файлов и доступности команд перед их выполнением.
  • Резервное копирование и восстановление конфигураций:
    • Перед изменением любого конфигурационного файла плагин должен создавать его резервную копию (например, с отметкой времени).
    • Должна быть возможность восстановить предыдущую версию конфигурационного файла из этих бэкапов.
6. Технические детали и реализация

  • XenForo API: Использование стандартных паттернов и API XenForo для разработки плагинов (Controller, Entity, Repository, Template, Option, Permission).
  • Взаимодействие с сервером:
    • Использование функций PHP exec() или shell_exec() для выполнения системных команд. Крайне важно: Ограничить эти вызовы до "белого списка" заранее определенных команд и параметров, а также использовать escapeshellarg() для любых переменных, передаваемых в команды.
    • Для чтения/записи конфигурационных файлов использовать file_get_contents() и file_put_contents(). Убедиться, что пользователь, под которым работает веб-сервер, имеет права на чтение/запись этих файлов (что само по себе является потенциальной проблемой безопасности, поэтому рекомендуется использовать скрипты с sudo).
  • Пользователь www-data и sudo:
    • Поскольку XenForo работает от имени пользователя веб-сервера (часто www-data), прямое выполнение команд вроде systemctl restart без пароля невозможно.
    • Рекомендуемое решение: На сервере должны быть настроены правила sudoers (файл /etc/sudoers или /etc/sudoers.d/), которые позволяют пользователю www-data выполнять конкретные, заранее определенные команды без запроса пароля (например, sudo /usr/bin/systemctl reload nginx).
    • Плагин будет вызывать эти команды с sudo.
    • Пример записи в sudoers: www-data ALL=(ALL) NOPASSWD: /usr/bin/systemctl reload nginx, /usr/bin/systemctl restart nginx, /usr/bin/systemctl restart php8.x-fpm, /usr/bin/systemctl restart mysql Или более безопасно, через обертку: www-data ALL=(ALL) NOPASSWD: /path/to/my_xenforo_server_control_script.sh Где my_xenforo_server_control_script.sh будет содержать логику для вызова нужных systemctl команд.
  • Парсинг конфигурационных файлов:
    • Для php.ini и my.cnf потребуется логика для парсинга файлов, поиска и замены значений параметров, а затем записи файла обратно. Учитывать комментарии и разные форматы строк.
  • Обработка ошибок:
    • В случае неудачи выполнения команды, плагин должен отобразить детальное сообщение об ошибке, включая вывод stderr команды.
7. Этапы разработки (высокоуровнево)

  1. Проектирование базы данных: Создание сущности для логов действий.
  2. Основные контроллеры и маршруты: Настройка базовой структуры админ-панели.
  3. Настройки плагина: Реализация страницы настроек для путей и команд.
  4. Модуль Web Server: Статус и действия перезапуска.
  5. Модуль PHP: Статус, чтение/запись php.ini, перезапуск.
  6. Модуль MySQL: Статус, чтение/запись my.cnf, перезапуск.
  7. Логирование: Интеграция записи и просмотра логов.
  8. Система разрешений: Интеграция с XenForo.
  9. Резервное копирование/Восстановление: Реализация механизма бэкапов.
  10. Тестирование: Тщательное тестирование всех функций, особенно на безопасность и обработку ошибок.
8. Риски и предупреждения

  • Риск безопасности 1-го уровня: Прямое выполнение системных команд из веб-приложения является огромной потенциальной уязвимостью. Необходимо уделить максимум внимания настройкам sudoers и валидации входных данных. Этот плагин НИКОГДА не должен запускаться на сервере, где не было ручной настройки sudoers для строго определенных команд!
  • Риск нарушения стабильности: Неправильно измененные параметры конфигурации или ошибочный перезапуск сервисов могут привести к недоступности сайта или всего сервера.
  • Зависимость от ОС/Дистрибутива: Команды systemctl, пути к файлам могут отличаться в разных дистрибутивах Linux (Ubuntu, CentOS и т.д.). Плагин должен быть максимально гибким в настройке этих команд/путей.
  • Права доступа: Веб-серверный пользователь (www-data) может не иметь прав на чтение/запись системных конфигурационных файлов. Этот аспект также должен быть решен через sudoers или специальные скрипты-обертки.
 
Заблокированный
Регистрация
8 Янв 2025
Сообщения
209
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Да я код редко пишу, особенно на pawno
 
Пользователь
Регистрация
11 Дек 2024
Сообщения
245

Проект Ariozna RP - 50 RUB
Проект Black Russia - 25 RUB
Проект Diamond RP - 10 RUB

Форум любого проекта - 10 RUB
Сайт любого проекта - 10 RUB

Бот для пиара - 5 RUB
Бот для проверки подписки - 5 RUB
Бот для логов - 5 RUB

Дополнительный BattlePass для проекта - 15 RUB
Дополнительные / новые квесты для проекта - 15 RUB
Мне чуть кажется, работать за такие ценники - это не уважать самого себя
 
Заблокированный
Регистрация
8 Янв 2025
Сообщения
209
2.2. Запрещено публиковать сообщения, разжигающие конфликты.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Сэр, подвиньтесь, такого перспективного разработчика должен забрать я.

Так вот, мне нужен плагин чтоб я удаленно мог управлять веб-сервером из админ панели, вот ТЗ:
1. Общее описание

Плагин "Server Control Panel" предназначен для предоставления администраторам XenForo удобного интерфейса для мониторинга и базового управления ключевыми компонентами серверной инфраструктуры (веб-сервер, PHP, MySQL) напрямую из админ-панели XenForo. Цель — упростить частые операции по настройке и перезапуску сервисов, сокращая необходимость прямого доступа к SSH.

2. Версия XenForo

  • Требуемая версия: XenForo 2.3.x
3. Цели плагина

  • Обеспечить возможность перезапуска/перезагрузки веб-сервера (Apache/Nginx), PHP-FPM и MySQL.
  • Предоставить интерфейс для просмотра и изменения ключевых параметров php.ini.
  • Предоставить интерфейс для просмотра и изменения ключевых параметров my.cnf.
  • Отображать текущий статус управляемых сервисов.
  • Вести логи всех действий, выполненных через плагин.
  • Обеспечить высокий уровень безопасности, предотвращая несанкционированный доступ и потенциальные уязвимости.
4. Нефункциональные требования

  • Безопасность:
    • Все действия должны быть доступны только пользователям с соответствующими разрешениями администратора XenForo.
    • Любое выполнение системных команд (через exec, shell_exec и т.д.) должно быть крайне осторожным, с полной валидацией входных данных и использованием "белых списков" разрешенных команд/параметров.
    • Должна быть возможность указать, какие команды требуют sudo и какие пользователи могут их выполнять (путем настройки sudoers на сервере). Плагин не должен запрашивать пароль.
    • Конфигурационные файлы (пути к ним, команды перезапуска) должны храниться в защищенном месте (например, в системных настройках XenForo, а не в открытом коде).
    • Предупреждения о потенциальной опасности изменения настроек должны быть явно видны.
  • Производительность: Плагин не должен создавать чрезмерную нагрузку на сервер. Запросы к сервисам должны быть быстрыми.
  • Удобство использования (UX): Интуитивно понятный интерфейс в админ-панели XenForo, с четкими описаниями полей и действий.
  • Надежность: Устойчивость к ошибкам при выполнении команд. Четкое информирование пользователя об успехе или неудаче операции.
  • Локализация: Все текстовые элементы должны быть реализованы через систему фраз XenForo.
5. Функциональные требования

5.1. Административный интерфейс (Admin CP)


  • Новый раздел/меню: В админ-панели XenForo должен быть создан новый раздел, например, "Server Control".
  • Главная страница плагина ("Dashboard"):
    • Краткий обзор состояния всех управляемых сервисов (Web Server, PHP-FPM, MySQL).
    • Возможность быстрого перезапуска/перезагрузки для каждого сервиса.
    • Ссылки на более детальные страницы настроек каждого модуля.
  • Страница настроек плагина:
    • Настройка путей к конфигурационным файлам (e.g., /etc/php/8.x/fpm/php.ini, /etc/nginx/nginx.conf, /etc/mysql/my.cnf).
    • Настройка команд для проверки статуса сервисов (e.g., systemctl status nginx, pgrep -x php-fpm).
    • Настройка команд для перезагрузки/перезапуска сервисов (e.g., sudo systemctl reload nginx, sudo systemctl restart php8.x-fpm, sudo systemctl restart mysql).
    • Выбор типа веб-сервера (Apache/Nginx).
    • Выбор версии PHP-FPM.
    • Раздел предупреждений и рекомендаций по безопасности.
5.2. Модуль управления Web Server (Apache/Nginx)

  • Страница: "Server Control -> Web Server"
  • Отображение статуса:
    • Текущий статус сервиса (работает/остановлен/ошибка).
    • Дополнительная информация (PID, время работы, нагрузка — если доступно через команду статуса).
  • Действия:
    • Перезагрузить (Reload): Мягкая перезагрузка конфигурации без остановки сервиса.
    • Перезапустить (Restart): Полная остановка и повторный запуск сервиса.
    • Остановить (Stop): Полная остановка сервиса (с предупреждением).
    • Запустить (Start): Запуск остановленного сервиса.
  • Отображение конфигурации (read-only): Возможность просмотреть содержимое основного конфигурационного файла веб-сервера (например, nginx.conf или httpd.conf). Только для чтения.
5.3. Модуль управления PHP (PHP-FPM)

  • Страница: "Server Control -> PHP"
  • Отображение статуса:
    • Текущий статус сервиса PHP-FPM.
    • Текущая используемая версия PHP.
  • Просмотр и изменение php.ini параметров:
    • Список ключевых параметров, которые можно редактировать (через xf:eek:ption_group или кастомный интерфейс):
      • upload_max_filesize
      • post_max_size
      • memory_limit
      • max_execution_time
      • max_input_vars
      • display_errors (с предупреждением о безопасности для production)
      • error_reporting
      • date.timezone
      • Другие, часто используемые.
    • Каждый параметр должен быть представлен в виде формы ввода с текущим значением и возможностью его изменения.
    • После изменения параметров должна быть кнопка "Сохранить и перезапустить PHP-FPM".
  • Действия:
    • Перезапустить PHP-FPM: Полная остановка и повторный запуск сервиса для применения новых настроек.
  • Кэширование PHP: Возможность очистки opcache (если используется и команда доступна).
5.4. Модуль управления MySQL

  • Страница: "Server Control -> MySQL"
  • Отображение статуса:
    • Текущий статус сервиса (работает/остановлен/ошибка).
    • Версия MySQL/MariaDB.
  • Просмотр и изменение my.cnf параметров:
    • Список ключевых параметров, которые можно редактировать (через xf:eek:ption_group или кастомный интерфейс):
      • max_connections
      • innodb_buffer_pool_size
      • query_cache_size (если используется)
      • wait_timeout
      • interactive_timeout
      • key_buffer_size
      • Другие, часто используемые.
    • Каждый параметр должен быть представлен в виде формы ввода с текущим значением и возможностью его изменения.
    • После изменения параметров должна быть кнопка "Сохранить и перезапустить MySQL".
  • Действия:
    • Перезапустить MySQL: Полная остановка и повторный запуск сервиса для применения новых настроек.
5.5. Общие функции

  • Логирование действий:
    • Каждое действие (перезапуск, изменение параметра, попытка выполнения команды) должно быть записано в журнал.
    • Журнал должен содержать: дату/время, администратора, тип действия, измененный параметр (если применимо), результат (успех/ошибка), полный вывод команды (если есть).
    • Интерфейс для просмотра журнала в админ-панели.
  • Система разрешений:
    • Интеграция с системой разрешений администраторов XenForo. Возможность назначать, какие группы администраторов могут управлять каждым из сервисов или выполнять определенные действия.
  • Валидация:
    • Строгая валидация всех пользовательских вводов (числовые значения, строки, пути к файлам).
    • Проверка существования файлов и доступности команд перед их выполнением.
  • Резервное копирование и восстановление конфигураций:
    • Перед изменением любого конфигурационного файла плагин должен создавать его резервную копию (например, с отметкой времени).
    • Должна быть возможность восстановить предыдущую версию конфигурационного файла из этих бэкапов.
6. Технические детали и реализация

  • XenForo API: Использование стандартных паттернов и API XenForo для разработки плагинов (Controller, Entity, Repository, Template, Option, Permission).
  • Взаимодействие с сервером:
    • Использование функций PHP exec() или shell_exec() для выполнения системных команд. Крайне важно: Ограничить эти вызовы до "белого списка" заранее определенных команд и параметров, а также использовать escapeshellarg() для любых переменных, передаваемых в команды.
    • Для чтения/записи конфигурационных файлов использовать file_get_contents() и file_put_contents(). Убедиться, что пользователь, под которым работает веб-сервер, имеет права на чтение/запись этих файлов (что само по себе является потенциальной проблемой безопасности, поэтому рекомендуется использовать скрипты с sudo).
  • Пользователь www-data и sudo:
    • Поскольку XenForo работает от имени пользователя веб-сервера (часто www-data), прямое выполнение команд вроде systemctl restart без пароля невозможно.
    • Рекомендуемое решение: На сервере должны быть настроены правила sudoers (файл /etc/sudoers или /etc/sudoers.d/), которые позволяют пользователю www-data выполнять конкретные, заранее определенные команды без запроса пароля (например, sudo /usr/bin/systemctl reload nginx).
    • Плагин будет вызывать эти команды с sudo.
    • Пример записи в sudoers: www-data ALL=(ALL) NOPASSWD: /usr/bin/systemctl reload nginx, /usr/bin/systemctl restart nginx, /usr/bin/systemctl restart php8.x-fpm, /usr/bin/systemctl restart mysql Или более безопасно, через обертку: www-data ALL=(ALL) NOPASSWD: /path/to/my_xenforo_server_control_script.sh Где my_xenforo_server_control_script.sh будет содержать логику для вызова нужных systemctl команд.
  • Парсинг конфигурационных файлов:
    • Для php.ini и my.cnf потребуется логика для парсинга файлов, поиска и замены значений параметров, а затем записи файла обратно. Учитывать комментарии и разные форматы строк.
  • Обработка ошибок:
    • В случае неудачи выполнения команды, плагин должен отобразить детальное сообщение об ошибке, включая вывод stderr команды.
Хоть где-то ты не до меня докапываешься)

Мне чуть кажется, работать за такие ценники - это не уважать самого себя
Я просто пытаюсь аудиторию школьников собрать
 
Активный
Регистрация
26 Апр 2022
Сообщения
865
2.14. Запрещено флудить, оффтопить, заниматься флеймом.
Сэр, подвиньтесь, такого перспективного разработчика должен забрать я.

Так вот, мне нужен плагин чтоб я удаленно мог управлять веб-сервером из админ панели, вот ТЗ:
1. Общее описание

Плагин "Server Control Panel" предназначен для предоставления администраторам XenForo удобного интерфейса для мониторинга и базового управления ключевыми компонентами серверной инфраструктуры (веб-сервер, PHP, MySQL) напрямую из админ-панели XenForo. Цель — упростить частые операции по настройке и перезапуску сервисов, сокращая необходимость прямого доступа к SSH.

2. Версия XenForo

  • Требуемая версия: XenForo 2.3.x
3. Цели плагина

  • Обеспечить возможность перезапуска/перезагрузки веб-сервера (Apache/Nginx), PHP-FPM и MySQL.
  • Предоставить интерфейс для просмотра и изменения ключевых параметров php.ini.
  • Предоставить интерфейс для просмотра и изменения ключевых параметров my.cnf.
  • Отображать текущий статус управляемых сервисов.
  • Вести логи всех действий, выполненных через плагин.
  • Обеспечить высокий уровень безопасности, предотвращая несанкционированный доступ и потенциальные уязвимости.
4. Нефункциональные требования

  • Безопасность:
    • Все действия должны быть доступны только пользователям с соответствующими разрешениями администратора XenForo.
    • Любое выполнение системных команд (через exec, shell_exec и т.д.) должно быть крайне осторожным, с полной валидацией входных данных и использованием "белых списков" разрешенных команд/параметров.
    • Должна быть возможность указать, какие команды требуют sudo и какие пользователи могут их выполнять (путем настройки sudoers на сервере). Плагин не должен запрашивать пароль.
    • Конфигурационные файлы (пути к ним, команды перезапуска) должны храниться в защищенном месте (например, в системных настройках XenForo, а не в открытом коде).
    • Предупреждения о потенциальной опасности изменения настроек должны быть явно видны.
  • Производительность: Плагин не должен создавать чрезмерную нагрузку на сервер. Запросы к сервисам должны быть быстрыми.
  • Удобство использования (UX): Интуитивно понятный интерфейс в админ-панели XenForo, с четкими описаниями полей и действий.
  • Надежность: Устойчивость к ошибкам при выполнении команд. Четкое информирование пользователя об успехе или неудаче операции.
  • Локализация: Все текстовые элементы должны быть реализованы через систему фраз XenForo.
5. Функциональные требования

5.1. Административный интерфейс (Admin CP)


  • Новый раздел/меню: В админ-панели XenForo должен быть создан новый раздел, например, "Server Control".
  • Главная страница плагина ("Dashboard"):
    • Краткий обзор состояния всех управляемых сервисов (Web Server, PHP-FPM, MySQL).
    • Возможность быстрого перезапуска/перезагрузки для каждого сервиса.
    • Ссылки на более детальные страницы настроек каждого модуля.
  • Страница настроек плагина:
    • Настройка путей к конфигурационным файлам (e.g., /etc/php/8.x/fpm/php.ini, /etc/nginx/nginx.conf, /etc/mysql/my.cnf).
    • Настройка команд для проверки статуса сервисов (e.g., systemctl status nginx, pgrep -x php-fpm).
    • Настройка команд для перезагрузки/перезапуска сервисов (e.g., sudo systemctl reload nginx, sudo systemctl restart php8.x-fpm, sudo systemctl restart mysql).
    • Выбор типа веб-сервера (Apache/Nginx).
    • Выбор версии PHP-FPM.
    • Раздел предупреждений и рекомендаций по безопасности.
5.2. Модуль управления Web Server (Apache/Nginx)

  • Страница: "Server Control -> Web Server"
  • Отображение статуса:
    • Текущий статус сервиса (работает/остановлен/ошибка).
    • Дополнительная информация (PID, время работы, нагрузка — если доступно через команду статуса).
  • Действия:
    • Перезагрузить (Reload): Мягкая перезагрузка конфигурации без остановки сервиса.
    • Перезапустить (Restart): Полная остановка и повторный запуск сервиса.
    • Остановить (Stop): Полная остановка сервиса (с предупреждением).
    • Запустить (Start): Запуск остановленного сервиса.
  • Отображение конфигурации (read-only): Возможность просмотреть содержимое основного конфигурационного файла веб-сервера (например, nginx.conf или httpd.conf). Только для чтения.
5.3. Модуль управления PHP (PHP-FPM)

  • Страница: "Server Control -> PHP"
  • Отображение статуса:
    • Текущий статус сервиса PHP-FPM.
    • Текущая используемая версия PHP.
  • Просмотр и изменение php.ini параметров:
    • Список ключевых параметров, которые можно редактировать (через xf:eek:ption_group или кастомный интерфейс):
      • upload_max_filesize
      • post_max_size
      • memory_limit
      • max_execution_time
      • max_input_vars
      • display_errors (с предупреждением о безопасности для production)
      • error_reporting
      • date.timezone
      • Другие, часто используемые.
    • Каждый параметр должен быть представлен в виде формы ввода с текущим значением и возможностью его изменения.
    • После изменения параметров должна быть кнопка "Сохранить и перезапустить PHP-FPM".
  • Действия:
    • Перезапустить PHP-FPM: Полная остановка и повторный запуск сервиса для применения новых настроек.
  • Кэширование PHP: Возможность очистки opcache (если используется и команда доступна).
5.4. Модуль управления MySQL

  • Страница: "Server Control -> MySQL"
  • Отображение статуса:
    • Текущий статус сервиса (работает/остановлен/ошибка).
    • Версия MySQL/MariaDB.
  • Просмотр и изменение my.cnf параметров:
    • Список ключевых параметров, которые можно редактировать (через xf:eek:ption_group или кастомный интерфейс):
      • max_connections
      • innodb_buffer_pool_size
      • query_cache_size (если используется)
      • wait_timeout
      • interactive_timeout
      • key_buffer_size
      • Другие, часто используемые.
    • Каждый параметр должен быть представлен в виде формы ввода с текущим значением и возможностью его изменения.
    • После изменения параметров должна быть кнопка "Сохранить и перезапустить MySQL".
  • Действия:
    • Перезапустить MySQL: Полная остановка и повторный запуск сервиса для применения новых настроек.
5.5. Общие функции

  • Логирование действий:
    • Каждое действие (перезапуск, изменение параметра, попытка выполнения команды) должно быть записано в журнал.
    • Журнал должен содержать: дату/время, администратора, тип действия, измененный параметр (если применимо), результат (успех/ошибка), полный вывод команды (если есть).
    • Интерфейс для просмотра журнала в админ-панели.
  • Система разрешений:
    • Интеграция с системой разрешений администраторов XenForo. Возможность назначать, какие группы администраторов могут управлять каждым из сервисов или выполнять определенные действия.
  • Валидация:
    • Строгая валидация всех пользовательских вводов (числовые значения, строки, пути к файлам).
    • Проверка существования файлов и доступности команд перед их выполнением.
  • Резервное копирование и восстановление конфигураций:
    • Перед изменением любого конфигурационного файла плагин должен создавать его резервную копию (например, с отметкой времени).
    • Должна быть возможность восстановить предыдущую версию конфигурационного файла из этих бэкапов.
6. Технические детали и реализация

  • XenForo API: Использование стандартных паттернов и API XenForo для разработки плагинов (Controller, Entity, Repository, Template, Option, Permission).
  • Взаимодействие с сервером:
    • Использование функций PHP exec() или shell_exec() для выполнения системных команд. Крайне важно: Ограничить эти вызовы до "белого списка" заранее определенных команд и параметров, а также использовать escapeshellarg() для любых переменных, передаваемых в команды.
    • Для чтения/записи конфигурационных файлов использовать file_get_contents() и file_put_contents(). Убедиться, что пользователь, под которым работает веб-сервер, имеет права на чтение/запись этих файлов (что само по себе является потенциальной проблемой безопасности, поэтому рекомендуется использовать скрипты с sudo).
  • Пользователь www-data и sudo:
    • Поскольку XenForo работает от имени пользователя веб-сервера (часто www-data), прямое выполнение команд вроде systemctl restart без пароля невозможно.
    • Рекомендуемое решение: На сервере должны быть настроены правила sudoers (файл /etc/sudoers или /etc/sudoers.d/), которые позволяют пользователю www-data выполнять конкретные, заранее определенные команды без запроса пароля (например, sudo /usr/bin/systemctl reload nginx).
    • Плагин будет вызывать эти команды с sudo.
    • Пример записи в sudoers: www-data ALL=(ALL) NOPASSWD: /usr/bin/systemctl reload nginx, /usr/bin/systemctl restart nginx, /usr/bin/systemctl restart php8.x-fpm, /usr/bin/systemctl restart mysql Или более безопасно, через обертку: www-data ALL=(ALL) NOPASSWD: /path/to/my_xenforo_server_control_script.sh Где my_xenforo_server_control_script.sh будет содержать логику для вызова нужных systemctl команд.
  • Парсинг конфигурационных файлов:
    • Для php.ini и my.cnf потребуется логика для парсинга файлов, поиска и замены значений параметров, а затем записи файла обратно. Учитывать комментарии и разные форматы строк.
  • Обработка ошибок:
    • В случае неудачи выполнения команды, плагин должен отобразить детальное сообщение об ошибке, включая вывод stderr команды.
7. Этапы разработки (высокоуровнево)

  1. Проектирование базы данных: Создание сущности для логов действий.
  2. Основные контроллеры и маршруты: Настройка базовой структуры админ-панели.
  3. Настройки плагина: Реализация страницы настроек для путей и команд.
  4. Модуль Web Server: Статус и действия перезапуска.
  5. Модуль PHP: Статус, чтение/запись php.ini, перезапуск.
  6. Модуль MySQL: Статус, чтение/запись my.cnf, перезапуск.
  7. Логирование: Интеграция записи и просмотра логов.
  8. Система разрешений: Интеграция с XenForo.
  9. Резервное копирование/Восстановление: Реализация механизма бэкапов.
  10. Тестирование: Тщательное тестирование всех функций, особенно на безопасность и обработку ошибок.
8. Риски и предупреждения

  • Риск безопасности 1-го уровня: Прямое выполнение системных команд из веб-приложения является огромной потенциальной уязвимостью. Необходимо уделить максимум внимания настройкам sudoers и валидации входных данных. Этот плагин НИКОГДА не должен запускаться на сервере, где не было ручной настройки sudoers для строго определенных команд!
  • Риск нарушения стабильности: Неправильно измененные параметры конфигурации или ошибочный перезапуск сервисов могут привести к недоступности сайта или всего сервера.
  • Зависимость от ОС/Дистрибутива: Команды systemctl, пути к файлам могут отличаться в разных дистрибутивах Linux (Ubuntu, CentOS и т.д.). Плагин должен быть максимально гибким в настройке этих команд/путей.
  • Права доступа: Веб-серверный пользователь (www-data) может не иметь прав на чтение/запись системных конфигурационных файлов. Этот аспект также должен быть решен через sudoers или специальные скрипты-обертки.
По оплате: Команда KAIF SECURITY LTD готова предложить за данную работу 1.000$. Мы надеемся на обратную связь.
 
Сверху