Skip to content

Commit

Permalink
Merge branch 'main' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
jaapmarcus committed Jul 19, 2023
2 parents 1fc6248 + 193c2c3 commit 42ff8f0
Show file tree
Hide file tree
Showing 62 changed files with 796 additions and 591 deletions.
26 changes: 23 additions & 3 deletions CHANGELOG.md
Expand Up @@ -2,9 +2,29 @@

All notable changes to this project will be documented in this file.

## [1.8.1] - Service releae

- Fixed Debian 10 not working with ip adresses check
## [1.8.2] - Service release

- Added more files to default proxy extensions (#3768)
- Increased width of menu bar dropdowns on mobile (#3765)
- Increased HSTS max-age to 31536000 (#3762)
- Add prompt to `v-update-sys-hestia-git` to install NodeJS if not present (#3779)
- Fixed an issue where `v-update-sys-ip` was not run on boot on Debian systems
- Fixed an issue where the system hostname would lose its FQDN format on reboot when using Proxmox VE containers
- Fixed an issue ith `v-generate-ssl-cert` (#3783)
- Fixed an issue where the port was missing in welcome email (#3784)
- Fixed an issue with the `is_mail_new` function (#3785)
- Fixed an issue where the "Save" button would appear before warning was dismissed when attempting to add a domain or database as admin (#3786)
- Fixed an issue where MySQL 8 could not be installed on Ubuntu (#3788)
- Fixed an issue with TLS connections when using ProFTPD (#3790)
- Fixed an issue where vlan or virtual NIC connections would fail the adapter validity check when adding an IP address (#3797)
- Fixed several PHP 500 errors and warnings in the Control Panel backend (#3789)
- Fixed an issue with v-change-dns-domain-ip and DNS cluster (#3803)
- Update Multiple Quick install apps (#3800 and #3801)
- Updated language translations

## [1.8.1] - Service release

- Fixed Debian 10 not working with IP addresses check
- Fixed Exim4 update config via patch was unreliable added few safety checks and add notice if failed.
- Fixed hestia-nginx not loading with custom port

Expand Down
20 changes: 10 additions & 10 deletions README.md
@@ -1,16 +1,15 @@
<h1 align="center"><a href="https://www.hestiacp.com/">Hestia Control Panel</a></h1>

![Hestia screenshot](https://storage.hestiacp.com/hestiascreen.png)
![HestiaCP Web Interface screenshot](https://storage.hestiacp.com/hestiascreen.png)

<h2 align="center">Lightweight and powerful control panel for the modern web</h2>

<p align="center"><strong>Latest stable release:</strong> Version 1.8.1 | <a href="https://github.com/hestiacp/hestiacp/blob/release/CHANGELOG.md">View Changelog</a></p>
<p align="center"><strong>Latest stable release:</strong> Version 1.8.2 | <a href="https://github.com/hestiacp/hestiacp/blob/release/CHANGELOG.md">View Changelog</a></p>

<p align="center">
<a href="https://www.hestiacp.com/">HestiaCP.com</a> |
<a href="https://hestiacp.com/docs/">Documentation</a> |
<a href="https://forum.hestiacp.com/">Forum</a> |
<a href="https://discord.gg/nXRUZch">Discord</a>
<a href="https://docs.hestiacp.com/">Documentation</a> |
<a href="https://forum.hestiacp.com/">Forum</a>
<br/><br/>
<a href="https://drone.hestiacp.com/hestiacp/hestiacp">
<img src="https://drone.hestiacp.com/api/badges/hestiacp/hestiacp/status.svg?ref=refs/heads/main" alt="Drone Status"/>
Expand Down Expand Up @@ -44,16 +43,17 @@ Smart Chain: 0xfF3Dd2c889bd0Ff73d8085B84A314FC7c88e5D51<br>

## Supported platforms and operating systems

- **NOTE:** Hestia Control Panel does not support 32 bit operating systems!
- **Debian:** 12, 11, or 10
- **Ubuntu:** 22.04 LTS, 20.04 LTS

- **Debian:** 11 or 10
- **Ubuntu:** 22.04LTS, 20.04 LTS
**NOTES:**

- **NOTE:** Hestia Control Panel in combination with OpenVZ 7 or lower might have issue Bind9 server not starting or issues with Firewall. If you use a Virtual Private Server we strongly advice you to use something based on KVM or LXC!
- Hestia Control Panel does not support 32 bit operating systems!
- Hestia Control Panel in combination with OpenVZ 7 or lower might have issues with DNS and/or firewall. If you use a Virtual Private Server we strongly advice you to use something based on KVM or LXC!

## Installing Hestia Control Panel

- **NOTE:** Hestia Control Panel must be installed on top of a fresh operating system installation to ensure proper functionality.
- **NOTE:** You must install Hestia Control Panel on top of a fresh operating system installation to ensure proper functionality.

While we have taken every effort to make the installation process and the control panel interface as friendly as possible (even for new users), it is assumed that you will have some prior knowledge and understanding in the basics how to set up a Linux server before continuing.

Expand Down
19 changes: 16 additions & 3 deletions bin/v-add-web-domain
Expand Up @@ -188,9 +188,22 @@ add_web_config "$WEB_SYSTEM" "$WEB_TEMPLATE.tpl"
if [ -n "$PROXY_SYSTEM" ]; then
PROXY_EXT="$proxy_ext"
if [ -z "$proxy_ext" ]; then
PROXY_EXT="jpg,jpeg,webp,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls"
PROXY_EXT="$PROXY_EXT,exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp"
PROXY_EXT="$PROXY_EXT,rtf,js,mp3,avi,mpeg,flv,html,htm,woff,woff2,ttf"
# Code
PROXY_EXT="css,htm,html,js,json,xml"
# Image (from https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types)
PROXY_EXT="$PROXY_EXT,apng,avif,bmp,cur,gif,ico,jfif,jpg,jpeg,pjp,pjpeg,png,svg,tif,tiff,webp"
# Audio from (https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Audio_codecs)
PROXY_EXT="$PROXY_EXT,aac,caf,flac,m4a,midi,mp3,ogg,opus,wav"
# Video (from https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Video_codecs)
PROXY_EXT="$PROXY_EXT,3gp,av1,avi,m4v,mkv,mov,mpg,mpeg,mp4,mp4v,webm"
# Fonts
PROXY_EXT="$PROXY_EXT,otf,ttf,woff,woff2"
# Productivity
PROXY_EXT="$PROXY_EXT,doc,docx,odf,odp,ods,odt,pdf,ppt,pptx,rtf,txt,xls,xlsx"
# Archive
PROXY_EXT="$PROXY_EXT,7z,bz2,gz,rar,tar,tgz,zip"
# Binaries
PROXY_EXT="$PROXY_EXT,apk,appx,bin,dmg,exe,img,iso,jar,msi"
fi
if [ -z "$PROXY_TEMPLATE" ]; then
PROXY_TEMPLATE='default'
Expand Down
2 changes: 1 addition & 1 deletion bin/v-add-web-domain-ssl-hsts
Expand Up @@ -56,7 +56,7 @@ else
hstsconf="$HOMEDIR/$user/conf/web/$domain/$PROXY_SYSTEM.hsts.conf"
fi

echo 'add_header Strict-Transport-Security "max-age=15768000;" always;' > $hstsconf
echo 'add_header Strict-Transport-Security "max-age=31536000;" always;' > $hstsconf

chown root:$user $hstsconf
chmod 640 $hstsconf
Expand Down
2 changes: 1 addition & 1 deletion bin/v-change-dns-domain-ip
Expand Up @@ -75,7 +75,7 @@ if [ "$DNS_CLUSTER" = "yes" ]; then
# Check for first sync
dlock=$(grep "domain $user $domain" $HESTIA/data/queue/dns-cluster.pipe)
if [ -z "$dlock" ]; then
cmd="$BIN/v-add-remote-dns-domain $user $domain domain yes"
cmd="$BIN/v-add-remote-dns-domain $user $domain yes"
echo "$cmd" >> $HESTIA/data/queue/dns-cluster.pipe
fi
fi
Expand Down
2 changes: 1 addition & 1 deletion bin/v-generate-ssl-cert
Expand Up @@ -173,7 +173,7 @@ esac
# Don't allow non root users view folder
chmod 660 $workdir
# Clean up the mess
echo "rm -rf $workdir" | at "now +15 minute" > /dev/null 2>&1
echo "rm -rf $workdir" | at -M "now +15 minute" > /dev/null 2>&1
# Delete tmp dir
#rm -rf $workdir

Expand Down
12 changes: 10 additions & 2 deletions bin/v-update-sys-hestia-git
Expand Up @@ -20,13 +20,21 @@ source /etc/hestiacp/hestia.conf
source $HESTIA/func/main.sh
# load config file
source_conf "$HESTIA/conf/hestia.conf"
# define NodeJS version for download (required for building JS/CSS)
nodejs_ver="20"

# Perform verification if read-only mode is enabled
check_hestia_demo_mode

# Detect and install NodeJS if necessary
if [ -z $(which "node") ]; then
echo "Unable to locate Node.js See https://hestiacp.com/docs/contributing/development.html"
exit 0
read -p "NodeJS not found. Install now to proceed? [Y/n] " answer
if [ "$answer" = 'y' ] || [ "$answer" = 'Y' ]; then
curl -fsSL "https://deb.nodesource.com/setup_$nodejs_ver.x" | bash - &&\
sudo apt-get install -y nodejs
else
exit 0
fi
fi

# Define download function
Expand Down
14 changes: 6 additions & 8 deletions bin/v-update-sys-ip
Expand Up @@ -37,15 +37,13 @@ check_hestia_demo_mode
#----------------------------------------------------------#

# Listing system IP addresses
# Detect "physical" NICs only (virtual NICs created by Docker, WireGuard etc. are excluded)
physical_nics="$(ip -d -j link show | jq -r '.[] | if .link_type == "loopback" // .linkinfo.info_kind then empty else .ifname end')"
nics="$(ip -d -j link show | jq -r '.[] | if .link_type == "loopback" then empty else .ifname end')"

# Proxmox return empty value for $physical_nics.
if [ -z "$physical_nics" ]; then
physical_nics="$(ip -d -j link show | jq -r '.[] | if .link_type == "loopback" then empty else .ifname end')"
fi

for nic in $physical_nics; do
for nic in $nics; do
nic_type="$(ip -d -j link show "$nic" | jq -r '.[].linkinfo.info_kind')"
if [ "$nic_type" = "bridge" ]; then
break
fi
nic_ipv4s="$(ip -4 -d -j addr show "$nic" | jq -r '.[] | select(length > 0) | .addr_info[] | if .scope == "global" then .local else empty end')"
if [ -z "$ips" ]; then
ips="$nic_ipv4s"
Expand Down
1 change: 0 additions & 1 deletion docs/.vitepress/config.ts
Expand Up @@ -24,7 +24,6 @@ export default defineConfig({

socialLinks: [
{ icon: "github", link: "https://github.com/hestiacp/hestiacp" },
{ icon: "discord", link: "https://discord.gg/nXRUZch" },
{ icon: "twitter", link: "https://twitter.com/HestiaPanel" },
{ icon: "facebook", link: "https://www.facebook.com/hestiacp" },
],
Expand Down
14 changes: 7 additions & 7 deletions docs/docs/introduction/getting-started.md
Expand Up @@ -13,12 +13,12 @@ Hestia must be installed on top of a fresh operating system installation to ensu
If on a VPS/KVM, and there is already an admin account, either delete that default admin ID, or use `--force` to continue with the installation. See custom installation below for further details.
:::

| | Minimum | Recommended |
| -------------------- | ----------------------------------------- | ------------------------------------ |
| **CPU** | 1 core, 64-bit | 4 cores |
| **Memory** | 1 GB (no SpamAssassin and ClamAV) | 4 GB |
| **Disk** | 10 GB HDD | 40 GB SSD |
| **Operating System** | Debian 10, 11 <br>Ubuntu 20.04, 22.04 LTS | Latest Debian <br> Latest Ubuntu LTS |
| | Minimum | Recommended |
| -------------------- | ---------------------------------------------- | ------------------------------------ |
| **CPU** | 1 core, 64-bit | 4 cores |
| **Memory** | 1 GB (no SpamAssassin and ClamAV) | 4 GB |
| **Disk** | 10 GB HDD | 40 GB SSD |
| **Operating System** | Debian 10, 11 or 12<br>Ubuntu 20.04, 22.04 LTS | Latest Debian <br> Latest Ubuntu LTS |

::: warning
Hestia only runs on AMD64 / x86_64 and ARM64 / aarch64 processors. It also requires a 64bit operating system!
Expand All @@ -27,7 +27,7 @@ We currently do not support i386 or ARM7-based processors.

### Supported operating systems

- Debian 10 or 11
- Debian 10, 11 or 12
- Ubuntu 20.04 or 22.04

::: warning
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Expand Up @@ -40,7 +40,7 @@ features:
linkText: Help develop Hestia
- icon: 🤝
title: Supported by the community
details: Hestia has a great support community - join the forum or the Discord server! To keep the project running, we rely on donations, which can be made via PayPal or cryptocurrency.
details: Hestia has a great support community - join the forum! To keep the project running, we rely on donations, which can be made via PayPal or cryptocurrency.
link: /donate
linkText: Donate
---
14 changes: 8 additions & 6 deletions func/domain.sh
Expand Up @@ -679,14 +679,16 @@ is_mail_domain_new() {
is_mail_new() {
check_acc=$(grep "ACCOUNT='$1'" $USER_DATA/mail/$domain.conf)
if [ -n "$check_acc" ]; then
check_result "$E_EXISTS" "mail account $1 is already exists"
check_result "$E_EXISTS" "mail account $1 already exists"
fi
check_als=$(awk -F "ALIAS='" '{print $2}' $USER_DATA/mail/$domain.conf)
match=$(echo $check_als | cut -d "'" -f1)
parse_object_kv_list $(grep "ALIAS='$match'" $USER_DATA/mail/$domain.conf)
check_als=$(echo ",$ALIAS," | grep ",$1,")
if [ -n "$check_als" ]; then
check_result "$E_EXISTS" "mail alias $1 is already exists"
match=$(echo "$check_als" | cut -f 1 -d "'" | grep $1)
if [ -n "$match" ]; then
parse_object_kv_list $(grep "ALIAS='$match'" $USER_DATA/mail/$domain.conf)
check_als=$(echo ",$ALIAS," | grep ",$1,")
if [ -n "$check_als" ]; then
check_result "$E_EXISTS" "mail alias $1 already exists"
fi
fi
}

Expand Down
11 changes: 3 additions & 8 deletions func/main.sh
Expand Up @@ -129,8 +129,8 @@ log_history() {
fi
touch $log

if [ '750' -lt "$(wc -l $log | cut -f 1 -d ' ')" ]; then
tail -n 499 $log > $log.moved
if [ '300' -lt "$(wc -l $log | cut -f 1 -d ' ')" ]; then
tail -n 250 $log > $log.moved
mv -f $log.moved $log
chmod 660 $log
fi
Expand Down Expand Up @@ -1025,12 +1025,7 @@ is_int_format_valid() {

# Interface validator
is_interface_format_valid() {
# Detect "physical" NICs only (virtual NICs created by Docker, WireGuard etc. are excluded)
nic_names="$(ip -d -j link show | jq -r '.[] | if .link_type == "loopback" // .linkinfo.info_kind then empty else .ifname, if .altnames then .altnames[] else empty end end')"
# Proxmox return empty value for $physical_nics
if [ -z "$nic_names" ]; then
nic_names="$(ip -d -j link show | jq -r '.[] | if .link_type == "loopback" then empty else .ifname, if .altnames then .altnames[] else empty end end')"
fi
nic_names="$(ip -d -j link show | jq -r '.[] | if .link_type == "loopback" then empty else .ifname, if .altnames then .altnames[] else empty end end')"
if [ -z "$(echo "$nic_names" | grep -x "$1")" ]; then
check_result "$E_INVALID" "invalid interface format :: $1"
fi
Expand Down
2 changes: 1 addition & 1 deletion func/upgrade.sh
Expand Up @@ -131,8 +131,8 @@ upgrade_complete_message() {
echo "The Hestia Control Panel development team "
echo
echo "Web: https://www.hestiacp.com/ "
echo "Docs: https://docs.hestiacp.com/ "
echo "Forum: https://forum.hestiacp.com/ "
echo "Discord: https://discord.gg/nXRUZch "
echo "GitHub: https://github.com/hestiacp/hestiacp/ "
echo
echo "Help support the Hestia Control Panel project by donating via PayPal: "
Expand Down
1 change: 0 additions & 1 deletion install/deb/proftpd/proftpd.conf
Expand Up @@ -26,7 +26,6 @@ PassivePorts 12000 12100

<Global>
Umask 002
IdentLookups off
AllowOverwrite yes
<Limit ALL SITE_CHMOD>
AllowAll
Expand Down

0 comments on commit 42ff8f0

Please sign in to comment.