ITRUPANEL 0.1.8 — УСТАНОВКА И ОБНОВЛЕНИЕ Дата сборки: 6 октября 2026 года 1. ЧТО В КОМПЛЕКТЕ install.sh — автоматическая установка пакетов и настройка служб. bin/itrupanel-linux-amd64 — готовая программа для x86_64. bin/itrupanel-linux-arm64 — готовая программа для ARM64. Go на сервере не нужен: веб-интерфейс встроен в программу. Установщик рассчитан на чистый Linux-сервер с root-доступом и интернетом. В коде предусмотрены семейства Debian/Ubuntu и AlmaLinux/Rocky/RHEL/CentOS Stream. Системная установка на этих ОС в данной проверке НЕ выполнялась. На сервер с aaPanel/ispmanager и действующими сайтами сначала не устанавливайте: скрипт настраивает общие nginx, MariaDB, FTP, DNS и другие службы. На macOS/Windows этот установщик не предназначен для запуска. 2. АВТОМАТИЧЕСКАЯ УСТАНОВКА Замените IP_СЕРВЕРА на адрес своего Linux-сервера. На своём компьютере, из папки со скачанным полным архивом: scp itrupanel-full-0.1.8.zip root@IP_СЕРВЕРА:/root/ ssh root@IP_СЕРВЕРА Если unzip не установлен, на сервере выполните подходящий вариант: Debian/Ubuntu: apt-get update && apt-get install -y unzip AlmaLinux/Rocky/RHEL: dnf install -y unzip На сервере: unzip /root/itrupanel-full-0.1.8.zip -d /root/itrupanel-0.1.8 cd /root/itrupanel-0.1.8/itrupanel bash install.sh По умолчанию устанавливается PHP 8.3. Вместо последней команды можно выбрать: PHP_VERSION=8.4 bash install.sh Или установку без PHP и phpMyAdmin: PHP_VERSION=none bash install.sh Справка без изменения системы: bash install.sh --help Установщик выбирает архитектуру, проверяет запуск бинарника, устанавливает nginx, MariaDB, certbot, pure-ftpd, BIND, cron и утилиты, настраивает службы, а при выборе PHP — PHP-FPM и phpMyAdmin. Набор доступных пакетов зависит от ОС и внешних репозиториев. При успешном завершении он выводит адрес https://IP_СЕРВЕРА:3333, логин admin и сгенерированный пароль. Сохраните пароль. Сертификат панели первоначально самоподписанный — браузер покажет предупреждение. Если команда завершилась ошибкой, установка НЕ считается законченной: проверьте сообщения выше. После исправления причины установщик можно повторить. 3. ДОСТУП И ПОРТЫ 3333/tcp — панель; 80 и 443/tcp — сайты. 21/tcp и 30000–30100/tcp — FTP. 53/tcp и 53/udp — DNS, если сервер обслуживает публичные DNS-зоны. При активном ufw/firewalld скрипт пытается добавить правила автоматически. В сетевом экране хостинга/облака доступ настраивается отдельно. 4. ОБНОВЛЕНИЕ УЖЕ УСТАНОВЛЕННОЙ ПАНЕЛИ ВНИМАНИЕ: с версии 0.1.3 порт по умолчанию — 3333 вместо 1500. После обновления открывайте https://IP_СЕРВЕРА:3333. Если используется сетевой экран хостинга, разрешите TCP 3333 до обновления. Обновлённый install.sh добавляет 3333 в активный ufw/firewalld. При ручной замене бинарника проверьте правила файрвола отдельно. Если в службе вручную указан параметр -listen :1500, замените его на :3333. Штатная служба от установщика использует порт по умолчанию. Полный архив и архив обновления содержат готовые бинарники 0.1.8. Архив обновления содержит изменения относительно 0.1.2 и подходит для версий 0.1.2–0.1.7. Его пути начинаются с itrupanel/. Для вашего сервера 192.168.31.48: На Mac (scp через прежнего SSH-пользователя admin1): scp itrupanel-update-0.1.8.zip admin1@192.168.31.48:/tmp/ В уже открытом терминале сервера, где вы работаете под root: apt-get install -y unzip mkdir -p /tmp/itrupanel-update-0.1.8 unzip -o /tmp/itrupanel-update-0.1.8.zip -d /tmp/itrupanel-update-0.1.8 bash /tmp/itrupanel-update-0.1.8/itrupanel/update.sh Архив содержит готовую программу, поэтому прежняя папка исходников не нужна. update.sh рассчитан на systemd и установленную панель /usr/local/itrupanel. Он сохраняет прежний бинарник и state.json, заменяет программу и исправляет настройку установленного phpMyAdmin. Общие пакеты сервера не переустанавливает. При ошибке возвращает прежний бинарник; новые совместимые настройки phpMyAdmin могут остаться. Остановитесь при сообщении об ошибке и проверьте его причину. Пароль панели, сайты, базы и пользовательские файлы сохраняются. После обновления: /usr/local/itrupanel/itrupanel version Ожидается 0.1.8. Откройте https://192.168.31.48:3333 и обновите страницу. Для нового сервера по-прежнему используется bash install.sh. OpenLiteSpeed: Сайты → создать/редактировать → режим nginx + OpenLiteSpeed. При первом выборе подключается официальный репозиторий и ставится пакет. PHP работает через существующий PHP-FPM выбранной версии, не через LSPHP. OpenLiteSpeed слушает 127.0.0.1:8089; внешний HTTPS обслуживает nginx. Отдельный WebAdmin OpenLiteSpeed отключён. Открывать порт 7080 не нужно. Поддерживаются правила Rewrite в .htaccess, не все директивы Apache. После изменения .htaccess перезапустите OpenLiteSpeed в информации о сервере. Кэш LSCache в этой интеграции не настроен автоматически. Самостоятельная установка OpenLiteSpeed с чужой конфигурацией не перезаписывается. Автоустановка требует systemd; наличие пакета зависит от ОС и архитектуры. phpMyAdmin: Открывайте кнопкой из панели. Каждый раз создаётся случайный адрес на один час. Он работает только в той сессии панели, где был открыт; выход из панели прекращает доступ. Ссылка не заменяет пароль панели и вход в сам phpMyAdmin. После истечения часа откройте phpMyAdmin заново из панели. Сессии: /var/lib/itrupanel/phpmyadmin/sessions Временные файлы: /var/lib/itrupanel/phpmyadmin/tmp Эти каталоги находятся вне веб-корня, доступны только пользователю веб-сервера. Отдельно повторить настройку phpMyAdmin после установки новой программы: /usr/local/itrupanel/itrupanel repair-pma 5. ДИАГНОСТИКА systemctl status itrupanel --no-pager journalctl -u itrupanel -n 100 --no-pager systemctl restart itrupanel itrupanel passwd 'НОВЫЙ_ПАРОЛЬ' Смена пароля из командной строки требует перезапуска уже запущенной панели: systemctl restart itrupanel Состояние: /usr/local/itrupanel/etc/state.json Сайты: /var/www/<пользователь>/data/www/<домен> Свои правила nginx: /etc/nginx/itrupanel/custom/ Резервные копии: /var/backups/itrupanel/ DNS и управление почтой реализованы. Импорт данных с других панелей пока не реализован. Автоустановка WordPress в переданных исходниках отсутствует; старый test/api.sh содержит вызов wp.create, поэтому этот скрипт не является подтверждением её работы. 6. ПРОВЕРКИ ЭТОЙ СБОРКИ Выполнены Go-тесты в изолированной демо-файловой системе с детектором гонок, статический анализ go vet, проверка синтаксиса JavaScript и shell-скриптов, сборка Linux amd64 и arm64. В тестах системные команды не исполняются. Проверены временные ссылки phpMyAdmin, изоляция сессий, конфигурации OpenLiteSpeed и откат изменений. Реальная установка пакетов, работа nginx/PHP/MariaDB/BIND/FTP и выпуск Let's Encrypt на Linux требуют отдельной проверки: Docker в рабочей среде не запущен. Полная эксплуатационная проверка и аудит безопасности не выполнены. УСТАНОВКА С САЙТА (ПОСЛЕ ПУБЛИКАЦИИ ФАЙЛОВ) На Linux-сервере под root: wget -O install.sh https://itrupanel.ru/panel/install-itrupanel.sh && bash install.sh Или двумя командами; вторую запускайте только после успешного скачивания: wget -O install.sh https://itrupanel.ru/panel/install-itrupanel.sh bash install.sh Скрипт скачает полный архив 0.1.8 по HTTPS, проверит встроенную SHA-256, выберет amd64/arm64 и запустит установку. Если панель уже есть, выполняется update.sh с резервной копией программы и состояния. Поддерживается systemd. Обычный общий хостинг без root-доступа не подходит. Публикация на itrupanel.ru: Распакуйте содержимое itrupanel-ru-site-0.1.8.zip в корневой каталог сайта itrupanel.ru. В корне сайта: index.html, panel-assets/ и INSTALL.txt. В /panel/: install-itrupanel.sh, itrupanel-full-0.1.8.zip и SHA256SUMS.txt. Эти файлы должны открываться по HTTPS без авторизации. index.html — необязательная готовая страница с кнопкой копирования команды; используйте её, если в корне сайта ещё нет собственной страницы. Сам архив панели не распаковывайте. Сначала загрузите архив, затем установочный скрипт. Не меняйте архив после публикации: его SHA-256 зафиксирована в скрипте. Пока файлы не загружены, ссылка для установки не заработает. АДРЕС И СЕРТИФИКАТ САМОЙ ПАНЕЛИ Информация о сервере → Адрес и SSL панели. Укажите panel.example.ru и выберите Let’s Encrypt, существующий сертификат или самоподписанный. Свой PEM-сертификат, цепочку и ключ сначала добавьте в разделе SSL-сертификаты, затем выберите его в настройках панели. Имя должно входить в сертификат, ключ должен подходить, срок — быть действующим. Адрес панели будет https://panel.example.ru:3333. Порт остаётся 3333. Сертификат применяется к новым TLS-соединениям без перезапуска программы. Для Let’s Encrypt создайте DNS A на публичный IP и откройте входящий порт 80. За роутером настройте проброс 80 и 3333 на 192.168.31.48; сам адрес 192.168.31.48 не является публичным. Для локальной проверки можно использовать самоподписанный сертификат и локальную DNS/hosts-запись; браузер будет предупреждать о доверии. При ошибке выпуска прежний сертификат панели остаётся активным. Продление Let’s Encrypt выполняется штатной задачей панели. Активный сертификат панели/почты нельзя удалить или перезаписать через импорт: добавьте новый под другим именем, затем переключите его в настройках. OPENLITESPEED И ФОНОВЫЕ ЗАДАЧИ В присланном журнале установка завершалась сетевым тайм-аутом при скачивании с rpms.litespeedtech.com по HTTP:80. В 0.1.8 адрес APT-репозитория заменяется на HTTPS с сохранением проверки подписей; добавлены сетевые тайм-ауты. Доступность репозитория из вашей сети всё равно обязательна. Сохранение сайта запускает задачу: этап, журнал команд, итог или ошибка. Окно можно закрыть и вернуться в «Задачи». Повторный запуск той же выполняемой операции не создаёт дубликат. После рестарта незавершённая задача помечается ошибкой, а не продолжает бесконечно показывать «выполняется». Не перезапускайте панель и не запускайте другой установщик во время установки пакетов. Автоматический SSL сайта выпускается отдельной фоновой задачей. ПОЧТА Почта → Настроить почту. Автоустановка Debian/Ubuntu с systemd: Postfix, Dovecot 2.3/2.4 и OpenDKIM. Отдельная существующая почтовая установка не перезаписывается; автоматического переноса с неё нет. Укажите mail.example.ru, выберите сертификат на это имя. Затем добавьте домен, создайте ящики и локальные псевдонимы. Есть смена пароля и включение/отключение. Сгенерированный пароль показывается один раз; сохраните его. DNS для домена: кнопка «DNS: MX, SPF, DKIM, DMARC». Записи нужно внести у вашего DNS-провайдера. PTR публичного IP настраивается у провайдера сервера. IMAP: 993 TLS. Отправка SMTP: 587 STARTTLS с авторизацией. Приём от других серверов: 25. Логин — полный адрес ящика. Провайдер должен разрешать входящий/исходящий TCP 25. Для сервера за NAT нужны публичный IP и проброс портов. SPF следует объединить с уже существующей записью, а не добавлять второй SPF. Начальная политика DMARC — p=none. Удаление ящика отключает его, но сохраняет письма в /var/vmail/itrupanel/. Повторное создание такого же адреса возвращает доступ к сохранённым письмам. В эту версию не входят веб-почта, импорт IMAP, квоты и антиспам-фильтр. Системные конфиги проверяются перед применением; при ошибке предусмотрен откат. ПРОВЕРКА ЭТОЙ СБОРКИ Пройдены Go-тесты с race detector, go vet, 16 JavaScript-тестов и 4 сценария онлайн-установщика (установка/обновление/неверная SHA/ошибка скачивания). Почтовые API, блокировки, конфигурации и откат проверены в изолированном тестовом окружении. Реальная установка Linux-пакетов, доставка почты и выпуск публичного сертификата здесь не выполнялись. На ваш сервер изменения автоматически не отправлялись. Файлы на itrupanel.ru ещё нужно опубликовать. Официальные справочники по использованным настройкам: https://doc.dovecot.org/2.4.0/core/config/guides/quick.html https://www.postfix.org/SMTPD_ACCESS_README.html https://manpages.debian.org/trixie/opendkim/opendkim.conf.5.en.html КОПИРАЙТ В 0.1.8 © 2026 ITRUPANEL — ссылка на https://itrupanel.ru/. Отображается на экране входа, в общем меню панели и внизу мобильных страниц. В настройках/API параметра отключения нет. Интерфейс встроен в программу. Это не защита от модификации владельцем сервера с root-доступом. БРАНДМАУЭР — НОВЫЙ РАЗДЕЛ 0.1.8 1. Откройте «Брандмауэр» прямо в левом меню панели. 2. Нажмите «Установить модуль». Требуются root, Linux с systemd и поддержкой nftables. Пакет установится при необходимости; журнал доступен в «Задачах». 3. Нажмите «Создать». Укажите название, действие, протокол, порт/диапазон, адрес источника. Для частичного действия заполните список IP или сетей. 4. Создайте нужные правила и нажмите «Включить фильтрацию». Правила действуют сверху вниз до первого совпадения; порядок меняется стрелками в списке. Если совпадений нет, соединение разрешено. «Частично разрешить»: пропустить доверенные IP, остальные в сети источника блокировать. «Частично запретить»: блокировать перечисленные IP, остальные в сети источника пропускать. Списки должны входить в сеть источника. Источник 0.0.0.0 означает любой IPv4 и IPv6; 0.0.0.0/0 — только IPv4; ::/0 — только IPv6. ICMP и ICMPv6 задаются отдельно, без порта. Фильтруются только новые входящие соединения к самому серверу. Уже установленные соединения, loopback, DHCP и IPv6 Neighbor Discovery пропускаются. Порты SSH (включая обнаруженные нестандартные) и панели защищены от блокировки этим модулем. После изменения портов управления повторно примените правила. Перенаправляемый трафик Docker/роутера и исходящие соединения не фильтруются. Другие таблицы nftables, UFW и firewalld не очищаются. Их запреты продолжают действовать: «Разрешить» в панели не отменяет запрет другого брандмауэра. Правила панели находятся в таблице inet itrupanel_fw, файл автозагрузки: /etc/itrupanel/firewall.nft; служба: itrupanel-firewall.service. Отключение фильтрации сохраняет список и удаляет только таблицу панели. Если требуется аварийно отключить правила панели из консоли провайдера: systemctl disable itrupanel-firewall.service nft delete table inet itrupanel_fw Затем откройте панель и выключите фильтрацию, согласовав сохранённое состояние. Для возврата автозагрузки: systemctl enable itrupanel-firewall.service Проверено: Go-тесты валидации, семантики правил, API, защиты портов, конкурирующих правок и отката при ошибке сохранения, а также демо-интерфейс. Реальное применение nftables на вашем Linux-сервере локально не проверялось. ОБНОВЛЕНИЕ СТРАНИЦЫ И ОНЛАЙН-УСТАНОВЩИКА 0.1.8 Установщик использует /var/tmp вместо /tmp для скачивания и распаковки. Проверяется наличие не менее 100 МБ свободного места для архива; пакеты служб и резервные копии программы требуют дополнительного места. Созданная установщиком рабочая папка удаляется при завершении, в том числе при ошибке. Содержимое других папок /tmp и /var/tmp не очищается.