HestiaCP Install failed 80 port already in use

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

Try doing this.

1. Check Hestia-nginx configuration:

sudo nano /usr/local/hestia/nginx/conf/nginx.conf

Look for the listen directive. It should be:

listen 8778 ssl;

NOT:

listen 80;

2. If it’s listening on port 80, change it to 8778:

# Edit the config file
sudo nano /usr/local/hestia/nginx/conf/nginx.conf

# Find the server block and change:
# listen 80; 
# to:
# listen 8778 ssl;

3. Restart Hestia services:

sudo systemctl restart hestia

4. Now start system nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

5. Verify the setup:

# Check port assignments
sudo ss -tulpn | grep -E ':(80|8778)'

# Should show:
# - nginx on port 80
# - hestia-nginx on port 8778

Hope this help. Make sure you install it in fresh server. This should have not happen.