From 9b9ad837e823f95d7d9095230f1c4613a55fa657 Mon Sep 17 00:00:00 2001 From: Jochen Issing Date: Sat, 28 Mar 2026 11:10:39 +0100 Subject: [PATCH 1/5] Upgrade MySQL from 5.7 to 8.0 (step 1 of LTS migration) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit First step toward MySQL 8.4 LTS. MySQL only supports upgrading one major version at a time, so we go 5.7 → 8.0 → 8.4. Important: back up mysql_mail_data and mysql_wordpress_noerpel_data volumes before deploying. MySQL 8.0 will auto-upgrade 5.7 data on first start. Co-Authored-By: Claude Opus 4.6 --- roles/compose/files/docker-compose.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/compose/files/docker-compose.yaml b/roles/compose/files/docker-compose.yaml index 6c5d80c..767e6e7 100644 --- a/roles/compose/files/docker-compose.yaml +++ b/roles/compose/files/docker-compose.yaml @@ -98,7 +98,7 @@ services: # MySQL database for mail mysql_mail: - image: mysql:5.7 + image: mysql:8.0 volumes: - mysql_mail_data:/var/lib/mysql - mysql_mail_init_db:/docker-entrypoint-initdb.d @@ -624,7 +624,7 @@ services: # WordPress services mysql_wordpress_noerpel: - image: mysql:5.7 + image: mysql:8.0 volumes: - mysql_wordpress_noerpel_data:/var/lib/mysql environment: From bf0887cc64b4e4ec932bfba1b7f2426b4d670a4d Mon Sep 17 00:00:00 2001 From: Jochen Issing Date: Sat, 28 Mar 2026 12:10:48 +0100 Subject: [PATCH 2/5] Disable healthcheck during transition --- roles/compose/files/docker-compose.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/roles/compose/files/docker-compose.yaml b/roles/compose/files/docker-compose.yaml index 767e6e7..8aa46c8 100644 --- a/roles/compose/files/docker-compose.yaml +++ b/roles/compose/files/docker-compose.yaml @@ -119,10 +119,10 @@ services: "CMD-SHELL", "mysqladmin ping -h localhost -u root -p$$(cat /run/secrets/mysql_mail_root_password) || exit 1", ] - interval: 30s - timeout: 10s - retries: 3 - restart: unless-stopped + # interval: 30s + # timeout: 10s + # retries: 3 + # restart: unless-stopped # Dovecot IMAP server dovecot: @@ -638,13 +638,13 @@ services: - mysql_wordpress_noerpel_root_password networks: - wordpress_noerpel_internal - healthcheck: - test: - [ - "CMD-SHELL", - "mysqladmin ping -h localhost -u root -p$$(cat /run/secrets/mysql_wordpress_noerpel_root_password) || exit 1", - ] - restart: unless-stopped + # healthcheck: + # test: + # [ + # "CMD-SHELL", + # "mysqladmin ping -h localhost -u root -p$$(cat /run/secrets/mysql_wordpress_noerpel_root_password) || exit 1", + # ] + # restart: unless-stopped wordpress_noerpel: image: wordpress:6.8 From 3b68a714f6aade8a65c7443fb41fe788ead1c766 Mon Sep 17 00:00:00 2001 From: Jochen Issing Date: Sat, 28 Mar 2026 12:11:12 +0100 Subject: [PATCH 3/5] Update manual borg backupu trigger documentation --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c0bea21..7a2d96e 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ borg init --encryption=repokey-blake2 ssh://uXXXXXX@uXXXXXX.your-backup.de:23/ho Start a borgmatic shell with the following commands: ```bash -docker exec -ti $(docker ps -q -f name=borg-backup) bash +docker compose -f /svc/volumes/docker-compose/docker-compose.yaml exec -ti borg-backup bash export BORG_PASSPHRASE=$(cat $BORG_PASSPHRASE_FILE) ``` From eda0e7ef66eb316d94fdc2ce35feaa463e23c56b Mon Sep 17 00:00:00 2001 From: Jochen Issing Date: Sat, 28 Mar 2026 13:39:19 +0100 Subject: [PATCH 4/5] Working somewhat - spf doesn't start yet --- roles/compose/files/docker-compose.yaml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/roles/compose/files/docker-compose.yaml b/roles/compose/files/docker-compose.yaml index 8aa46c8..bc60dcb 100644 --- a/roles/compose/files/docker-compose.yaml +++ b/roles/compose/files/docker-compose.yaml @@ -119,10 +119,10 @@ services: "CMD-SHELL", "mysqladmin ping -h localhost -u root -p$$(cat /run/secrets/mysql_mail_root_password) || exit 1", ] - # interval: 30s - # timeout: 10s - # retries: 3 - # restart: unless-stopped + interval: 30s + timeout: 10s + retries: 3 + restart: unless-stopped # Dovecot IMAP server dovecot: @@ -186,7 +186,7 @@ services: - mysql_mail - dovecot # SASL authentication - postfix_milters - image: nesono/postfix_for_postfixadmin:2026-03-22 + image: nesono/postfix_for_postfixadmin:2026-02-16 container_name: postfix environment: MYHOSTNAME: "smtp.nesono.com" @@ -638,13 +638,13 @@ services: - mysql_wordpress_noerpel_root_password networks: - wordpress_noerpel_internal - # healthcheck: - # test: - # [ - # "CMD-SHELL", - # "mysqladmin ping -h localhost -u root -p$$(cat /run/secrets/mysql_wordpress_noerpel_root_password) || exit 1", - # ] - # restart: unless-stopped + healthcheck: + test: + [ + "CMD-SHELL", + "mysqladmin ping -h localhost -u root -p$$(cat /run/secrets/mysql_wordpress_noerpel_root_password) || exit 1", + ] + restart: unless-stopped wordpress_noerpel: image: wordpress:6.8 From 6fd7b16c64176be76b94dcf51d98a257d4167265 Mon Sep 17 00:00:00 2001 From: Jochen Issing Date: Sat, 28 Mar 2026 14:05:48 +0100 Subject: [PATCH 5/5] Fix postfix_for_postfixadmin --- roles/compose/files/docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/compose/files/docker-compose.yaml b/roles/compose/files/docker-compose.yaml index bc60dcb..bc5230d 100644 --- a/roles/compose/files/docker-compose.yaml +++ b/roles/compose/files/docker-compose.yaml @@ -186,7 +186,7 @@ services: - mysql_mail - dovecot # SASL authentication - postfix_milters - image: nesono/postfix_for_postfixadmin:2026-02-16 + image: nesono/postfix_for_postfixadmin:2026-02-16.1 container_name: postfix environment: MYHOSTNAME: "smtp.nesono.com"