Developing/Contributing to Hestia Control Panel

Follow the current guidelines

Note

Are you following any tutorial regarding ARM + Hestia please use the normal install method. Since 1.5.0 we have added ARM packages to our apt server! For current active installs To enable updates please remove the # in /etc/apt/sources.list/hestia and then run apt update && apt upgrade

Checklist

Recommended:

  • Existing previous Hestia installation (this will ensure everything is already installed)

Compiling

Go into the src folder and run of these commands.

Note

For building hestia-nginx / hestia-php packages at least 2 GB memory is required!

./hst_autocompile.sh --hestia --install '~localsrc'

Compile Hestia + Hestia PHP / Hestia NGNIX and install

./hst_autocompile.sh --all --install '~localsrc'
./hst_autocompile.sh --hestia --noinstall --keepbuild '~localsrc'

Compile Hestia + Hestia PHP / Hestia NGNIX and install

./hst_autocompile.sh --all --noinstall --keepbuild '~localsrc'

Install Hestia from packages

# Replace with https://github.com/username/hestiacp.git if you want to test a test branch hosted that you created your self
git clone https://github.com/hestiacp/hestiacp.git
cd ./hestiacp/

# Replace main with the branch you want to test
git checkout main

cd ./src/

# Compile packages
./hst_autocompile.sh --all --noinstall --keepbuild '~localsrc'

cd ../install

bash hst-install-{os}.sh --with-debs /tmp/hestiacp-src/deb/

Any option can be appended to the installer command.

Update HestiaCP from Github

v-update-sys-hestia-git username branch

Sometimes dependencies will get added or removed as the pakages are installed with dpkg it is not possible to "preload" the dependencies.

In that case you will see an error like:

dpkg: error processing package hestia (–install):
dependency problems - leaving unconfigured

To solve this issue run:

apt-get install -f

To resolve the issue with missing packages. After that run v-update-sys-hestia-git username branch again

Automated testing

For automated testing we currently use Bats (Bash Automated Testing System)

Install

# Clone Hestia repo with testing submodules
git clone --recurse-submodules https://github.com/hestiacp/hestiacp
# Or on existing local repo with up to date master branch
git submodule update --init --recursive

# Install Bats
test/test_helper/bats-core/install.sh /usr/local

Run

Warning

Do not run any testing script on an live server. It might cause issues or downtime!

# Run Hestia tests
test/test.bats