Skip to content

Commit 0d71587

Browse files
committed
Merge branch 'main' into release
2 parents 25694e5 + f9e5c5c commit 0d71587

File tree

748 files changed

+7438
-4029
lines changed

Some content is hidden

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

748 files changed

+7438
-4029
lines changed

.drone.yml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,23 @@ steps:
8686
trigger:
8787
event: [ push, pull_request ]
8888

89+
---
90+
kind: pipeline
91+
type: docker
92+
name: Linting
93+
94+
concurrency:
95+
limit: 1
96+
97+
steps:
98+
- name: shellcheck
99+
image: koalaman/shellcheck-alpine
100+
commands:
101+
- ./test/shellcheck.sh
102+
103+
trigger:
104+
event: [ pull_request, push ]
105+
89106
---
90107
kind: signature
91-
hmac: bca7f80ac6198662bc658235d7345485213847f1c00f027e1439775e02776bc7
108+
hmac: 48d34d11001c99b470114f50c4284fa107a5e61ad08ada38307493b9e9b2883f

CHANGELOG.md

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

4-
## [DEVELOPMENT] - Service release
4+
## [1.5.0] - Major Release (Feature / Quality Update)
55

6-
## Features
6+
### Breaking changes ###
7+
- **NOTE:** Changes have been made on how phpmyadmin/phppgadmin config are included in apache2 config. To restore to the old behaviour add `IncludeOptional conf.d/*.inc` below `IncludeOptional conf.d/*.conf` in /etc/apache2/apache2.conf and restart your server.
8+
- **NOTE:** Hestia packages for arm64 has been added to atp.hestiacp.com please use the normal install instructions instead! For current ARM installs to enable auto update remove the `#` in /etc/apt/sources.list.d/hestia.list `# deb https://apt.hestiacp.com/ focal main` becomes `deb https://apt.hestiacp.com/ focal main` and then run `apt update && apt upgrade -y`
9+
10+
### Features
11+
12+
- Add support for Dovecote Sieve #2163 (@gejobj)
13+
- Improve HELO based system and use RDNS lookup instead our old system
14+
- Add support for PHP 8.1 #2233
15+
- Set default php version for new installs to PHP 8.0
16+
- Add support for ARM64 Processors
17+
- Disable access phpmyadmin/phppgadmin over ip address in Apache2 #2072
18+
19+
### Bugfixes
20+
21+
- Disable /reset/ endpoint when POLICY_SYSTEM_PASSWORD_RESET = no #2167
22+
- Add rate limit forgot password #2199
23+
- Prevent SOA count up after v-change-dns-records with no changes are made
24+
- Fix #1296 Log rotate does not rotate logs any more on Ubuntu 20.04 and Debian 11
25+
- Run shellcheck to improve code quality
26+
- Improve ssh port detection for filemanager. Allowing users to create /etc/ssh/sshd.conf.d/custom.conf with custom port
27+
- Fix an bug in v-add-letsencrypt-host due to changes of Lets Encrypt causing issues with rate limiting
28+
- Improve Update process Hestia and allow versions to decide a a rebuild is required
29+
- Add Download SSL certificate function for self generated ssl certificates #2181
30+
- Block access to .user.ini for Nginx + Apache2 #2179
31+
- Add support for download B2 backup to local server to allow for restore #2199
32+
- Update permissions /var/log/roundcube on older installations #2173
33+
- Update translations
34+
- Fix Roundcube permissions
35+
- Add .webp to list of media formats that can be cached by the browser
36+
- Disable /list/log/auth when in Demo mode
37+
- Fix #1139 By force rebuilding webmail config files
38+
- Fix a bug in rebuild mysql database @depca
39+
- Fix #1239 Bug in basic auth not working properly
40+
- Add validation for email address before install server for admin account
41+
- Fix bug in v-change-domain-owner #2210
42+
- Improve input validation Add / Edit User package and improve reading config files to prevent security issues.
43+
44+
45+
### Dependencies
46+
47+
- Update Roundcube to 1.5.0 https://roundcube.net/news/2021/10/18/roundcube-1.5.0-released
48+
- Update jQuery UI to the last version [CVE-2021-41182](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41182)
749

850
## [1.4.17] - Service release
951

1052
### Bugfixes
1153

1254
- Fix bug with nginx and phmyadmin not loading
55+
- Fix #2166 Search function broken
56+
- Update Quick installers to the last version
1357

