Вклад в разработку Hestia
Hestia — проект с открытым исходным кодом, и мы приветствуем вклад сообщества. Пожалуйста, прочтите руководство по вкладу для получения дополнительной информации.
Hestia предназначена для установки на веб-сервер. Для разработки Hestia на локальном компьютере рекомендуется виртуальная машина.
WARNING
Сборки для разработки нестабильны. Если вы столкнулись с ошибкой, сообщите о ней через GitHub или отправьте запрос на извлечение.
Создание виртуальной машины для разработки
Это примеры инструкций по созданию виртуальной машины, на которой запущена Hestia для разработки.
В этих инструкциях для создания виртуальной машины используется Multipass. Вы можете адаптировать команды для любого программного обеспечения виртуализации, которое вам нравится.
WARNING
Иногда сопоставление между каталогом исходного кода на локальной машине и каталогом в виртуальной машине может быть потеряно с ошибкой «не удалось получить статус выхода для удаленного процесса». Если это произошло, просто размонтируйте и перемонтируйте, например,
multipass unmount hestia-dev
multipass mount $HOME/projects/hestiacp hestia-dev:/home/ubuntu/hestiacp
Установите Multipass для вашей ОС.
Fork Hestia и клонируйте репозиторий на локальную машину
git clone https://github.com/YourUsername/hestiacp.git $HOME/projects
- Создайте виртуальную машину Ubuntu с объемом памяти не менее 2 ГБ и дисковым пространством 15 ГБ
multipass launch --name hestia-dev --memory 2G --disk 15G
- Сопоставьте клонированный репозиторий с домашним каталогом виртуальной машины
multipass mount $HOME/projects/hestiacp hestia-dev:/home/ubuntu/hestiacp
- Подключитесь к виртуальной машине по SSH как root и установите некоторые необходимые пакеты
multipass exec hestia-dev -- sudo bash
sudo apt update && sudo apt install -y jq libjq1
- За пределами виртуальной машины (в новом терминале) убедитесь, что установлен Node.js 16 или более поздней версии
node --version
- Установите зависимости и соберите файлы темы:
npm install
npm run build
- Вернитесь в терминал виртуальной машины, перейдите в
/src
и соберите пакеты Hestia
cd src
./hst_autocompile.sh --hestia --noinstall --keepbuild '~localsrc'
- Перейдите в
/install
и установите Hestia
(обновите install flags по своему вкусу, обратите внимание, что учетные данные для входа задаются здесь)
cd ../install
bash hst-install-ubuntu.sh -D /tmp/hestiacp-src/deb/ --interactive no --email admin@example.com --password Password123 --hostname demo.hestiacp.com -f
- Перезагрузите ВМ (и выйдите из сеанса SSH)
reboot
- Найдите IP-адрес ВМ
multipass list
- Перейдите по IP-адресу ВМ в своем браузере, используя порт Hestia по умолчанию, и войдите с помощью
admin
/Password123
(пропустите любые ошибки SSL, которые вы видите при загрузке страницы)
например https://192.168.64.15:8083
Hestia теперь работает на виртуальной машине. Если вы хотите внести изменения в исходный код и протестировать их в браузере, перейдите к следующему разделу.
Внесение изменений в Hestia
После настройки Hestia на виртуальной машине вы теперь можете вносить изменения в исходный код в $HOME/projects/hestiacp
на локальной машине (вне виртуальной машины) с помощью редактора по вашему выбору.
Ниже приведены примеры инструкций по внесению изменений в пользовательский интерфейс Hestia и его локальному тестированию.
- В корне проекта на локальной машине убедитесь, что установлены последние пакеты
npm install
- Внесите изменения в файл, который мы сможем протестировать позже, затем соберите ресурсы пользовательского интерфейса
например измените цвет фона тела на красный в web/css/src/base.css
, затем запустите:
npm run build
- Подключитесь к виртуальной машине по SSH как root и перейдите в
/src
multipass exec hestia-dev -- sudo bash
cd src
- Запустите скрипт сборки Hestia
./hst_autocompile.sh --hestia --install '~localsrc'
- Перезагрузите страницу в браузере, чтобы увидеть изменения
INFO
Резервная копия создается каждый раз при запуске скрипта сборки Hestia. Если вы запускаете его часто, он может заполнить дисковое пространство вашей виртуальной машины. Вы можете удалить резервные копии, запустив rm -rf /root/hst_backups
как пользователь root на виртуальной машине.
Дополнительную информацию об отправке изменений кода на проверку см. в руководстве по внесению изменений.
Запуск автоматизированных тестов
В настоящее время мы используем Bats для запуска наших автоматизированных тестов.
Установка
# Клонирование репозитория Hestia с тестовыми подмодулями
git clone --recurse-submodules https://github.com/hestiacp/hestiacp
# Или использование существующего локального репозитория с актуальной основной веткой
git submodule update --init --recursive
# Установка Bats
test/test_helper/bats-core/install.sh /usr/local
Запуск
DANGER
Не запускайте никаких тестовых скриптов на рабочем сервере. Это может вызвать проблемы или простои!
# Запуск тестов Hestia
test/test.bats