Skip to content

Commit 56f865f

Browse files
committed
Merge branch 'main' into release
2 parents 0179f73 + ad1178d commit 56f865f

File tree

256 files changed

+6465
-1869
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

256 files changed

+6465
-1869
lines changed

.drone.yml

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@ steps:
3535
- name: Run config tests
3636
commands:
3737
- bats ./test/config-tests.bats
38-
- name: Run Check PHP
39-
commands:
40-
- ./test/check_php.sh
4138

4239
trigger:
4340
event: [ pull_request, push ]
@@ -89,10 +86,7 @@ steps:
8986
- name: Run config tests
9087
commands:
9188
- bats ./test/config-tests.bats
92-
- name: Run Check PHP
93-
commands:
94-
- ./test/check_php.sh
95-
89+
9690
trigger:
9791
event: [ pull_request, push ]
9892
ref:
@@ -111,10 +105,14 @@ concurrency:
111105
limit: 1
112106

113107
steps:
114-
- name: shellcheck
108+
- name: Shellcheck
115109
image: koalaman/shellcheck-alpine
116110
commands:
117111
- ./test/shellcheck.sh
112+
- name: PHP 8.1
113+
image: php:8.1-cli-bullseye
114+
commands:
115+
- ./test/check_php.sh ./web/
118116

