Skip to content

Commit 174d70a

Browse files
committed
Merge remote-tracking branch 'origin/develop' into 6113-undo-delete-mailbox
2 parents 401931f + 88edc27 commit 174d70a

File tree

823 files changed

+10198
-4919
lines changed

Some content is hidden

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

823 files changed

+10198
-4919
lines changed

.gitignore

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,39 @@
1-
.DS_Store
21
.idea
32
/nbproject/private/
43
.phplint-cache
54
*.swp
5+
6+
# macOS-specific things to exclude
7+
8+
# General
9+
.DS_Store
10+
.AppleDouble
11+
.LSOverride
12+
13+
# Icon must end with two \r
14+
Icon
15+
16+
17+
Icon?
18+
19+
# Thumbnails
20+
._*
21+
22+
# Files that might appear in the root of a volume
23+
.DocumentRevisions-V100
24+
.fseventsd
25+
.Spotlight-V100
26+
.TemporaryItems
27+
.Trashes
28+
.VolumeIcon.icns
29+
.com.apple.timemachine.donotpresent
30+
31+
# Directories potentially created on remote AFP share
32+
.AppleDB
33+
.AppleDesktop
34+
Network Trash Folder
35+
Temporary Items
36+
.apdisk
37+
38+
# Configuration for the Nova editor
39+
.nova

.gitlab-ci.yml

Lines changed: 51 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ stages:
33
- syntax
44
- syntax_diff
55
- test
6+
- build
67

78
#
89
### Stage syntax
@@ -16,6 +17,7 @@ syntax:lint:
1617
- schedules
1718
- web
1819
- merge_requests
20+
- /^\d+\.\d+\.\d+(p\d+)?$/
1921

2022
script:
2123
- echo "Syntax checking PHP files"
@@ -31,6 +33,12 @@ syntax_diff:lint:
3133
- pushes
3234
- branches
3335

36+
except:
37+
- schedules
38+
- web
39+
- merge_requests
40+
- /^\d+\.\d+\.\d+(p\d+)?$/
41+
3442
script:
3543
- echo "Syntax checking PHP files"
3644
- bash ./.git-scripts/syntax.sh commit
@@ -51,15 +59,46 @@ syntax_diff:lint:
5159
# - vendor/bin/phplint
5260

5361

54-
test:install:
55-
stage: test
56-
image: jerob/docker-ispconfig
57-
only:
58-
- schedules
59-
- web
60-
script:
61-
- $CI_PROJECT_DIR/helper_scripts/test_install_docker.sh
62-
- apt-get update
63-
- apt-get --yes install curl
64-
- curl --insecure https://127.0.0.1:8080/login/
65-
- ps xaf
62+
#test:install:
63+
# stage: test
64+
# image: jerob/docker-ispconfig
65+
# only:
66+
# - schedules
67+
# - web
68+
# - /^\d+\.\d+\.\d+$/
69+
#
70+
# script:
71+
# - $CI_PROJECT_DIR/helper_scripts/test_install_docker.sh
72+
# - apt-get update
73+
# - apt-get --yes install curl
74+
# - curl --insecure https://127.0.0.1:8080/login/
75+
# - ps xaf
76+
#
77+
# needs: ["syntax:lint"]
78+
79+
build:package:
80+
stage: build
81+
image: edbizarro/gitlab-ci-pipeline-php:7.2
82+
only:
83+
refs:
84+
- /^\d+\.\d+\.\d+(p\d+)?$/
85+
- web
86+
87+
script:
88+
- echo "Building release."
89+
- if [[ "$VER" == "" ]] ; then VER="$CI_COMMIT_TAG" ; fi
90+
- if [[ "$VER" == "" ]] ; then VER="3.2dev"$(date +%s) ; fi
91+
- if [[ "$VER" != "" ]] ; then echo "Replacing 3.2dev by $VER" ; sed -i -r 's/3\.2dev/'${VER}'/g' install/tpl/config.inc.php.master install/sql/ispconfig3.sql ; fi
92+
- RET=0
93+
- tar -cpzf ISPConfig-${VER}.tar.gz --exclude "ISPConfig-${VER}.tar.gz" --exclude ".git*" --exclude ".phplint.yml" --transform 's,^\./,ispconfig3_install/,' . || RET=$?
94+
- if [[ $RET > 1 ]] ; then exit $RET ; fi
95+
- echo "Listing tar contents for verification"
96+
- tar -tvf ISPConfig-${VER}.tar.gz
97+
- echo "Uploading file to download server"
98+
- curl -u "${DEPLOY_FTP_USER}:${DEPLOY_FTP_PASSWORD}" -T ISPConfig-${VER}.tar.gz ftp://${DEPLOY_FTP_SERVER}/web/
99+
- if [[ "$VER" =~ ^[0-9]+\.[0-9]+\.[0-9]+(p[0-9]+)?$ ]] ; then echo "Stable release ${VER}" ; curl -u "${DEPLOY_FTP_USER}:${DEPLOY_FTP_PASSWORD}" -T ISPConfig-${VER}.tar.gz ftp://${DEPLOY_FTP_SERVER}/web/ISPConfig-3-stable.tar.gz ; echo -n "${VER}" > ispconfig3_version.txt ; curl -u "${DEPLOY_FTP_USER}:${DEPLOY_FTP_PASSWORD}" -T ispconfig3_version.txt ftp://${DEPLOY_FTP_SERVER}/web/ ; else echo "Dev release ${VER}" ; fi
100+
- rm ISPConfig-${VER}.tar.gz
101+
- echo "Download url is https://download.ispconfig.org/ISPConfig-${VER}.tar.gz"
102+
103+
needs: ["syntax:lint"]
104+
allow_failure: false

