ITRUPANEL 0.1.7 — УСТАНОВКА И ОБНОВЛЕНИЕ
Дата сборки: 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.7.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.7.zip -d /root/itrupanel-0.1.7
  cd /root/itrupanel-0.1.7/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.7.
Архив обновления содержит изменения относительно 0.1.2 и подходит для
версий 0.1.2–0.1.6. Его пути начинаются с itrupanel/.

Для вашего сервера 192.168.31.48:
На Mac (scp через прежнего SSH-пользователя admin1):

  scp itrupanel-update-0.1.7.zip admin1@192.168.31.48:/tmp/

В уже открытом терминале сервера, где вы работаете под root:

  cd /tmp/itrupanel-0.1.1 &&
  unzip -o /tmp/itrupanel-update-0.1.7.zip &&
  cd itrupanel &&
  bash update.sh

Имя папки 0.1.1 остаётся прежним; это не версия запущенной программы.
Если исходная папка уже удалена, используйте полный архив и распакуйте
его в новую папку, затем выполните bash update.sh внутри itrupanel.

update.sh рассчитан на systemd и установленную панель /usr/local/itrupanel.
Он сохраняет прежний бинарник и state.json, заменяет программу и исправляет
настройку установленного phpMyAdmin. Общие пакеты сервера не переустанавливает.
При ошибке возвращает прежний бинарник; новые совместимые настройки phpMyAdmin
могут остаться. Остановитесь при сообщении об ошибке и проверьте его причину.
Пароль панели, сайты, базы и пользовательские файлы сохраняются.

После обновления:
  /usr/local/itrupanel/itrupanel version

Ожидается 0.1.7. Откройте 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/install/install-itrupanel.sh && bash install.sh

Или двумя командами; вторую запускайте только после успешного скачивания:
  wget -O install.sh https://itrupanel.ru/install/install-itrupanel.sh
  bash install.sh

Скрипт скачает полный архив 0.1.7 по HTTPS, проверит встроенную SHA-256,
выберет amd64/arm64 и запустит установку. Если панель уже есть, выполняется
update.sh с резервной копией программы и состояния. Поддерживается systemd.
Обычный общий хостинг без root-доступа не подходит.

Публикация на itrupanel.ru:
  Распакуйте содержимое itrupanel-ru-site-0.1.7.zip в корневой каталог сайта itrupanel.ru.
  В корне сайта: index.html, panel-assets/ и INSTALL.txt.
  В /install/: install-itrupanel.sh, itrupanel-full-0.1.7.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.7 адрес 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.7
© 2026 ITRUPANEL — ссылка на https://itrupanel.ru/.
Отображается на экране входа, в общем меню панели и внизу мобильных страниц.
В настройках/API параметра отключения нет. Интерфейс встроен в программу.
Это не защита от модификации владельцем сервера с root-доступом.
