From 4da8f077e698e03e8c6eaa15b8277169249cc66a Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Wed, 17 Dec 2025 01:43:18 +0100 Subject: [PATCH 1/6] various typos and improvements --- src/content/docs/ispmail-trixie/100-start.md | 10 +- .../docs/ispmail-trixie/155-database.mdx | 2 +- .../docs/ispmail-trixie/180-relaying.mdx | 2 +- .../docs/ispmail-trixie/330-quotas.mdx | 311 +++++++++++++++++- .../docs/ispmail-trixie/400-going-live.mdx | 6 + 5 files changed, 322 insertions(+), 9 deletions(-) diff --git a/src/content/docs/ispmail-trixie/100-start.md b/src/content/docs/ispmail-trixie/100-start.md index eb31456..3ab3144 100644 --- a/src/content/docs/ispmail-trixie/100-start.md +++ b/src/content/docs/ispmail-trixie/100-start.md @@ -23,7 +23,8 @@ server. limit is the size of your disk. - Have a **webmail** interface so users can access their emails securely from any location using a web browser. - Let your users fetch email using **IMAP** and send email through your servers using **SMTP**. -- Add automatic cryptographic signatures using DKIM to outgoing emails to prove that you are the owner of your domain. +- Add automatic cryptographic signatures using **DKIM** to outgoing emails to prove that you are the owner of your + domain. - Allow users to manage server-based **filter rules**. Distribute incoming emails to different folders. Forward copies. Or send out-of-office notifications. - Mitigate **brute force** attacks. @@ -51,9 +52,10 @@ server. - An **internet domain** (or several) to receive emails for. You need to be able to set A, MX and TXT records for that domain. You should also be able to set PTR records for your IP address because some mail servers on the internet require you to have matching forward and reverse DNS records. -- **Patience**. We will proceed slowly and after every step ensure that are still on track. Don’t hurry and skip parts - even if they appear confusing at first. If you get lost just submit your question at the bottom of any page throughout - this guide and help is on the way. Or join the [chat channel](https://riot.im/app/#/room/#ispmail:matrix.org). +- **Patience**. We will proceed slowly and after every step ensure that you are still on track. Don’t hurry and skip + parts even if they appear confusing at first. If you get lost just submit your question at the bottom of any page + throughout this guide and help is on the way. Or join the + [chat channel](https://riot.im/app/#/room/#ispmail:matrix.org). ## What this is not about diff --git a/src/content/docs/ispmail-trixie/155-database.mdx b/src/content/docs/ispmail-trixie/155-database.mdx index 887499c..e56131e 100644 --- a/src/content/docs/ispmail-trixie/155-database.mdx +++ b/src/content/docs/ispmail-trixie/155-database.mdx @@ -46,7 +46,7 @@ CREATE DATABASE mailserver; ## Create the database users -In this section you will create the basic database `mailserver` and two users: +In this section you will create the basic database called `mailserver` and two users: | User | Permissions | Purpose | | :--------- | :---------- | :--------------------------------------------------------- | diff --git a/src/content/docs/ispmail-trixie/180-relaying.mdx b/src/content/docs/ispmail-trixie/180-relaying.mdx index 67535c4..b969d94 100644 --- a/src/content/docs/ispmail-trixie/180-relaying.mdx +++ b/src/content/docs/ispmail-trixie/180-relaying.mdx @@ -219,7 +219,7 @@ EOF chown root:postfix /etc/postfix/mariadb-email2email.cf chmod u=rw,g=r,o= /etc/postfix/mariadb-email2email.cf -# Tell Postfix to use thi smapping +# Tell Postfix to use this mapping postconf smtpd_sender_login_maps=mysql:/etc/postfix/mariadb-email2email.cf ``` diff --git a/src/content/docs/ispmail-trixie/330-quotas.mdx b/src/content/docs/ispmail-trixie/330-quotas.mdx index 5c112a4..84f465f 100644 --- a/src/content/docs/ispmail-trixie/330-quotas.mdx +++ b/src/content/docs/ispmail-trixie/330-quotas.mdx @@ -8,8 +8,313 @@ sidebar: import { Aside } from "@astrojs/starlight/components"; - + +To use the automated installer: + +```sh +wget https://workaround.org/ispmail.sh +chmod +x ispmail.sh +./ispmail.sh -f example.org +``` + +Use your main FQDN instead of **example.org**. It will become the main host name for Roundcube, rspamd, SMTP, IMAP and +will be taken as the common name for the Let's Encrypt certificate. From 81e6f102b02b9076e24ad9933049e10555f5f704 Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Wed, 17 Dec 2025 17:29:25 +0100 Subject: [PATCH 3/6] error codes fixed --- public/ispmail.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/ispmail.sh b/public/ispmail.sh index 42433b0..ee9eeee 100755 --- a/public/ispmail.sh +++ b/public/ispmail.sh @@ -517,7 +517,7 @@ EOF --auth-password summersun \ --silent 3 - if [[ $? -ne 24 ]]; then + if [[ $? -ne 0 ]]; then echo "❌ Relaying of proper email failed." exit 10 fi @@ -560,7 +560,7 @@ EOF --auth-user john@example.org \ --auth-password summersun \ --silent 3 - if [[ $? -ne 24 ]]; then + if [[ $? -ne 0 ]]; then echo "❌ Relaying over submission with STARTTLS and auth failed." exit 10 fi @@ -576,7 +576,7 @@ EOF --auth-user john@example.org \ --auth-password summersun \ --silent 3 - if [[ $? -ne 24 ]]; then + if [[ $? -ne 0 ]]; then echo "❌ Relaying over submissions with STARTTLS and auth failed." exit 10 fi From a211d92fd6c6e1cca62798b394ca051bbb42067f Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Wed, 17 Dec 2025 17:50:42 +0100 Subject: [PATCH 4/6] reload dovecot to enable imapsieve plugin --- public/ispmail.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/ispmail.sh b/public/ispmail.sh index ee9eeee..7b2ceb6 100755 --- a/public/ispmail.sh +++ b/public/ispmail.sh @@ -1,4 +1,4 @@ -#!/bin/bash -e +#!/bin/bash -ex # # Installer for ISPmail servers # Copyright © 2025 Christoph Haas @@ -752,6 +752,7 @@ pipe :copy "rspamd-learn-ham.sh"; EOF # Compile the Sieve scripts + systemctl reload dovecot sievec /etc/dovecot/sieve/learn-spam.sieve 2>/dev/null sievec /etc/dovecot/sieve/learn-ham.sieve 2>/dev/null From bd1e55f73105b99ebf050993ba779af3028b38bd Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Wed, 17 Dec 2025 18:14:45 +0100 Subject: [PATCH 5/6] forgot to remove -x flag --- public/ispmail.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/ispmail.sh b/public/ispmail.sh index 7b2ceb6..814fe47 100755 --- a/public/ispmail.sh +++ b/public/ispmail.sh @@ -1,4 +1,4 @@ -#!/bin/bash -ex +#!/bin/bash -e # # Installer for ISPmail servers # Copyright © 2025 Christoph Haas From fb08f613018ca093c75c821a31ce2b0de4324719 Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Wed, 17 Dec 2025 18:15:56 +0100 Subject: [PATCH 6/6] call to action --- src/content/docs/ispmail-trixie/500-automated-installation.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/content/docs/ispmail-trixie/500-automated-installation.mdx b/src/content/docs/ispmail-trixie/500-automated-installation.mdx index ac39e3c..1b9748d 100644 --- a/src/content/docs/ispmail-trixie/500-automated-installation.mdx +++ b/src/content/docs/ispmail-trixie/500-automated-installation.mdx @@ -29,3 +29,5 @@ chmod +x ispmail.sh Use your main FQDN instead of **example.org**. It will become the main host name for Roundcube, rspamd, SMTP, IMAP and will be taken as the common name for the Let's Encrypt certificate. + +This script is something new. So please report your experience while using it down in the comments.