ISPConfig 3 merge requestshttps://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests2022-01-13T17:07:19Zhttps://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/776Draft: Allow the use of IP address for website alias.2022-01-13T17:07:19ZCostinDraft: Allow the use of IP address for website alias.This is good when you need to control what happens when a visitor browse the server IP where the website is hosted.This is good when you need to control what happens when a visitor browse the server IP where the website is hosted.Planned featureshttps://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1285Draft: Resolve "Limit access to mail tabs via customer template"2022-01-13T17:19:50ZMichaelDraft: Resolve "Limit access to mail tabs via customer template"MR does address #5841, #5732
Control access to the mail details tabs via the customer/reseller template beside the system-wide config option.MR does address #5841, #5732
Control access to the mail details tabs via the customer/reseller template beside the system-wide config option.https://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1455use placeholders for the firewall (Implements #6112)2022-01-13T20:29:27ZFlorian Schaaluse placeholders for the firewall (Implements #6112)https://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1517Make release tarballs reproducible2022-07-31T13:49:50ZDaniel JagszentMake release tarballs reproducibleSince testing `.gitlab-ci.yml` changes is kinda hard I did the following to test the change:
- used the [CI/CD Editor](https://git.ispconfig.org/ispconfig/ispconfig3/-/ci/editor) to lint the changed file
- tested the pipeline job locall...Since testing `.gitlab-ci.yml` changes is kinda hard I did the following to test the change:
- used the [CI/CD Editor](https://git.ispconfig.org/ispconfig/ispconfig3/-/ci/editor) to lint the changed file
- tested the pipeline job locally with the following `Dockerfile` and `test-deploy.sh`
```Dockerfile
FROM edbizarro/gitlab-ci-pipeline-php:7.2 AS build
ARG CI_COMMIT_TAG=3.2.5
RUN git clone https://git.ispconfig.org/ispconfig/ispconfig3.git -b ${CI_COMMIT_TAG} build
WORKDIR /var/www/html/build
COPY ./test-deploy.sh /var/www/html
RUN /var/www/html/test-deploy.sh
FROM scratch
COPY --from=build /var/www/html/build/ISPConfig-*.tar.gz /
```
```bash
#!/bin/bash
echo "Building release."
die() {
echo "failed to" "$@"
exit 1
}
if [[ "$VER" == "" ]] ; then
VER="$CI_COMMIT_TAG"
fi
if [[ "$VER" == "" ]] ; then
VER="3.2dev$(date +%s)"
fi
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 || die "replace version in files"
fi
# if this is a git tag (probably a stable release) then make the tar reproducible by setting the creation time of the archive to the time of the git tag
if [[ "$VER" == "$CI_COMMIT_TAG" ]]; then
LIBFAKETIME_DEB=libfaketime_0.9.7-3_amd64.deb
curl -o /tmp/$LIBFAKETIME_DEB http://ftp.de.debian.org/debian/pool/main/f/faketime/$LIBFAKETIME_DEB || die "download libfaketime"
( cd /tmp && echo "8bd396800da4e5ae05ef6ba9f4bacb4094c69d7299ba046422991bf0807c744e $LIBFAKETIME_DEB" > check.sum && shasum -a 256 -c check.sum ) || die "checking consistency of libfaketime"
( cd /tmp && dpkg-deb -x $LIBFAKETIME_DEB /tmp/libfaketime )
# get git tag timestamp (e.g. 2021-08-23T14:40:42+00:00)
RELEASE_TIMESTAMP="$(git log -1 --format=%aI "$CI_COMMIT_TAG")" || die "setting RELEASE_TIMESTAMP"
# set the modification time of the files we changed earlier
touch --no-create -d "$RELEASE_TIMESTAMP" install/tpl/config.inc.php.master install/sql/ispconfig3.sql || die "set modification time of install/tpl/config.inc.php.master install/sql/ispconfig3.sql"
# freeze system time for the next tar+gz call (timestamp needs to be in format 2021-08-23 14:40:42)
# see https://github.com/wolfcw/libfaketime for details
export LD_PRELOAD=/tmp/libfaketime/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1
FAKETIME="$(date -d "$RELEASE_TIMESTAMP" '+%F %T')" || die "setting FAKETIME"
export FAKETIME
fi
# see https://reproducible-builds.org/docs/archives/ for the tar arguments used
tar --sort=name --owner=0 --group=0 --numeric-owner --format=gnu -cpzf "ISPConfig-${VER}.tar.gz" --exclude "ISPConfig-${VER}.tar.gz" --exclude ".git*" --exclude ".phplint.yml" --transform 's,^\./,ispconfig3_install/,' . || die "create release archive"
unset LD_PRELOAD # unfreeze the system time
echo "Listing tar contents for verification"
#tar -tvf "ISPConfig-${VER}.tar.gz" || die "list release archive contents"
echo "Uploading file to download server"
echo curl -u "${DEPLOY_FTP_USER}:${DEPLOY_FTP_PASSWORD}" -T "ISPConfig-${VER}.tar.gz" "ftp://${DEPLOY_FTP_SERVER}/web/" || die "upload release to FTP server"
if [[ "$VER" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] ; then
echo "Stable release ${VER}"
echo curl -u "${DEPLOY_FTP_USER}:${DEPLOY_FTP_PASSWORD}" -T "ISPConfig-${VER}.tar.gz" "ftp://${DEPLOY_FTP_SERVER}/web/ISPConfig-3-stable.tar.gz" || die "upload stable release to FTP server"
echo -n "${VER}" > ispconfig3_version.txt || die "create ispconfig3_version.txt"
echo curl -u "${DEPLOY_FTP_USER}:${DEPLOY_FTP_PASSWORD}" -T ispconfig3_version.txt "ftp://${DEPLOY_FTP_SERVER}/web/" || die "upload ispconfig3_version.txt to FTP server"
else
echo "Dev release ${VER}"
fi
echo "Download url is https://download.ispconfig.org/ISPConfig-${VER}.tar.gz"
echo "SHA 256 sum for release"
shasum -a 256 "ISPConfig-${VER}.tar.gz"
echo "SHA 512 sum for release"
shasum -a 512 "ISPConfig-${VER}.tar.gz"
#rm "ISPConfig-${VER}.tar.gz"
```
Building this `Dockerfile` with
```bash
docker buildx build -t currentbuild -o "$(date +%FT%T)" --no-cache --progress plain .
```
I consistently get
```
SHA 256 sum for release
a3862f14f2579c256c26dec47f0a9992ccee248be56bbbbe483b377af9bad4b8 ISPConfig-3.2.5.tar.gz
SHA 512 sum for release
7f066c28e41ed9f3c0c61738a660914f5dba51dc83a1e0257e323378c0538835e7afbb6cf62e4e865746a5d95c19321b4a1365d91d6f3d08a69206104068b955 ISPConfig-3.2.5.tar.gz
```
Closes #6222https://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1525Add MySQL SSL support, fixes #27802021-12-21T12:23:54ZWebsliceAdd MySQL SSL support, fixes #2780This should allow users to configure SSL settings for MySQL connections.This should allow users to configure SSL settings for MySQL connections.https://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1536Draft: Determine Database username max length automatically2021-12-17T23:36:33ZGaetan - FMSDraft: Determine Database username max length automaticallyHi,
This MR is for adding the capability to increase the Database username length automatically to not being limited to 16 characters on modern servers (with MySQL >= 5.7.8 or MariaDB > 10.x) but increase it to 32 characters.
The way i...Hi,
This MR is for adding the capability to increase the Database username length automatically to not being limited to 16 characters on modern servers (with MySQL >= 5.7.8 or MariaDB > 10.x) but increase it to 32 characters.
The way it has been implemented is the following:
- the limit applied in file (interface/web/sites/database_user_edit.php) is now determined automatically based on SQL server installation.
- The check on the version installed prevent any break on previous/old setups
- There is no addition of optional button "which would clutter the interface ... while the Team is trying to keep it a bit clear so users don't get lost" (as mentionned by @thom : https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/4483#note_78920).
Closes #4483https://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1553Enable ini parser to understand sections with foreslash /2023-10-21T09:31:46ZWebsliceEnable ini parser to understand sections with foreslash /Our `/etc/jailkit/jk_socketd.ini` is around 10MB in size. When the ini parser reads this file, the PHP cron process runs out of memory and crashes with its default memory limit of 128M.
The content of that file looks like this:
```
[/v...Our `/etc/jailkit/jk_socketd.ini` is around 10MB in size. When the ini parser reads this file, the PHP cron process runs out of memory and crashes with its default memory limit of 128M.
The content of that file looks like this:
```
[/var/www/clients/client1/web1/dev/log]
base=512
peak=2048
interval=10
```
There is a method here which cleans that file: https://git.ispconfig.org/ispconfig/ispconfig3/-/blob/develop/server/lib/classes/system.inc.php#L2809
But the problem is that the ini parser doesn't understand the `/` foreslash character in ini sections. So the file is never cleaned up, because the ini parser doesn't see any of the sections in that file.
By adding the `/` to the regex I expect that the file will be much smaller and the memory limit will not be hit. Additionally it's nice to have clean system configuration.https://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1554Avoid storing an empty value in MariaDB,2024-03-09T20:16:32ZHelmoAvoid storing an empty value in MariaDB,Closes #6282Closes #6282https://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1559Develop2023-01-29T19:59:35ZPatrick OmlandDevelopadded gnupg toolset to jk_init.iniadded gnupg toolset to jk_init.inihttps://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1779Show which sites use a php version, #65482024-03-22T20:31:43ZHelmoShow which sites use a php version, #6548Closes #6548Closes #6548https://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1789Extend virtual_forwardings to handle alias address on alias domain, #65352024-03-22T20:32:32ZHelmoExtend virtual_forwardings to handle alias address on alias domain, #6535This adds the suggestion from @doekia in #6535
The new part is the last union. The rest is just better formatting.
I've not been able to live test this yet.
Closes #6535This adds the suggestion from @doekia in #6535
The new part is the last union. The rest is just better formatting.
I've not been able to live test this yet.
Closes #6535https://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1830Resolve "manually added DKIM key creates empty DNS RR"2024-03-22T20:33:25ZHelmoResolve "manually added DKIM key creates empty DNS RR"Closes #6610Closes #6610