Hestia CP 是一个开源的 Linux 服务器控制面板(Control Panel),HestiaCP fork 自另一款流行的控制面板 VestaCP 。由于 VestaCP 开发和维护趋于停止,很多安全问题和漏洞没有及时修复,所以有人从 VestaCP 拉出新分支进行开发和维护。Hestia 可以作为 aaPanel(宝塔面板)的很好的开源代替。
HestiaCP 提供了一个简单干净的网页界面,给网站维护人员提供了更加简单的方式维护网页服务器。HestiaCP 提供了很多功能,包括
管理部署网站(Nginx, Apache,PHP)
SSL 证书及 SNI Wildcard support
数据库(MySQL,PostgreSQL)
FTP([[ProFTPd]], [[vsftpd]])
DNS zones(Bind)DNS 服务器
邮件服务器([[Dovecot]], [[exim4]])支持 [[SPF]]、[[DKIM]] 等
垃圾邮件扫描([[SpamAssassin Score]])
邮件病毒扫描([[ClamAV]])
多种数据备份方案
HestiaCP 还提供了基于命令行的管理工具,具体可以见中文页面或者 官方英文文档。
另一个值得一说的功能就是,HestiaCP 提供了一键安装网站(Quick Install
App)的功能,默认提供了一些非常受欢迎的网页应用,包括 [[WordPress]], [[Drupal]], [[Joomla]],
[[Opencart]], [[PrestaShop]], [[Lavarvel]], [[Symfony]] 等等。
在接触 Hestia 之前,有段时间直接使用 LNMP,或者使用 [[aapanel]],但后来发现 aaPanel 的 License 或许存在某些问题,并且在读了 Stallman 的 著作 之后对自由软件的认识更深刻了一些,所以直接替换成 GPL 发布的 Hestia。作为 aaPanel 的开源代替品,发现 Hestia 还是非常不错的。
后台演示:
功能特点介绍
安装条件
安装演示
本文中演示在 Ubuntu 20.04 上安装 HestiaCP。整个过程可能会需要 15 分钟左右。
安装脚本:
可以通过 安装器 自己选择安装的组件。选择组件之后会产生一个命令:
你可以根据自己的需要自行选择需要的组件。可以在中文文档中查看默认会安装的组件。
安装完成之后会在日志中看到后台登录的链接,以及默认的用户名(admin)和密码。脚本执行完成后可能会需要一次重启来完成安装。
访问 https://ip:8083 ,或者如果已经配置了域名 A 记录指向该 IP,也可以使用域名加端口来访问。
netplan 错误
安装过程中如果遇到:
[ * ] Installing dependencies...
!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!
WARNING: Your network configuration may not be set up correctly.
Details: The netplan configuration directory is empty.
You may have a network configuration file that was created using
systemd-networkd.It is strongly recommended to migrate to netplan,
which is now thedefault network configuration system in newer
releases of Ubuntu.While you can leave your configuration as-is, please note that you
will not be able to use additional IPs properly.
If you wish to continue and force the installation,
run this script with -f option:
Example: bash hst-install-ubuntu.sh --force
!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!
Error: Unable to detect netplan configuration.
这个错误是因为 Ubuntu 没有使用 netplan,或者 VPS 主机提供的镜像没有使用 netplan,但是 /etc/netplan 文件夹存在,这就导致 HestiaCP 安装脚本执行过程中判断错误。
解决方案:查看 /etc/netplan 文件夹,如果配置文件夹是空的,那么可以直接删除该文件夹,如果确定自己已经使用了 netplan 作为网络配置,那么检查一下网络配置。
Usage
申请 Let’s Encrypt SSL 证书
在完成安装访问后台的时候,浏览器会报 Your connection is not private 的错误,这是因为 SSL 证书缺失了。
可以使用 v-add-letsencrypt-host 命令来申请证书。
不过我在执行的过程中发生一些问题,报错:
Error: Let's Encrypt validation status 400 (xxx.einverne.info). Details: Unable to update challenge :: authorization must be pending
Error: Let's Encrypt SSL creation failed
查看发现因为在机器上安装了 Docker,所以虚拟了一个网络端口,在后台 Web 查看域名的时候,看到其中关联的 IP 地址是一个本地的地址 172.17.0.1,把这个地址修改成 VPS 的真实 IP 地址。然后重新执行命令即可。
如果出现其他的错误,也可以到如下的目录中查看日志:
/var/log/hestia/LE-user-domain-timestamp
Create a new user
虽然以 admin 登录可以在后台做任何事情,但是还是推荐创建一个新用户,以新用户的身份来操作。
添加域名
创建完用户之后以该用户登录,然后在 Web 中,选择添加域名。
添加的过程中有如下配置:
在高级选项中:
Nginx 模板设置
可以在 /usr/local/hestia/data/templates/web/nginx/ 目录下查看到默认的 Nginx 配置模板。其中的默认模板:
default.tpl
default.stpl
可以将默认的模板拷贝到新的文件修改:
cp original.tpl new.tpl
cp original.stpl new.stpl
cp original.sh new.sh
模板中支持的变量可以参考中文官网
Tips
修改面板的端口
默认情况下 HestiaCP 使用 8083 端口,当然在安装的时候也可以指定,但是如果安装完成之后想要调整端口,可以使用如下的命令:
v-change-sys-port 2083
重置 admin 密码
更改 admin 用户密码
v-change-user-password admin yourpass
或者更改其他任何用户的密码。
更改 hostname
v-change-sys-hostname your.hostname
强制主机 SSL
强制主机名使用 SSL
v-add-letsencrypt-host
v-add-web-domain-ssl-hsts 'admin' 'hcp.domain.com'
v.add-web-domain-ssl-force 'admin' 'hcp.domain.com'
删除不需要的主机方案
rm -fr /usr/local/hestia/install/rhel
rm -fr /usr/local/hestia/install/ubuntu
rm -fr /usr/local/hestia/install/debian/7
rm -fr /usr/local/hestia/install/debian/8
rm -fr /usr/local/hestia/install/debian/9
开放端口
touch /etc/iptables.up.rules
v-add-firewall-rule ACCEPT 0.0.0.0/0 22 TCP SSH
v-add-firewall-rule ACCEPT 0.0.0.0/0 5566 TCP HestiaCP
使用命令行工具
source /etc/profile
PATH=$PATH:/usr/local/hestia/bin && export PATH
修改控制面板的 IP
可以使用命令行:
v-update-sys-ip 1.2.3.4
v-rebuild-web-domains admin
v-rebuild-mail-domains admin