Hello, I get an error when installing that port 80 is already occupied, and this occurs if the network is configured as bond.
Hestia-nginx and nginx conflict with each other for port 80.
cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.5 LTS (Jammy Jellyfish)"
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s25: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether 8a:5c:07:ec:e2:3c brd ff:ff:ff:ff:ff:ff permaddr 00:25:90:d0:6d:db
3: eno1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether 8a:5c:07:ec:e2:3c brd ff:ff:ff:ff:ff:ff permaddr 00:25:90:d0:6d:da
altname enp2s0
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 8a:5c:07:ec:e2:3c brd ff:ff:ff:ff:ff:ff
inet MY_IP/24 brd 185.--.--.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::885c:7ff:feec:e23c/64 scope link
valid_lft forever preferred_lft forever
bash hst-install.sh --port '8778' --named no --clamav no --api no --interactive no
_ _ _ _ ____ ____
| | | | ___ ___| |_(_) __ _ / ___| _ \
| |_| |/ _ \/ __| __| |/ _` | | | |_) |
| _ | __/\__ \ |_| | (_| | |___| __/
|_| |_|\___||___/\__|_|\__,_|\____|_|
Hestia Control Panel
1.9.3
www.hestiacp.com
========================================================================
Thank you for downloading Hestia Control Panel! In a few moments,
we will begin installing the following components on your server:
- NGINX Web / Proxy Server
- Apache Web Server (as backend)
- PHP-FPM Application Server
- Exim Mail Server + SpamAssassin
- Dovecot POP3/IMAP Server
- MariaDB Database Server
- Vsftpd FTP Server
- Firewall (iptables) + Fail2Ban Access Monitor
========================================================================
Please use a valid username (ex. user).
Please enter administrator username: admin
Please enter administrator password: passwd
Please use a valid emailadress (ex. [email protected]).
Please enter admin email address: [email protected]
Please enter FQDN hostname [myhostname]:
Please use a valid hostname according to RFC1178 (ex. hostname.domain.tld).
Please enter FQDN hostname [myhostname]: myhost.my.domain
Installation backup directory: /root/hst_install_backups/110720250648
Installation log file: /root/hst_install_backups/hst_install-110720250648.log
Adding required repositories to proceed with installation:
[ * ] NGINX
[ * ] PHP
[ * ] Apache2
[ * ] MariaDB 11.4
[ * ] Hestia Control Panel
Extracting templates from packages: 100%lease wait...-
\
The installer is now downloading and installing all required packages.
NOTE: This process may take 10 to 15 minutes to complete, please wait...
Extracting templates from packages: 100%
========================================================================
[ * ] Configuring system settings...
Adding user `hestiamail' to group `hestia-users' ...
Adding user hestiamail to group hestia-users
Done.
[ * ] Configuring Hestia Control Panel...
[ * ] Configuring OpenSSL to improve TLS performance...
[ * ] Generating default self-signed SSL certificate...
[ * ] Adding SSL certificate to Hestia Control Panel...
[ * ] Enabling SFTP jail...
[ * ] Enabling SSH jail...
[ * ] Creating default admin account...
[ * ] Configuring NGINX...
[ * ] Updating Cloudflare IP Ranges for Nginx...
[ * ] Configuring Apache Web Server...
[ * ] Installing PHP 8.3...
[ * ] Configuring PHP-FPM 8.3...
[ * ] Configuring PHP...
[ * ] Configuring Vsftpd server...
[ * ] Configuring MariaDB database server...
[ * ] Installing phpMyAdmin version v5.2.2...
[ * ] Configuring Exim mail server...
[ * ] Configuring Dovecot POP/IMAP mail server...
[ * ] Configuring SpamAssassin...
[ * ] Configuring fail2ban access monitor...
[ * ] Installing Roundcube...
[ * ] Configuring File Manager...
[ * ] Configuring PHP dependencies...
[ * ] Installing Rclone & Update Restic ...
[ * ] Configuring System IP...
[ * ] Installing remaining software updates...
Job for hestia.service failed because the control process exited with error code.
See "systemctl status hestia.service" and "journalctl -xeu hestia.service" for details.
Error: hestia start failed
# systemctl status hestia.service
× hestia.service - LSB: starts the hestia control panel
Loaded: loaded (/etc/init.d/hestia; generated)
Active: failed (Result: exit-code) since Fri 2025-07-11 06:52:21 UTC; 1min 11s ago
Docs: man:systemd-sysv-generator(8)
Process: 47739 ExecStart=/etc/init.d/hestia start (code=exited, status=1/FAILURE)
CPU: 15ms
Jul 11 06:52:18 MYHOST.domain.cloud hestia[47743]: nginx: [warn] "ssl_stapling" ignored, issuer certificate not found for certificate "/usr/local/hest>
Jul 11 06:52:18 MYHOST.domain.cloud hestia[47743]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Jul 11 06:52:19 MYHOST.domain.cloud hestia[47743]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Jul 11 06:52:19 MYHOST.domain.cloud hestia[47743]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Jul 11 06:52:20 MYHOST.domain.cloud hestia[47743]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Jul 11 06:52:20 MYHOST.domain.cloud hestia[47743]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Jul 11 06:52:21 MYHOST.domain.cloud hestia[47743]: nginx: [emerg] still could not bind()
Jul 11 06:52:21 MYHOST.domain.cloud systemd[1]: hestia.service: Control process exited, code=exited, status=1/FAILURE
Jul 11 06:52:21 MYHOST.domain.cloud systemd[1]: hestia.service: Failed with result 'exit-code'.
Jul 11 06:52:21 MYHOST.domain.cloud systemd[1]: Failed to start LSB: starts the hestia control panel.
tcp LISTEN 0 511 MY_HOST_IP:80 0.0.0.0:* users:(("nginx",pid=45357,fd=8),("nginx",pid=45356,fd=8),("nginx",pid=45355,fd=8),("nginx",pid=45354,fd=8),("nginx",pid=39770,fd=8))
# systemctl stop nginx
# systemctl restart hestia.service
# systemctl status hestia.service
● hestia.service - LSB: starts the hestia control panel
Loaded: loaded (/etc/init.d/hestia; generated)
Active: active (running) since Fri 2025-07-11 07:00:00 UTC; 7s ago
Docs: man:systemd-sysv-generator(8)
Process: 47948 ExecStart=/etc/init.d/hestia start (code=exited, status=0/SUCCESS)
Tasks: 3 (limit: 38342)
Memory: 7.1M
CPU: 39ms
CGroup: /system.slice/hestia.service
├─47953 "nginx: master process /usr/local/hestia/nginx/sbin/hestia-nginx"
├─47954 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
└─47956 "php-fpm: master process (/usr/local/hestia/php/etc/php-fpm.conf)"
Jul 11 07:00:00 MYHOST.domain.cloud systemd[1]: Starting LSB: starts the hestia control panel...
Jul 11 07:00:00 MYHOST.domain.cloud hestia[47948]: * Starting hestia-nginx hestia-nginx
Jul 11 07:00:00 MYHOST.domain.cloud hestia[47952]: nginx: [warn] "ssl_stapling" ignored, issuer certificate not found for certificate "/usr/local/hestia/ssl/certificate.crt"
Jul 11 07:00:00 MYHOST.domain.cloud hestia[47948]: ...done.
Jul 11 07:00:00 MYHOST.domain.cloud hestia[47948]: * Starting hestia-php hestia-php
Jul 11 07:00:00 MYHOST.domain.cloud hestia[47948]: ...done.
Jul 11 07:00:00 MYHOST.domain.cloud systemd[1]: Started LSB: starts the hestia control panel.
# systemctl start nginx
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
# systemctl status nginx
× nginx.service - nginx - high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2025-07-11 07:05:34 UTC; 4s ago
Docs: https://nginx.org/en/docs/
Process: 48919 ExecStart=/usr/sbin/nginx -c ${CONFFILE} (code=exited, status=1/FAILURE)
CPU: 17ms
Jul 11 07:05:32 MYHOST.domain.cloud systemd[1]: Starting nginx - high performance web server...
Jul 11 07:05:32 MYHOST.domain.cloud nginx[48919]: nginx: [emerg] bind() to MY_IP:80 failed (98: Address already in use)
Jul 11 07:05:32 MYHOST.domain.cloud nginx[48919]: nginx: [emerg] bind() to MY_IP:80 failed (98: Address already in use)
Jul 11 07:05:33 MYHOST.domain.cloud nginx[48919]: nginx: [emerg] bind() to MY_IP:80 failed (98: Address already in use)
Jul 11 07:05:33 MYHOST.domain.cloud nginx[48919]: nginx: [emerg] bind() to MY_IP:80 failed (98: Address already in use)
Jul 11 07:05:34 MYHOST.domain.cloud nginx[48919]: nginx: [emerg] bind() to MY_IP:80 failed (98: Address already in use)
Jul 11 07:05:34 MYHOST.domain.cloud nginx[48919]: nginx: [emerg] still could not bind()
Jul 11 07:05:34 MYHOST.domain.cloud systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
Jul 11 07:05:34 MYHOST.domain.cloud systemd[1]: nginx.service: Failed with result 'exit-code'.
Jul 11 07:05:34 MYHOST.domain.cloud systemd[1]: Failed to start nginx - high performance web server.
# ss -tulpn|grep 80
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=680,fd=13))
tcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=680,fd=14))
tcp LISTEN 0 511 127.0.0.1:8081 0.0.0.0:* users:(("apache2",pid=45278,fd=3),("apache2",pid=45276,fd=3),("apache2",pid=45275,fd=3),("apache2",pid=44595,fd=3))
tcp LISTEN 0 100 0.0.0.0:995 0.0.0.0:* users:(("dovecot",pid=41980,fd=23))
tcp LISTEN 0 100 0.0.0.0:993 0.0.0.0:* users:(("dovecot",pid=41980,fd=40))
tcp LISTEN 0 511 MY_IP:8080 0.0.0.0:* users:(("apache2",pid=45278,fd=5),("apache2",pid=45276,fd=5),("apache2",pid=45275,fd=5),("apache2",pid=44595,fd=5))
tcp LISTEN 0 100 0.0.0.0:110 0.0.0.0:* users:(("dovecot",pid=41980,fd=21))
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("hestia-nginx",pid=47954,fd=6),("hestia-nginx",pid=47953,fd=6))
# v-list-sys-services: command not found