1458
## [1.4.16] - Service release
1559

1660
### Bugfixes
1761

1862
- Fix bug with .json not loading on Apache2 due to rule in /etc/apache2/conf.d/phpmyadmin.conf
1963

20-
### Bugfixes
21-
2264
## [1.4.15] - Service release
2365

2466
## Features

README.md

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,18 @@
22

33
[Hestia Control Panel](https://www.hestiacp.com/)
44
==================================================
5-
**Latest stable release:** Version 1.4.17 | [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.5.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>
99
**Forums:** [forum.hestiacp.com](https://forum.hestiacp.com/)<br>
1010
**Discord:** [Join the discussion](https://discord.gg/nXRUZch)<br />
11-
<br><br>
12-
[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ST87LQH2CHGLA)
1311
<br>
12+
[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ST87LQH2CHGLA)<br /><br />
13+
Bitcoin : bc1q48jt5wg5jaj8g9zy7c3j03cv57j2m2u5anlutu<br>
14+
Ethereum : 0xfF3Dd2c889bd0Ff73d8085B84A314FC7c88e5D51<br>
15+
Binance: bnb1l4ywvw5ejfmsgjdcx8jn5lxj7zsun8ktfu7rh8<br>
16+
Smart Chain: 0xfF3Dd2c889bd0Ff73d8085B84A314FC7c88e5D51<br>
1417

1518
**Welcome!**
1619
----------------------------
@@ -19,22 +22,32 @@ Hestia Control Panel is designed to provide administrators an easy to use web an
1922
Features and Services
2023
----------------------------
2124
* Apache2 and NGINX with PHP-FPM
22-
* Multiple PHP versions (5.6 - 8.0, 7.4 as default)
25+
* Multiple PHP versions (5.6 - 8.1, 8.0 as default)
2326
* DNS Server (Bind) with clustering capabilities
24-
* POP/IMAP/SMTP mail services with Anti-Virus, Anti-Spam, and Webmail (ClamAV, SpamAssassin, Roundcube, Rainloop)
27+
* POP/IMAP/SMTP mail services with Anti-Virus, Anti-Spam, and Webmail (ClamAV, SpamAssassin, Sieve, Roundcube, Rainloop)
2528
* MariaDB and/or PostgreSQL databases
2629
* Let's Encrypt SSL support with wildcard certificates
2730
* Firewall with brute-force attack detection and IP lists (iptables, fail2ban, and ipset).
2831

2932
Supported platforms and operating systems
33+
========================================================
34+
35+
AMD (x86_64 Intel/AMD)
3036
----------------------------
31-
* **CPU Architecture:** AMD64 (x86_64 Intel/AMD)
3237
* **Debian:** 11, 10 or 9
3338
* **Ubuntu:** 20.04 LTS or 18.04 LTS
34-
* **NOTE:** Hestia Control Panel must be installed on top of a fresh operating system installation to ensure proper functionality.
39+
40+
ARM64 (arm64)
41+
----------------------------
42+
* **Debian:** 11, 10
43+
* **Ubuntu:** 20.04 LTS
44+
* **NOTE:** ARM 64 bit processors only! ARM 32bit (armhf) is currently not supported!
3545

3646
Installing Hestia Control Panel
3747
============================
48+
49+
* **NOTE:** Hestia Control Panel must be installed on top of a fresh operating system installation to ensure proper functionality.
50+
3851
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.
3952

4053
## Step 1: Log in

bin/v-acknowledge-user-notification

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ user=$1
1717
id=$2
1818

1919
# Includes
20+
# shellcheck source=/etc/hestiacp/hestia.conf
21+
source /etc/hestiacp/hestia.conf
2022
# shellcheck source=/usr/local/hestia/func/main.sh
2123
source $HESTIA/func/main.sh
22-
# shellcheck source=/usr/local/hestia/conf/hestia.conf
23-
source $HESTIA/conf/hestia.conf
24-
25-
24+
# load config file
25+
source_conf "$HESTIA/conf/hestia.conf"
2626
#----------------------------------------------------------#
2727
# Verifications #
2828
#----------------------------------------------------------#

bin/v-add-backup-host

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,13 @@ path=${5-/backup}
2222
port=$6
2323

2424
# Includes
25+
# shellcheck source=/etc/hestiacp/hestia.conf
26+
source /etc/hestiacp/hestia.conf
2527
# shellcheck source=/usr/local/hestia/func/main.sh
2628
source $HESTIA/func/main.sh
27-
# shellcheck source=/usr/local/hestia/conf/hestia.conf
28-
source $HESTIA/conf/hestia.conf
29+
30+
# load config file
31+
source_conf "$HESTIA/conf/hestia.conf"
2932

3033
# Paths
3134
b2cli="/usr/local/bin/b2"
@@ -103,11 +106,14 @@ EOF
103106

104107
if [ "$type" != 'local' ];then
105108
check_args '4' "$#" "TYPE HOST USERNAME PASSWORD [PATH] [PORT]"
106-
is_format_valid 'user' 'host' 'path' 'port'
109+
is_format_valid 'host' 'path' 'port'
110+
is_username_format_valid "$username" "username"
107111
is_password_valid
112+
format_no_quotes "$password" "password"
113+
108114
if [ "$type" = 'sftp' ]; then
109115
which expect >/dev/null 2>&1
110-
check_result $? "expect command not found" $E_NOTEXIST
116+
check_result $? "expect command not found" "$E_NOTEXIST"
111117
fi
112118
if [ "$type" != 'b2' ]; then
113119
if ! (is_ip_format_valid "$host" >/dev/null); then
@@ -132,10 +138,10 @@ if [ "$type" = 'ftp' ]; then
132138
fconn=$(ftpc 2>&1)
133139
ferror=$(echo $fconn |\
134140
grep -i -e failed -e error -e "can't" -e "not conn" -e "incorrect")
135-
if [ ! -z "$ferror" ]; then
141+
if [ -n "$ferror" ]; then
136142
echo "Error: can't login to ftp $user@$host"
137143
log_event "$E_CONNECT" "$ARGUMENTS"
138-
exit $E_CONNECT
144+
exit "$E_CONNECT"
139145
fi
140146

141147
# Checking write permissions
@@ -146,12 +152,12 @@ if [ "$type" = 'ftp' ]; then
146152
ftmpdir="$path/vst.bK76A9SUkt"
147153
fi
148154
ftp_result=$(ftpc "mkdir $ftmpdir" "rm $ftmpdir"|grep -v Trying)
149-
if [ ! -z "$ftp_result" ] ; then
155+
if [ -n "$ftp_result" ] ; then
150156
echo "$ftp_result"
151157
rm -rf $tmpdir
152158
echo "Error: can't create $ftmpdir folder on the ftp"
153159
log_event "$E_FTP" "$ARGUMENTS"
154-
exit $E_FTP
160+
exit "$E_FTP"
155161
fi
156162
fi
157163

@@ -202,7 +208,7 @@ if [ "$type" = 'b2' ]; then
202208

203209
b2 clear-account > /dev/null 2>&1
204210
b2 authorize-account "$user" "$raw_password"> /dev/null 2>&1
205-
b2 ls --long $host $user > /dev/null 2>&1
211+
b2 ls --long "$host" "$user" > /dev/null 2>&1
206212

207213
if [ $? -ne 0 ]; then
208214
check_result "$E_CONNECT" "b2 failed to verify connection"

bin/v-add-cron-hestia-autoupdate

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ user=admin
1515
mode=$1
1616

1717
# Includes
18+
# shellcheck source=/etc/hestiacp/hestia.conf
19+
source /etc/hestiacp/hestia.conf
1820
# shellcheck source=/usr/local/hestia/func/main.sh
1921
source $HESTIA/func/main.sh
20-
# shellcheck source=/usr/local/hestia/conf/hestia.conf
21-
source $HESTIA/conf/hestia.conf
22+
# load config file
23+
source_conf "$HESTIA/conf/hestia.conf"
2224

2325

2426
#----------------------------------------------------------#
@@ -30,7 +32,7 @@ is_package_full 'CRON_JOBS'
3032
get_next_cronjob
3133
check_cron_apt=$(grep 'v-update-sys-hestia-all' $USER_DATA/cron.conf)
3234
check_cron_git=$(grep 'v-update-sys-hestia-git' $USER_DATA/cron.conf)
33-
if [ ! -z "$check_cron_apt" ] || [ ! -z "$check_cron_git" ]; then
35+
if [ -n "$check_cron_apt" ] || [ -n "$check_cron_git" ]; then
3436
exit
3537
fi
3638

@@ -87,7 +89,7 @@ sync_cron_jobs
8789
#----------------------------------------------------------#
8890

8991
# Increasing cron value
90-
increase_user_value $user '$U_CRON_JOBS'
92+
increase_user_value "$user" '$U_CRON_JOBS'
9193

9294
# Restarting crond
9395
$BIN/v-restart-cron

bin/v-add-cron-job

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@ job=$8
2525
restart=$9
2626

2727
# Includes
28+
# shellcheck source=/etc/hestiacp/hestia.conf
29+
source /etc/hestiacp/hestia.conf
2830
# shellcheck source=/usr/local/hestia/func/main.sh
2931
source $HESTIA/func/main.sh
30-
# shellcheck source=/usr/local/hestia/conf/hestia.conf
31-
source $HESTIA/conf/hestia.conf
32+
# load config file
33+
source_conf "$HESTIA/conf/hestia.conf"
3234

3335
HIDE=7
3436

@@ -84,7 +86,7 @@ sync_cron_jobs
8486
increase_user_value $user '$U_CRON_JOBS'
8587

8688
# Restarting crond
87-
$BIN/v-restart-cron $restart
89+
$BIN/v-restart-cron "$restart"
8890
check_result $? "Cron restart failed" >/dev/null
8991

9092
# Logging

bin/v-add-cron-letsencrypt-job

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
#----------------------------------------------------------#
1212

1313
# Includes
14+
# shellcheck source=/etc/hestiacp/hestia.conf
15+
source /etc/hestiacp/hestia.conf
1416
# shellcheck source=/usr/local/hestia/func/main.sh
1517
source $HESTIA/func/main.sh
16-
# shellcheck source=/usr/local/hestia/conf/hestia.conf
17-
source $HESTIA/conf/hestia.conf
18+
# load config file
19+
source_conf "$HESTIA/conf/hestia.conf"
1820

1921

2022
#----------------------------------------------------------#
@@ -33,7 +35,7 @@ check_hestia_demo_mode
3335
# Add cron job
3436
cmd="sudo $HESTIA/bin/v-update-sys-queue letsencrypt"
3537
check_cron=$(grep "$cmd" $HESTIA/data/users/admin/cron.conf 2> /dev/null)
36-
if [ -z "$check_cron" ] && [ ! -z "$CRON_SYSTEM" ]; then
38+
if [ -z "$check_cron" ] && [ -n "$CRON_SYSTEM" ]; then
3739
$BIN/v-add-cron-job admin '*/5' '*' '*' '*' '*' "$cmd"
3840
fi
3941

bin/v-add-cron-reports

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@
1717
user=$1
1818

1919
# Includes
20+
# shellcheck source=/etc/hestiacp/hestia.conf
21+
source /etc/hestiacp/hestia.conf
2022
# shellcheck source=/usr/local/hestia/func/main.sh
2123
source $HESTIA/func/main.sh
22-
# shellcheck source=/usr/local/hestia/conf/hestia.conf
23-
source $HESTIA/conf/hestia.conf
24+
# load config file
25+
source_conf "$HESTIA/conf/hestia.conf"
2426

2527

2628
#----------------------------------------------------------#

bin/v-add-cron-restart-job

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
#----------------------------------------------------------#
1212

1313
# Includes
14+
# shellcheck source=/etc/hestiacp/hestia.conf
15+
source /etc/hestiacp/hestia.conf
1416
# shellcheck source=/usr/local/hestia/func/main.sh
1517
source $HESTIA/func/main.sh
16-
# shellcheck source=/usr/local/hestia/conf/hestia.conf
17-
source $HESTIA/conf/hestia.conf
18+
# load config file
19+
source_conf "$HESTIA/conf/hestia.conf"
1820

1921

2022
#----------------------------------------------------------#
@@ -33,7 +35,7 @@ check_hestia_demo_mode
3335
# Add cron job
3436
cmd="sudo $HESTIA/bin/v-update-sys-queue restart"
3537
check_cron=$(grep "$cmd" $HESTIA/data/users/admin/cron.conf 2> /dev/null)
36-
if [ -z "$check_cron" ] && [ ! -z "$CRON_SYSTEM" ]; then
38+
if [ -z "$check_cron" ] && [ -n "$CRON_SYSTEM" ]; then
3739
$BIN/v-add-cron-job admin '*' '*' '*' '*' '*' "$cmd"
3840
fi
3941

0 commit comments

Comments
 (0)