Hello friends,
This is my 2nd production box and I am not able to give a web terminal to the developers.
Ubuntu 24.04 LTS on AWS. Super minimal setup no firewall/iptables on the machine.
Nginx only with PHP-FPM. Everything works great except this terminal icon is not appearing next to the file system icon like everyone says.
I tried accessing https://publicIP:8083 as well as https://hostnameofthesrvr.com:8083
Also tried with a user who owns a domain and also the admin.
ubuntu@yarrak:~$ sudo systemctl status hestia-web-terminal
● hestia-web-terminal.service - HestiaCP Web Terminal
Loaded: loaded (/etc/systemd/system/hestia-web-terminal.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-11-03 22:25:03 UTC; 51min ago
Docs: https://hestiacp.com/docs/
Main PID: 573 (node)
Tasks: 11 (limit: 9204)
Memory: 55.7M (peak: 60.2M)
CPU: 299ms
CGroup: /system.slice/hestia-web-terminal.service
└─573 node /usr/local/hestia/web-terminal/server.js
ubuntu@yarrak:~$ sudo lsof -Pn +c0 -i:8085 -sTCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 573 root 18u IPv6 8632 0t0 TCP *:8085 (LISTEN)
Linux ***** 6.14.0-1015-aws #15~24.04.1-Ubuntu SMP Tue Sep 23 22:44:48 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@yarrak:~$ ls -l /etc/apt/sources.list.d
cat /etc/apt/sources.list.d/nodejs.list
total 24
-rw-r--r-- 1 root root 103 Nov 3 22:21 hestia.list
-rw-r--r-- 1 root root 139 Nov 3 22:21 mariadb.list
-rw-r--r-- 1 root root 121 Nov 3 22:21 nginx.list
-rw-r--r-- 1 root root 109 Nov 3 22:21 nodejs.list
-rw-r--r-- 1 root root 1786 Nov 3 22:21 ondrej-ubuntu-php-noble.sources
-rw-r--r-- 1 root root 3006 Nov 3 22:21 ubuntu.sources
namei -mo /usr/local/hestia/web/css/themes/default.min.css
namei -mo /usr/local/hestia/web/js/dist/main.min.js
ls -la /usr/local/hestia/web/
tail -n63 /usr/local/hestia/nginx/conf/nginx.conf
f: /usr/local/hestia/web/css/themes/default.min.css
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxr-xr-x root root local
drwxr-xr-x root root hestia
drwxr-xr-x root root web
drwxr-xr-x root root css
drwxr-xr-x root root themes
-rw-r--r-- root root default.min.css
f: /usr/local/hestia/web/js/dist/main.min.js
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxr-xr-x root root local
drwxr-xr-x root root hestia
drwxr-xr-x root root web
drwxr-xr-x root root js
drwxr-xr-x root root dist
-rw-r--r-- root root main.min.js
total 148
drwxr-xr-x 34 root root 4096 Nov 3 22:23 .
drwxr-xr-x 12 root root 4096 Nov 3 22:22 ..
drwxr-xr-x 14 root root 4096 Nov 3 22:22 add
drwxr-xr-x 2 root root 4096 Nov 3 22:22 api
drwxr-xr-x 15 root root 4096 Nov 3 22:22 bulk
drwxr-xr-x 3 root root 4096 Nov 3 22:22 copy
drwxr-xr-x 4 root root 4096 Nov 3 22:22 css
drwxr-xr-x 16 root root 4096 Nov 3 22:22 delete
drwxr-xr-x 6 root root 4096 Nov 3 22:22 download
drwxr-xr-x 13 root root 4096 Nov 3 22:22 edit
drwxr-xr-x 2 root root 4096 Nov 3 22:22 error
-rw-r--r-- 1 root root 1150 Jul 21 08:45 favicon.ico
drwxr-xr-x 8 root root 4096 Nov 3 22:23 fm
drwxr-xr-x 3 root root 4096 Nov 3 22:22 generate
drwxr-xr-x 2 root root 4096 Nov 3 22:22 images
drwxr-xr-x 4 root root 4096 Nov 3 22:22 inc
-rw-r--r-- 1 root root 105 Jul 21 08:45 index.php
drwxr-xr-x 5 root root 4096 Nov 3 22:22 js
drwxr-xr-x 22 root root 4096 Nov 3 22:22 list
drwxr-xr-x 42 root root 4096 Nov 3 22:22 locale
drwxr-xr-x 2 root root 4096 Nov 3 22:22 login
drwxr-xr-x 2 root root 4096 Nov 3 22:22 logout
drwxr-xr-x 3 root root 4096 Nov 3 22:22 reset
drwxr-xr-x 2 root root 4096 Nov 3 22:22 reset2fa
drwxr-xr-x 4 root root 4096 Nov 3 22:22 restart
-rw-r--r-- 1 root root 26 Jul 21 08:45 robots.txt
drwxr-xr-x 8 root root 4096 Nov 3 22:23 rrd
drwxr-xr-x 4 root root 4096 Nov 3 22:22 schedule
drwxr-xr-x 2 root root 4096 Nov 3 22:22 search
drwxr-xr-x 4 root root 4096 Nov 3 22:22 src
drwxr-xr-x 3 root root 4096 Nov 3 22:22 start
drwxr-xr-x 3 root root 4096 Nov 3 22:22 stop
drwxr-xr-x 9 root root 4096 Nov 3 22:22 suspend
drwxr-xr-x 4 root root 4096 Nov 3 22:22 templates
drwxr-xr-x 9 root root 4096 Nov 3 22:22 unsuspend
drwxr-xr-x 3 root root 4096 Nov 3 22:22 update
drwxr-xr-x 2 root root 4096 Nov 3 22:22 webfonts
error_page 404 /error/404.html;
error_page 410 /error/410.html;
error_page 500 501 502 503 504 505 /error/50x.html;
ssl_certificate /usr/local/hestia/ssl/certificate.crt;
ssl_certificate_key /usr/local/hestia/ssl/certificate.key;
# TLS 1.3 0-RTT anti-replay
if ($anti_replay = 307) { return 307 https://$host:$server_port$request_uri; }
if ($anti_replay = 425) { return 425; }
location / {
expires off;
index index.php;
}
location /error/ {
expires off;
internal;
}
location /rrd/ {
expires off;
internal;
}
location /backup/ {
root /;
internal;
}
location /fm/ {
alias /usr/local/hestia/web/fm/dist/;
index index.php;
location ~ /([^/]+\.php)$ {
try_files /$1 =404;
include fastcgi_params;
fastcgi_param HTTP_EARLY_DATA $rfc_early_data if_not_empty;
fastcgi_param SCRIPT_FILENAME /usr/local/hestia/web/fm/dist/index.php;
fastcgi_pass unix:/run/hestia-php.sock;
fastcgi_index index.php;
}
}
location /_shell/ {
proxy_pass http://localhost:8085;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param HTTP_EARLY_DATA $rfc_early_data if_not_empty;
fastcgi_param SCRIPT_FILENAME /usr/local/hestia/web/$fastcgi_script_name;
fastcgi_pass unix:/run/hestia-php.sock;
fastcgi_intercept_errors on;
break;
}
}
}
sudo namei -mo /usr/local/hestia/data/sessions/
sudo lsof -Pn +c0 -i:8083 -sTCP:LISTEN
sudo ls -l /run/hestia-php.sock
sudo /usr/local/hestia/nginx/sbin/hestia-nginx -T | grep '^user'
f: /usr/local/hestia/data/sessions/
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxr-xr-x root root local
drwxr-xr-x root root hestia
drwxr-xr-x root root data
drwxrwx--- hestiaweb hestiaweb sessions
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
hestia-nginx 2668 root 6u IPv4 11958 0t0 TCP *:8083 (LISTEN)
hestia-nginx 2669 hestiaweb 6u IPv4 11958 0t0 TCP *:8083 (LISTEN)
srw-rw---- 1 hestiaweb hestiaweb 0 Nov 3 22:25 /run/hestia-php.sock
nginx: [warn] "ssl_stapling" ignored, no OCSP responder URL in the certificate "/usr/local/hestia/ssl/certificate.crt"
nginx: the configuration file /usr/local/hestia/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/hestia/nginx/conf/nginx.conf test is successful
user hestiaweb;