119117
trigger:
120118
event: [ pull_request, push ]
@@ -160,7 +158,7 @@ steps:
160158
port: 22
161159
command_timeout: 2m
162160
script:
163-
- freight-add ./hestia/*.deb apt/bionic apt/focal apt/stretch apt/buster apt/bullseye
161+
- freight-add ./hestia/*.deb apt/bionic apt/focal apt/jammy apt/stretch apt/buster apt/bullseye
164162
- freight-cache
165163
- rm -fr ./hestia/
166164

@@ -169,4 +167,4 @@ trigger:
169167

170168
---
171169
kind: signature
172-
hmac: 07f845f902f859c97c78a346d340f7fb8d4b1242581a242e592b149c13428f50
170+
hmac: 980aea20314dab4328b0016eb35fa3ef18fdd46e5d891c7ab3809f704891e72b

.github/ISSUE_TEMPLATE/BUG-REPORT.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ body:
3939
- Control Panel Command Line Interface
4040
- Control Panel Installation or Upgrade
4141
- Control Panel Web Interface
42-
- Backend Web Server (Nginx, Apache2)
42+
- (Backend) Web Server (Nginx, Apache2)
4343
- Database (MariaDB, PostgreSQL)
4444
- Let's Encrypt SSL
4545
- Mail (Exim, Dovecot)

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ test/node_modules/
1515
npm-debug.log
1616
.phpunit.result.cache
1717
.vs
18-
.nova
18+
.nova
19+
/.idea/

CHANGELOG.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,90 @@
11
# Changelog
22
All notable changes to this project will be documented in this file.
33

4+
## [1.6.0] - Major Release (Feature / Quality Update)
5+
## [1.5.15] - Service release
6+
7+
### Important Notes
8+
9+
- Added support for Ubuntu 22.04 Jammy. If you planning to upgrade your server from Ubuntu 20.04 or 18.04 to Ubuntu 22.04 read the instruction carefully!
10+
- Issues with Ubuntu and Netplan and additional ip addresses has been discovered if this is the case for your setup please check if Netplan configuration is correct.
11+
- Due to know security issues with Rainloop [CVE-2022-29360](https://blog.sonarsource.com/rainloop-emails-at-risk-due-to-code-flaw/) and the lack of updates from there side we are planning to update / replace Rainloop with [Snappymail](https://github.com/the-djmaze/snappymail). How ever minor changes are needed to the release of Snappymail. The required changes have been made however we are waiting for for the final release of 2.16.4
12+
- Added support for Yescrypt and ARGON2ID for storing passwords of the users / email accounts password. If you encounter any issues (after importing a backup) with logging change the user / email account password and it will solve any issues.
13+
14+
### Deprecated
15+
16+
- Dropped support for Debian 9 for new installs (#2537)
17+
- Dropped support for RSSH on Ubuntu 18.04 on install (#2537)
18+
- Dropped support for TLS1.1 and older for Dovecot (#2012 and #2538)
19+
20+
### Features
21+
22+
- Added support for Ubuntu 22.04 Jammy (#2537 #2489)
23+
- Added support Exim rate limits for email accounts via UI (#2225 and #2523 @madito)
24+
- Added support to delete spam when reaching certain threshold (#2206 and #2200 @madito)
25+
- Added support to send mail to an unauthenticated SMTP relay (#2441 @clarkchentw)
26+
- Replace default MD5 encoding with ARGON2ID for Debian 10 and Ubuntu 20.04 and higher (#2421 @stsimb)
27+
- Added support for Yescrypt (#2235 / #2499)
28+
- Upgrade backend to PHP8.1 due to compatibility issues Jammy (#2515)
29+
- Introduce new api allowing users to use certain commands over API (#2535 and #1333)
30+
- Allow "Purge" cache button visible on templates with the name cacheing-your-template-name (#2526 #2530)
31+
- Add hooks to hestia-nginx and hestia-php (#2440)
32+
- Update DNS cluster to support new API system (#2587)
33+
34+
### Bugfixes
35+
36+
- Fixed an issue where --hostname and --email did not validated when using --interactive no (#2532 #2531)
37+
- Fixed an issue with the detection if MariaDB 10.7 was running (#2536 @gOOvER)
38+
- Fixed an issue with downloading a backup as a standard user (#2524 #2525)
39+
- Remove duplicated package installer (#2520 @rfzh1996)
40+
- Fixed an issue with "Do not allow user to login" checkbox sync up with real settings (#2507 #2513)
41+
- Fixed an issue where deleting a suspended users did not decrease the suspended user counter (#2504 #2531)
42+
- Fixed an issue where domain with redirect enabled was not able to "request" Lets encrypt ssl (#2514 #2176)
43+
- Add an notice when using Blackblaze on a ARM64 based server (#2394 @zedpr0)
44+
- Add rsyslog as a dependency (#2505)
45+
- Fixed an issue when a user import a backup a let's encrypt cronjob was not created on default. (#2498 @NickCoolii)
46+
- Add missing translation conversions in backup list (#2501)
47+
- Update example in v-add-web-domain-backend (#2500 gingerbeardman)
48+
- Update example in v-add-letsencrypt-domain (#2442)
49+
- Fixed an issue in configure-server-smtp.sh by loading /etc/hestiacp/hestia.conf (#2488)
50+
- Update Cloudflare ips in nginx.conf (#2542 @clarkchentw)
51+
- Remove duplicate code in Ubuntu installer (#2542 @clarkchentw)
52+
- Fixed an issue in Nginx + Apache2 mail "disabled" template. Causing users unable to request an valid ssl certificate (#2550 #2549)
53+
- Fixed an issue with "Reject spam" option not working (#2551 #2545)
54+
- Fixed an issue with Editing / Adding DNS records (#2546, #2547, #2548 @DunoCZ)
55+
- Fixed an issue with TXT records longer then 255 characters (#2559)
56+
- Fixed an issue with wp-cli permission denied and allow wp-cli to be run in v-run-cmd command (#2562 and #2565)
57+
- Fixed an issue with apt-get install output not written to install log (#2585)
58+
- Fixed multiple issues with improved Quick installer app for Wordpress (#2583)
59+
- Changes in upstream package caused phpMyAdmin Single Sign on feature to break (#2591)
60+
- Fixed issues with DNS cluster and the new API (#2587)
61+
- Fixed an issue where PHPpgAdmin config files was not renamed to .inc for Apache2 setups (#2592)
62+
- Startup Fail2ban on boot for Ubuntu 22.04 (#2596 #2594)
63+
- Fixed issue with duplicate config value (#2640 @Kujoe and #2605 #2610 )
64+
- Fixed an issue with change password function for webmail clients
65+
- Fixed multiple issues with Quick install apps in general (#2444, #1092, #2638)
66+
- Fixed an issue with memory usage graph and non english locale (#2643 #2540)
67+
- Fixed an issue with incorrect download path ftp backup (#2636 @cloudyhostcom)
68+
- Add php8.1 in v-run-cli-cmd (#2630 @gOOvER)
69+
- Fixed multiple issues with wildcard and Letsencrypt (#2627, #2626, #2624, #2623)
70+
- Fixed multiple issues in v-change-domain-owner (#2618, #2617, #1864)
71+
- Fixed an issue with MariadDB 10.8 detection (#2616)
72+
- Fixed an issue with netplan and additional ip addresses (#2612)
73+
- Removed MariaDB repo form Ubuntu 22.04 install
74+
- Don not install Roundcube dependencies if Roundcube is missing while installing sieve.
75+
- Remove duplicated code in v-add-web-domain-ssl
76+
77+
### Dependencies
78+
- Update hestia-nginx to 1.22.0
79+
- Update OpenSSL to 3.0.3
80+
- Update zlib to 1.2.12
81+
- Update PCRE to 10.40
82+
- Update hestia-php to 8.1.7
83+
- Updated phpMyAdmin to 5.2.0 (https://www.phpmyadmin.net/files/5.2.0/)
84+
- Update Filegator to 7.8.1
85+
- Update PHPmailer to 6.6.2
86+
- Update composer dependencies
87+
488
## [1.5.15] - Service release
589

690
### Bugfixes

README.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[Hestia Control Panel](https://www.hestiacp.com/)
44
==================================================
5-
**Latest stable release:** Version 1.5.14 | [View Changelog](https://github.com/hestiacp/hestiacp/blob/release/CHANGELOG.md) | [![Build Status](https://drone.hestiacp.com/api/badges/hestiacp/hestiacp/status.svg?ref=refs/heads/main)](https://drone.hestiacp.com/hestiacp/hestiacp) <br>
5+
**Latest stable release:** Version 1.6.0 | [View Changelog](https://github.com/hestiacp/hestiacp/blob/release/CHANGELOG.md) | [![Build Status](https://drone.hestiacp.com/api/badges/hestiacp/hestiacp/status.svg?ref=refs/heads/main)](https://drone.hestiacp.com/hestiacp/hestiacp) <br>
66

77
**Web:** [www.hestiacp.com](https://www.hestiacp.com/)<br>
88
**Documentation:** [docs.hestiacp.com](https://docs.hestiacp.com/)<br>
@@ -34,14 +34,13 @@ Supported platforms and operating systems
3434

3535
AMD (x86_64 Intel/AMD)
3636
----------------------------
37-
* **Debian:** 11, 10 or 9
38-
* **Ubuntu:** 20.04 LTS or 18.04 LTS
37+
* **Debian:** 11 or 10
38+
* **Ubuntu:** 22.04LTS, 20.04 LTS or 18.04 LTS
3939

4040
ARM64 (arm64)
4141
----------------------------
42-
* **Debian:** 11, 10, 9
43-
* **Ubuntu:** 20.04 LTS or 18.04 LTS
44-
* **NOTE:** ARM 64 bit processors only! ARM 32bit (armhf) is currently not supported!
42+
* **Debian:** 11 or 10
43+
* **Ubuntu:** 22.04LTS, 20.04 LTS or 18.04 LTS
4544

4645
Installing Hestia Control Panel
4746
============================

SECURITY.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
# Security Policy
22

3+
## Supported Versions
4+
5+
| Version | Supported |
6+
| ------- | ------------------ |
7+
| Latest | :white_check_mark: |
8+
9+
310
## Reporting a Vulnerability
411

512
If you believe that you have have discovered a vulnerability in Hestia Control Panel,
6-
please let our development team know via email at info@hestiacp.com.
13+
please let our development team know by submitting a report [Huntr.dev](https://huntr.dev/bounties/disclose/?target=https://github.com/hestiacp/hestiacp) Bounties and CVEs are automatically managed and allocated via the platform.
714

15+
If you are unable to [Huntr.dev](https://huntr.dev/bounties/disclose/?target=https://github.com/hestiacp/hestiacp) please send an email to support@hestiacp.com
816
We ask that you please include a detailed description of the vulnerability,
917
a list of services involved (e.g. exim, dovecot) and the versions which you've tested,
10-
full steps to reproduce the vulnerability, and include your findings and expected results.
18+
full steps to reproduce the vulnerability, and include your findings and expected results.

bin/v-add-access-key

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
#!/bin/bash
2+
# info: generate access key
3+
# options: USER [PERMISSIONS] [COMMENT] [FORMAT]
4+
#
5+
# example: v-add-access-key admin v-purge-nginx-cache,v-list-mail-accounts comment json
6+
#
7+
# The "PERMISSIONS" argument is optional for the admin user only.
8+
# This function creates a key file in $HESTIA/data/access-keys/
9+
10+
#----------------------------------------------------------#
11+
# Variables & Functions #
12+
#----------------------------------------------------------#
13+
14+
# Argument definition
15+
user=$1
16+
permissions=$2
17+
comment=$3
18+
format=${4-shell}
19+
20+
# Includes
21+
# shellcheck source=/etc/hestiacp/hestia.conf
22+
source /etc/hestiacp/hestia.conf
23+
# shellcheck source=/usr/local/hestia/func/main.sh
24+
source $HESTIA/func/main.sh
25+
# load config file
26+
source_conf "$HESTIA/conf/hestia.conf"
27+
28+
keygen() {
29+
local LENGTH=${1:-20}
30+
local USE_SPECIAL_CHARACTERS="${2:-no}"
31+
32+
local MATRIX='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
33+
if [[ "$USE_SPECIAL_CHARACTERS" == "yes" ]]; then
34+
MATRIX+='_-='
35+
fi
36+
37+
local PASS N
38+
while [ ${N:=1} -le $LENGTH ]; do
39+
PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"
40+
let N+=1
41+
done
42+
43+
echo "$PASS"
44+
}
45+
46+
access_key_id="$(keygen)"
47+
secret_access_key="$(keygen 40 yes)"
48+
49+
# Perform verification if read-only mode is enabled
50+
check_hestia_demo_mode
51+
52+
# Remove whitespace and bin path from permissions
53+
permissions="$(cleanup_key_permissions "$permissions")"
54+
55+
time_n_date=$(date +'%T %F')
56+
time=$(echo "$time_n_date" |cut -f 1 -d \ )
57+
date=$(echo "$time_n_date" |cut -f 2 -d \ )
58+
59+
#----------------------------------------------------------#
60+
# Verifications #
61+
#----------------------------------------------------------#
62+
63+
check_args '1' "$#" 'USER [PERMISSIONS] [COMMENT] [FORMAT]'
64+
is_format_valid 'user' 'comment' 'format'
65+
is_object_valid 'user' 'USER' "$user"
66+
is_key_permissions_format_valid "$permissions" "$user"
67+
68+
#----------------------------------------------------------#
69+
# Action #
70+
#----------------------------------------------------------#
71+
72+
if [ ! -d "$HESTIA/data/access-keys/" ]; then
73+
mkdir -p $HESTIA/data/access-keys/
74+
chown root:root $HESTIA/data/access-keys/
75+
chmod 750 $HESTIA/data/access-keys/
76+
fi
77+
78+
if [[ -e "$HESTIA/data/access-keys/${access_key_id}" ]]; then
79+
while [[ -e "$HESTIA/data/access-keys/${access_key_id}" ]]; do
80+
access_key_id=$(keygen)
81+
done
82+
fi
83+
84+
echo "SECRET_ACCESS_KEY='$secret_access_key'" >"$HESTIA/data/access-keys/${access_key_id}"
85+
echo "USER='$user'" >>"$HESTIA/data/access-keys/${access_key_id}"
86+
echo "PERMISSIONS='$permissions'" >>"$HESTIA/data/access-keys/${access_key_id}"
87+
echo "COMMENT='$comment'" >>"$HESTIA/data/access-keys/${access_key_id}"
88+
echo "TIME='$time'" >>"$HESTIA/data/access-keys/${access_key_id}"
89+
echo "DATE='$date'" >>"$HESTIA/data/access-keys/${access_key_id}"
90+
# TODO Index reserved for future implementation
91+
echo "EXPIRES_IN=''" >>"$HESTIA/data/access-keys/${access_key_id}"
92+
echo "IP=''" >>"$HESTIA/data/access-keys/${access_key_id}"
93+
94+
chmod 640 "$HESTIA/data/access-keys/${access_key_id}"
95+
96+
$BIN/v-list-access-key "$access_key_id" "$format"
97+
98+
#----------------------------------------------------------#
99+
# Hestia #
100+
#----------------------------------------------------------#
101+
102+
# Logging
103+
log_history "Access key $access_key_id generated" "Warning" "$user" "API"
104+
log_event "$OK" "$ARGUMENTS"
105+
106+
exit

bin/v-add-backup-host

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ password=$(perl -e 'print quotemeta shift(@ARGV)' "${raw_password}")
2020
path=${5-/backup}
2121
port=$6
2222

23+
# CPU Architecture
24+
arch=$(uname -m)
25+
2326
# Includes
2427
# shellcheck source=/usr/local/hestia/func/main.sh
2528
source $HESTIA/func/main.sh
@@ -189,8 +192,13 @@ fi
189192
if [ "$type" = 'b2' ]; then
190193
# Download b2 binary
191194
if [ ! -f "$b2cli" ]; then
192-
wget -O $b2cli $b2lnk > /dev/null 2>&1
193-
chmod +x $b2cli > /dev/null 2>&1
195+
if [ "$arch" = 'aarch64' ] || [ "$arch" = 'arm64' ]; then
196+
echo "Error: B2 binary for arm64 must be downloaded manually."
197+
exit 3
198+
else
199+
wget -O $b2cli $b2lnk > /dev/null 2>&1
200+
chmod +x $b2cli > /dev/null 2>&1
201+
fi
194202
if [ ! -f "$b2cli" ]; then
195203
echo "Error: Binary download failed, b2 doesnt work as expected."
196204
exit 3

bin/v-add-dns-domain

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ source_conf "$HESTIA/conf/hestia.conf"
4141
# Additional argument formatting
4242
format_domain
4343
format_domain_idn
44-
domain_utf=$(idn -t --quiet -u "$domain_idn")
44+
domain_utf=$(idn2 --quiet -d "$domain_idn")
4545

4646
#----------------------------------------------------------#
4747
# Verifications #

bin/v-add-dns-record

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
user=$1
1818
domain=$2
1919
domain_idn=$2
20-
record=$(idn -t --quiet -u "$3" )
20+
record=$(idn2 --quiet -d "$3" )
2121
record=$(echo "$record" | tr '[:upper:]' '[:lower:]')
2222
rtype=$(echo "$4"| tr '[:lower:]' '[:upper:]')
23-
dvalue=$(idn -t --quiet -u "$5" )
23+
dvalue=$5
2424
priority=$6
2525
id=$7
2626
restart=$8
@@ -55,8 +55,8 @@ if [[ $rtype =~ NS|CNAME|MX|PTR|SRV ]]; then
5555
fi
5656

5757
if [[ $rtype =~ NS|CNAME|MX|PTR|SRV ]]; then
58-
dvalue=$(idn -t --quiet -a "$dvalue" )
59-
record=$(idn -t --quiet -a "$record" )
58+
dvalue=$(idn2 --quiet "$dvalue" )
59+
record=$(idn2 --quiet "$record" )
6060
fi
6161

6262
# Cleanup quotes on dvalue

0 commit comments

Comments
 (0)