.gitlab/issue_templates/Bug.md

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,45 @@
1-
## short description
2-
What is happening and what is wrong with that?
1+
<!-- Before creating a bug report, please:
2+
- Read the contribution guidelines: https://git.ispconfig.org/ispconfig/ispconfig3/-/blob/develop/CONTRIBUTING.md
3+
- Do not ask support questions here. If you are unsure if your problem is a bug, post a thread on the forum: https://www.howtoforge.com/community/#ispconfig-3.23
4+
- Make sure to remove any content from the description that you did not add. For example, if there are no related log entries, remove the whole "Related log entries" part.
5+
-->
36

4-
## correct behaviour
5-
What should happen instead?
7+
## Summary
8+
<!-- What is happening and what is wrong with that? -->
69

7-
## environment
8-
Server OS: (debian/ubuntu/centos/...)
9-
Server OS version: (wheezy/trusty/centos6/...)
10-
ISPConfig version: (3.0.5.4/3.1.5/3.1dev/...)
11-
_you can use `grep 'ISPC_APP_VERSION' /usr/local/ispconfig/server/lib/config.inc.php` to get it from the command line_
10+
## Steps to reproduce
11+
1. [First step]
12+
2. [Second step]
13+
3. [and so on...]
1214

13-
If it might be related to the problem
14-
```
15-
insert the output of `nginx -v` or `apachectl -v` here
16-
```
15+
## Correct behaviour
16+
<!-- What should happen instead? -->
17+
18+
## Environment
19+
Server OS + version: (Debian 10/Ubuntu 20.04/CentOS 8/...) \
20+
ISPConfig version: (3.1.15p3/3.2.3/3.2dev/...)
21+
<!-- _you can use `grep 'ISPC_APP_VERSION' /usr/local/ispconfig/server/lib/config.inc.php` to get it from the command line_ -->
22+
Software version of the related software:
23+
<!-- You can use 'nginx -v' or 'apachectl -v' to find the webserver version. Use 'php -v' to find the PHP version.> Put this in code blocks, like so: -->
1724
```
18-
insert the output of `php -v` here
25+
Output of the command
1926
```
2027

21-
## proposed fix
28+
## Proposed fix
2229
optional, of course.
23-
if you want to post code snippets, please use
30+
if you want to post code snippets, please use
2431
```
2532
your code
2633
```
27-
or attach a code file. Best is to create a merge request of course.
34+
or attach a code file. Best is to create a merge request of course.
2835

29-
## references
30-
if you know of related bugs or feature requests, please reference them by using `#<bugnumber>`, e. g. #123
31-
if you have done a merge request already, please reference it by using `!<mergenumber>`, e. g. !12
36+
## References
37+
if you know of related bugs or feature requests, please reference them by using `#<issuenumber>`, e. g. #6105
38+
if you have done a merge request already, please reference it by using `!<mergenumber>`, e. g. !1444
3239
if you know of a forum post on howtoforge.com that deals with this topic, just add the link to the forum topic here
3340

34-
## screenshots
41+
## Screenshots
3542
optional, of course.
3643
Add screenshots of the problem by clicking "Attach a file" on the bottom right.
3744

38-
## log entries
39-
```
40-
apache / nginx error.log lines (if related)
41-
```
45+
## Related log entries

CONTRIBUTING.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ This document is under development and will be continuously improved.
99
* If you want to report several bugs or request several features, open a separate issue for each one of them.
1010

1111
# Branches
12+
* If you are a new user, please send an email to: dev [at] ispconfig [dot] org to receive rights to fork the project.
1213
* Please create an issue for each contribution you want to make.
1314
* Do not put multiple contributions into a single branch and merge request. Each contribution should have it's own branch.
1415
* Do not use the develop branch in your forked project for your contribution. Create a separate branch for each issue.

