Building packages
INFO
For building hestia-nginx or hestia-php, at least 2 GB of memory is required!
Here is more detailed information about the build scripts that are run from src:
Installing Hestia from a branch
The following is useful for testing a Pull Request or a branch on a fork.
- Install Node.js Download or use Node Source APT
# Replace with https://github.com/username/hestiacp.git if you want to test a branch that you created yourself
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. See the complete list.
Build packages only
# Only Hestia
./hst_autocompile.sh --hestia --noinstall --keepbuild '~localsrc'# Hestia + hestia-nginx and hestia-php
./hst_autocompile.sh --all --noinstall --keepbuild '~localsrc'Build and install packages
INFO
Use if you have Hestia already installed, for your changes to take effect.
# Only Hestia
./hst_autocompile.sh --hestia --install '~localsrc'# Hestia + hestia-nginx and hestia-php
./hst_autocompile.sh --all --install '~localsrc'Updating Hestia from GitHub
The following is useful for pulling the latest staging/beta changes from GitHub and compiling the changes.
INFO
The following method only supports building the hestia package. If you need to build hestia-nginx or hestia-php, use one of the previous commands.
- Install Node.js Download or use Node Source APT
v-update-sys-hestia-git [USERNAME] [BRANCH]Note: Sometimes dependencies will get added or removed when the packages are installed with dpkg. It is not possible to preload the dependencies. If this happens, you will see an error like this:
dpkg: error processing package hestia (–install):
dependency problems - leaving unconfiguredTo solve this issue, run:
apt install -fBuilding for other architectures or OS releases on the same machine
hst_autocompile.sh only ever builds for the environment it's actually running in (its own --cross flag just makes the architecture-independent hestia package build for both AMD64 and ARM64 directly, with no emulation needed). To also build hestia-nginx, hestia-php or hestia-web-terminal (which contain compiled native code) for other architectures or OS releases on the same machine, use chroot_build_all.sh instead — it spins up and runs the unmodified hst_autocompile.sh inside each one.
./chroot_build_all.sh --all '~localsrc'Every combination is built inside a QEMU-emulated chroot (debootstrap + qemu-user-static). The first run downloads/bootstraps a minimal root filesystem per combination under /var/lib/hestiacp-build-chroot/<distro>-<release>-<arch>; subsequent runs reuse it, so only the first build of a given combination is slow.