README.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,46 @@
11
# ISPConfig - Hosting Control Panel
2-
![alt text](https://www.ispconfig.org/wp-content/themes/ispconfig/images/ispconfig_logo.png "") \
2+
![ISPConfig logo](https://www.ispconfig.org/wp-content/themes/ispconfig/images/ispconfig_logo.png "") \
33
Development branch: [![pipeline status](https://git.ispconfig.org/ispconfig/ispconfig3/badges/develop/pipeline.svg)](https://git.ispconfig.org/ispconfig/ispconfig3/commits/develop)
44

55
## Functions
66
- Manage multiple servers from one control panel
77
- Single server, multiserver and mirrored clusters.
8-
- Webserver management (Apache2 and nginx)
8+
- Webserver management
99
- Mailserver management
10-
- DNS server management (BIND and PowerDNS)
10+
- DNS server management
1111
- Virtualization (OpenVZ)
1212
- Administrator, reseller, client and mailuser login
13-
- Open Source software (BSD license)
13+
- Open Source software ([BSD license](LICENSE))
1414

1515
## Supported daemons
16-
- HTTP: Apache2 and nginx
16+
- HTTP: Apache2 and NGINX
1717
- HTTP stats: Webalizer, GoAccess and AWStats
1818
- Let's Encrypt: Acme.sh and certbot
1919
- SMTP: Postfix
2020
- POP3/IMAP: Dovecot
2121
- Spamfilter: Rspamd and Amavis
2222
- FTP: PureFTPD
23-
- DNS: BIND9 and PowerDNS
23+
- DNS: BIND9 and PowerDNS[^1]
2424
- Database: MariaDB and MySQL
2525

26+
[^1]: not actively tested
27+
2628
## Supported operating systems
27-
- Debian 9, 10, and testing
29+
- Debian 9 - 11, and testing
2830
- Ubuntu 16.04 - 20.04
2931
- CentOS 7 and 8
3032

3133
## Auto-install script
32-
You can install ISPConfig with our official autoinstaller: https://git.ispconfig.org/ispconfig/ispconfig-autoinstaller/-/blob/master/README.md
34+
You can install the "Perfect Server" with ISPConfig using [our official autoinstaller](https://www.howtoforge.com/ispconfig-autoinstall-debian-ubuntu/)
3335

3436
## Migration tool
35-
The Migration Tool helps you to import data from other control panels (currently ISPConfig 2 and 3 – 3.2, Plesk 10 – 12.5, Plesk Onyx, CPanel** and Confixx 3). For more information, see https://www.ispconfig.org/add-ons/ispconfig-migration-tool/
37+
The Migration Tool helps you to import data from other control panels (currently ISPConfig 2 and 3 – 3.2, Plesk 10 – 12.5, Plesk Onyx, CPanel[^2] and Confixx 3). For more information, see https://www.ispconfig.org/add-ons/ispconfig-migration-tool/
3638

37-
** The Migration Toolkit contains now beta support for migrating CPanel to ISPConfig.
39+
[^2]: The Migration Toolkit now contains beta support for migrating CPanel to ISPConfig.
3840

3941
## Documentation
4042
You can support ISPConfig development by buying the manual: https://www.ispconfig.org/documentation/
4143

4244
## Contributing
43-
If you like to contribute to the ISPConfig development, please send an email to: dev [at] ispconfig [dot] org.
45+
If you like to contribute to the ISPConfig development, please read the contributing guidelines: [CONTRIBUTING.MD](CONTRIBUTING.md)
46+

docs/autoinstall_samples/autoinstall.conf_sample.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
/* optional expert mode settings, needed only for expert mode */
3131
$autoinstall['mysql_ispconfig_user'] = 'ispconfig'; // default: ispconfig
32-
$autoinstall['mysql_ispconfig_password'] = md5(uniqid(rand()));
32+
$autoinstall['mysql_ispconfig_password'] = bin2hex(random_bytes(20));
3333
$autoinstall['join_multiserver_setup'] = 'n'; // y, n (default)
3434
$autoinstall['mysql_master_hostname'] = 'master.example.com';
3535
$autoinstall['mysql_master_root_user'] = 'root';
@@ -70,4 +70,4 @@
7070
$autoupdate['svc_detect_change_vserver_server'] = 'yes'; // yes (default), no
7171
$autoupdate['svc_detect_change_db_server'] = 'yes'; // yes (default), no
7272

73-
?>
73+
?>

helper_scripts/cert_check.sh

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#!/bin/bash
2+
3+
chkdata() {
4+
F=$1
5+
CRT=$2
6+
KEY=$3
7+
if [[ "$CRT" != "" && "$KEY" != "" ]] ; then
8+
if [[ ! -f "$CRT" ]] ; then
9+
echo "[WARN] CERTIFICATE FILE ${CRT} MISSING FOR ${F}" ;
10+
else
11+
echo -n "Checking ${CRT}" ;
12+
CHK=$(openssl x509 -in "${CRT}" -text -noout >/dev/null 2>&1 ; echo $?);
13+
if [[ $CHK -ne 0 ]] ; then
14+
echo " FAILED!" ;
15+
else
16+
echo " OK" ;
17+
fi
18+
fi
19+
if [[ ! -f "$KEY" ]] ; then
20+
echo "[WARN] KEY FILE ${KEY} MISSING FOR ${F}" ;
21+
else
22+
echo -n "Checking ${KEY}" ;
23+
CHK=$(openssl rsa -in "${KEY}" -check -noout >/dev/null 2>&1 ; echo $?);
24+
if [[ $CHK -ne 0 ]] ; then
25+
echo " FAILED!" ;
26+
else
27+
echo " OK" ;
28+
fi
29+
fi
30+
31+
if [[ -f "$CRT" && -f "$KEY" ]] ; then
32+
echo -n "Checking that key and certificate match";
33+
MDCRT=$(openssl x509 -noout -modulus -in "${CRT}" | openssl md5) ;
34+
MDKEY=$(openssl rsa -noout -modulus -in "${KEY}" | openssl md5) ;
35+
if [[ "$MDCRT" != "$MDKEY" ]] ; then
36+
echo " FAILED!" ;
37+
else
38+
echo " OK" ;
39+
fi
40+
fi
41+
echo "---" ;
42+
elif [[ "$CRT" != "" || "$KEY" != "" ]] ; then
43+
echo "[WARN] Check SSL config of ${F}";
44+
echo "---" ;
45+
fi
46+
}
47+
48+
if [[ -d /etc/apache2/sites-enabled ]] ; then
49+
echo "Checking enabled apache vhosts" ;
50+
for FIL in /etc/apache2/sites-enabled/* ; do
51+
CRT=$(grep 'SSLCertificateFile' "${FIL}" | grep -E -v '^[[:space:]]*#' | awk '{print $2}' | head -n 1) ;
52+
KEY=$(grep 'SSLCertificateKeyFile' "${FIL}" | grep -E -v '^[[:space:]]*#' | awk '{print $2}' | head -n 1) ;
53+
chkdata "$FIL" "$CRT" "$KEY" ;
54+
done
55+
fi
56+
57+
if [[ -d /etc/nginx/sites-enabled ]] ; then
58+
echo "Checking enabled nginx vhosts" ;
59+
for FIL in /etc/nginx/sites-enabled/* ; do
60+
CRT=$(grep 'ssl_certificate' "${FIL}" | grep -E -v '^[[:space:]]*#' | awk '{print $2}' | head -n 1) ;
61+
CRT=${CRT%;}
62+
KEY=$(grep 'ssl_certificate_key' "${FIL}" | grep -E -v '^[[:space:]]*#' | awk '{print $2}' | head -n 1) ;
63+
KEY=${KEY%;}
64+
chkdata "$FIL" "$CRT" "$KEY" ;
65+
done
66+
fi

install/dist/conf/centos52.conf.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,11 @@
147147
$conf['amavis']['config_dir'] = '/etc';
148148
$conf['amavis']['init_script'] = 'amavisd';
149149

150+
//* Rspamd
151+
$conf['rspamd']['installed'] = false; // will be detected automatically during installation
152+
$conf['rspamd']['config_dir'] = '/etc/rspamd';
153+
$conf['rspamd']['init_script'] = 'rspamd';
154+
150155
//* ClamAV
151156
$conf['clamav']['installed'] = false; // will be detected automatically during installation
152157
$conf['clamav']['init_script'] = 'clamd';
@@ -216,4 +221,7 @@
216221
//* OpenVZ
217222
$conf['openvz']['installed'] = false;
218223

224+
// AppArmor
225+
$conf['apparmor']['installed'] = false;
226+
219227
?>

install/dist/conf/centos53.conf.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,11 @@
147147
$conf['amavis']['config_dir'] = '/etc';
148148
$conf['amavis']['init_script'] = 'amavisd';
149149

150+
//* Rspamd
151+
$conf['rspamd']['installed'] = false; // will be detected automatically during installation
152+
$conf['rspamd']['config_dir'] = '/etc/rspamd';
153+
$conf['rspamd']['init_script'] = 'rspamd';
154+
150155
//* ClamAV
151156
$conf['clamav']['installed'] = false; // will be detected automatically during installation
152157
$conf['clamav']['init_script'] = 'clamd';
@@ -216,4 +221,7 @@
216221
//* OpenVZ
217222
$conf['openvz']['installed'] = false;
218223

224+
// AppArmor
225+
$conf['apparmor']['installed'] = false;
226+
219227
?>

0 commit comments

Comments
 (0)