From 12c73a995f20a5ada9c678d57480248cb58ea1d9 Mon Sep 17 00:00:00 2001 From: Giacomo Mondino <76877177+nonholamilza@users.noreply.github.com> Date: Mon, 1 Sep 2025 16:02:10 +0200 Subject: [PATCH 1/9] New version to fix cert bug --- templates/start_services.j2 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/templates/start_services.j2 b/templates/start_services.j2 index b6f75ea..1d64432 100644 --- a/templates/start_services.j2 +++ b/templates/start_services.j2 @@ -3,3 +3,8 @@ echo "starting service nginx" systemctl start nginx + +echo "restarting mail services to reload certificates" +systemctl restart postfix +systemctl restart dovecot +systemctl restart spamassassin From cea8cc5748d9ea267c4b97761ac20562dee983c4 Mon Sep 17 00:00:00 2001 From: Giacomo Mondino <76877177+nonholamilza@users.noreply.github.com> Date: Mon, 1 Sep 2025 18:49:42 +0200 Subject: [PATCH 2/9] New logo idea for replatform --- img/Replatform_logo.jpg | Bin 0 -> 125598 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 img/Replatform_logo.jpg diff --git a/img/Replatform_logo.jpg b/img/Replatform_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b1c4dcb2724b190db16b95facbb0837420745b2a GIT binary patch literal 125598 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%0AP$>&}gOwEL7s68zJ1 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

)H4EaCWd+(^G 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 literal 0 HcmV?d00001 From c2946b68376b2d0c8302b759acaa1d1b49ec1f62 Mon Sep 17 00:00:00 2001 From: Giacomo Mondino <76877177+nonholamilza@users.noreply.github.com> Date: Mon, 1 Sep 2025 18:50:11 +0200 Subject: [PATCH 3/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 831e04d..6548fad 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # replatform -![replatform logo](img/replatform.jpeg) +![replatform logo](img/replatform_logo.jpg) Run your own websites and email accounts using a platform you control. From e496bb4dcaca038e92c8d6315403166d3d7d9307 Mon Sep 17 00:00:00 2001 From: Giacomo Mondino <76877177+nonholamilza@users.noreply.github.com> Date: Mon, 1 Sep 2025 18:50:40 +0200 Subject: [PATCH 4/9] Rename Replatform_logo.jpg to replatform_logo.jpg --- img/{Replatform_logo.jpg => replatform_logo.jpg} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename img/{Replatform_logo.jpg => replatform_logo.jpg} (100%) diff --git a/img/Replatform_logo.jpg b/img/replatform_logo.jpg similarity index 100% rename from img/Replatform_logo.jpg rename to img/replatform_logo.jpg From 2e28bfe020ca02634a190e0f028d3019920e7ad6 Mon Sep 17 00:00:00 2001 From: Giacomo Mondino <76877177+nonholamilza@users.noreply.github.com> Date: Wed, 20 May 2026 12:05:46 +0200 Subject: [PATCH 5/9] Remove OCSP stapling configuration Let's Encrypt stopped including OCSP responder URLs in their certificates starting in May 2025, and shut down their OCSP responders permanently on August 6, 2025. With current Let's Encrypt certificates, nginx emits a warning on every reload: "ssl_stapling" ignored, no OCSP responder URL in the certificate Since OCSP stapling no longer works with Let's Encrypt, this commit removes the related directives (ssl_stapling, ssl_stapling_verify, ssl_trusted_certificate, and the resolver line used only by stapling). Browsers will rely on CRLite/CRLSets for revocation checking instead. References: - https://letsencrypt.org/2024/12/05/ending-ocsp/ - https://bugs.debian.org/1126960 (related) --- templates/nginx_site.j2 | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/templates/nginx_site.j2 b/templates/nginx_site.j2 index 41f2b71..7efb23b 100644 --- a/templates/nginx_site.j2 +++ b/templates/nginx_site.j2 @@ -42,14 +42,4 @@ server { # HSTS (ngx_http_headers_module is required) (63072000 seconds) add_header Strict-Transport-Security "max-age=63072000" always; - - # OCSP stapling - ssl_stapling on; - ssl_stapling_verify on; - - # verify chain of trust of OCSP response using Root CA and Intermediate certs - ssl_trusted_certificate /etc/letsencrypt/live/{{ server_hostname }}/chain.pem; - - # Using Google's DNS server as the resolver - resolver 8.8.8.8; -} \ No newline at end of file +} From ca6838857119bcb1aa3576d63dd26c06cdfad10d Mon Sep 17 00:00:00 2001 From: Giacomo Mondino <76877177+nonholamilza@users.noreply.github.com> Date: Fri, 21 Aug 2026 22:17:34 +0200 Subject: [PATCH 6/9] Support Debian 12 (Bookworm) alongside Debian 11 (Bullseye) - Detect SpamAssassin's systemd unit name (spamd on Bookworm, spamassassin on Bullseye) and use it consistently for the service, the /etc/default/ config path, and the certbot restart hook - Enable spamassassin-maintenance.timer on Bookworm since CRON= in /etc/default/spamassassin no longer triggers nightly rule updates there; keep CRON=1 on Bullseye - Fix missing notify on the dovecot passwd template so IMAP auth changes actually get reloaded; add force_handlers so a later task failure can't silently discard already-queued reload/restart handlers - Generate a random bcrypt salt per password instead of a hostname-derived one that produced identical salts across accounts - Replace hardcoded author domains in postfix mydestination with postfix's own $mydomain - Generate SPF/DKIM/A/AAAA records for server_hostname and MX records for each mail domain in generate_txt_records.yml --- configure_dovecot.yml | 1 + configure_postfix.yml | 2 +- configure_spamassassin.yml | 29 +++++++++++++++--------- generate_hostname_records.yml | 39 +++++++++++++++++++++++++++++++++ generate_txt_records.yml | 8 +++++++ mail_server_setup.yml | 12 ++++++++-- site.yml | 5 +++-- templates/etc_dovecot_passwd.j2 | 2 +- templates/start_services.j2 | 2 +- 9 files changed, 83 insertions(+), 17 deletions(-) create mode 100644 generate_hostname_records.yml diff --git a/configure_dovecot.yml b/configure_dovecot.yml index 6e081bb..960fd41 100644 --- a/configure_dovecot.yml +++ b/configure_dovecot.yml @@ -22,6 +22,7 @@ template: src: templates/etc_dovecot_passwd.j2 dest: /etc/dovecot/passwd + notify: reload dovecot - name: Ensure sieve directories exist file: diff --git a/configure_postfix.yml b/configure_postfix.yml index 3c8b011..ab13ca4 100644 --- a/configure_postfix.yml +++ b/configure_postfix.yml @@ -59,7 +59,7 @@ line: "myorigin = /etc/mailname" - regexp: "^mydestination" - line: "mydestination = $myhostname, myplatform.dataengineering.co.ke, localhost.dataengineering.co.ke, localhost" + line: "mydestination = $myhostname, localhost.$mydomain, localhost" - regexp: "^mynetworks" # Relay mail from host only line: "mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128" diff --git a/configure_spamassassin.yml b/configure_spamassassin.yml index 1b54f3e..0c22a06 100644 --- a/configure_spamassassin.yml +++ b/configure_spamassassin.yml @@ -11,17 +11,26 @@ state: present notify: restart spamass-milter -- name: Configure spamd via /etc/default/spamassassin +- name: Configure spamd via /etc/default/{{ spamassassin_service_name }} lineinfile: - dest: "/etc/default/spamassassin" + dest: "/etc/default/{{ spamassassin_service_name }}" state: present - regexp: "{{ item.regexp }}" - line: "{{ item.line }}" - with_items: - - regexp: "^CRON=" # Update spam rules nightly - line: "CRON=1" + regexp: "^OPTIONS=" # run spamd with non-root debian-spamd user + line: 'OPTIONS="--create-prefs --max-children 5 --helper-home-dir=/var/lib/spamassassin -u debian-spamd -g debian-spamd -x"' + notify: restart spamassassin daemon - - regexp: "^OPTIONS=" # run spamd with non-root debian-spamd user - line: 'OPTIONS="--create-prefs --max-children 5 --helper-home-dir=/var/lib/spamassassin -u debian-spamd -g debian-spamd -x"' - +- name: Enable nightly spam rule updates via CRON (Bullseye only, superseded by spamassassin-maintenance.timer on Bookworm) + lineinfile: + dest: "/etc/default/{{ spamassassin_service_name }}" + state: present + regexp: "^CRON=" + line: "CRON=1" + when: ansible_distribution_major_version | int < 12 notify: restart spamassassin daemon + +- name: Enable and start the systemd timer that updates spam rules nightly (Bookworm only) + service: + name: spamassassin-maintenance.timer + state: started + enabled: yes + when: ansible_distribution_major_version | int >= 12 diff --git a/generate_hostname_records.yml b/generate_hostname_records.yml new file mode 100644 index 0000000..0c94ac2 --- /dev/null +++ b/generate_hostname_records.yml @@ -0,0 +1,39 @@ +--- +- name: Extract dkim record value for the server hostname + shell: + cmd: "tr -d '\n' < /etc/dkimkeys/{{ server_hostname }}/default.txt | sed -E 's/.+IN\\s+TXT\\s+//' | tr -d '()\"[:blank:]' | sed -E s/\\;--.+//" + register: extract_hostname_dkim_result + changed_when: false + +- name: Create file to hold dkim txt record for the server hostname + template: + src: templates/txt_record_template.j2 + dest: "~/dns_txt_records/{{ server_hostname }}_dkim.txt" + vars: + key: "default._domainkey.{{ server_hostname }}" + value: "{{ extract_hostname_dkim_result.stdout }}" + +- name: Create file to hold spf txt record for the server hostname + template: + src: templates/txt_record_template.j2 + dest: "~/dns_txt_records/{{ server_hostname }}_spf.txt" + vars: + key: "{{ server_hostname }}" + value: "v=spf1 a -all" + +- name: Create file to hold A record for the server hostname + template: + src: templates/txt_record_template.j2 + dest: "~/dns_txt_records/{{ server_hostname }}_a.txt" + vars: + key: "{{ server_hostname }}" + value: "{{ ipv4_address }}" + +- name: Create file to hold AAAA record for the server hostname + template: + src: templates/txt_record_template.j2 + dest: "~/dns_txt_records/{{ server_hostname }}_aaaa.txt" + vars: + key: "{{ server_hostname }}" + value: "{{ ipv6_address }}" + when: (ipv6_address is defined) and (ipv6_address | length > 0) diff --git a/generate_txt_records.yml b/generate_txt_records.yml index 01430df..8ef36ab 100644 --- a/generate_txt_records.yml +++ b/generate_txt_records.yml @@ -28,3 +28,11 @@ vars: key: "_dmarc.{{ domain }}" value: "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@{{ domain }}; ruf=mailto:dmarc-reports@{{ domain }}; fo=1" + +- name: Create file to hold mx record + template: + src: templates/txt_record_template.j2 + dest: "~/dns_txt_records/{{ domain }}_mx.txt" + vars: + key: "{{ domain }}" + value: "10 {{ server_hostname }}." diff --git a/mail_server_setup.yml b/mail_server_setup.yml index 2152dcd..52424ac 100644 --- a/mail_server_setup.yml +++ b/mail_server_setup.yml @@ -11,13 +11,18 @@ - opendkim - opendkim-tools - spamass-milter + - spamassassin + +- name: Determine the SpamAssassin daemon systemd unit name for this OS + set_fact: + spamassassin_service_name: "{{ 'spamd' if ansible_distribution_major_version | int >= 12 else 'spamassassin' }}" - name: Ensure that mail system servers are running and start at boot service: "name={{ item }} state=started enabled=yes" loop: - postfix - dovecot - - spamassassin + - "{{ spamassassin_service_name }}" - spamass-milter - name: Combine all mail domains @@ -90,8 +95,11 @@ path: ~/dns_txt_records state: directory -- name: Generate TXT records for DKIM, DMARC, SPF for hosted domains +- name: Generate TXT records for DKIM, DMARC, SPF, MX for hosted domains include_tasks: generate_txt_records.yml loop: "{{ mail_domains.keys() | list }}" loop_control: loop_var: domain + +- name: Generate SPF, DKIM, A/AAAA records for the server hostname + include_tasks: generate_hostname_records.yml diff --git a/site.yml b/site.yml index 51d6210..4fc5bb4 100644 --- a/site.yml +++ b/site.yml @@ -1,6 +1,7 @@ --- - hosts: myplatform remote_user: root + force_handlers: true vars_files: - vars.yml @@ -50,7 +51,7 @@ user: name: admin create_home: yes - password: "{{ admin_mail_password | password_hash('blowfish', ('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' | shuffle(seed=server_hostname) | join)[:21] + ('Oeu' | shuffle(seed=server_hostname) | join)[1], rounds=11) }}" + password: "{{ admin_mail_password | password_hash('blowfish', rounds=11) }}" groups: adm append: true @@ -96,7 +97,7 @@ service: name=spamass-milter state=restarted - name: restart spamassassin daemon - service: name=spamassassin state=restarted + service: "name={{ spamassassin_service_name }} state=restarted" - name: restart opendkim service: name=opendkim state=restarted diff --git a/templates/etc_dovecot_passwd.j2 b/templates/etc_dovecot_passwd.j2 index 145fe8f..f1ff592 100644 --- a/templates/etc_dovecot_passwd.j2 +++ b/templates/etc_dovecot_passwd.j2 @@ -1,5 +1,5 @@ {% for domain, info in mail_domains.items() %} {% for username, passwd in info.items() %} -{{ username }}@{{ domain }}:{BLF-CRYPT}{{ passwd | password_hash('blowfish', ('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' | shuffle(seed=server_hostname) | join)[:21] + ('Oeu' | shuffle(seed=server_hostname) | join)[1], rounds=11) }}:::::: +{{ username }}@{{ domain }}:{BLF-CRYPT}{{ passwd | password_hash('blowfish', rounds=11) }}:::::: {% endfor %} {% endfor %} \ No newline at end of file diff --git a/templates/start_services.j2 b/templates/start_services.j2 index 1d64432..d0a76d0 100644 --- a/templates/start_services.j2 +++ b/templates/start_services.j2 @@ -7,4 +7,4 @@ systemctl start nginx echo "restarting mail services to reload certificates" systemctl restart postfix systemctl restart dovecot -systemctl restart spamassassin +systemctl restart {{ 'spamd' if ansible_distribution_major_version | int >= 12 else 'spamassassin' }} From 30aea7d77bd8d51246dbbef431527476afe5ed78 Mon Sep 17 00:00:00 2001 From: Giacomo Mondino <76877177+nonholamilza@users.noreply.github.com> Date: Fri, 21 Aug 2026 22:23:51 +0200 Subject: [PATCH 7/9] Update TODO.md --- TODO.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index a554b3d..f55a0e5 100644 --- a/TODO.md +++ b/TODO.md @@ -7,11 +7,10 @@ - [ ] Allow only necessary ports via ufw - [ ] investigate ssl cert expiry - [ ] Add mail-tester.com to docs -- [ ] Migrate to Debian 12 (Bookworm) - [ ] Add fail2ban to stop brute force attacks ### In Progress - +- [ ] Migrate to Debian 12 (Bookworm) ### Done From f1863831a156f4175aaafa9a02c9975b8411d834 Mon Sep 17 00:00:00 2001 From: Giacomo Mondino <76877177+nonholamilza@users.noreply.github.com> Date: Fri, 21 Aug 2026 22:25:00 +0200 Subject: [PATCH 8/9] Update TODO.md --- TODO.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/TODO.md b/TODO.md index f55a0e5..2f5a246 100644 --- a/TODO.md +++ b/TODO.md @@ -1,20 +1,21 @@ ### Todo -- [ ] Fix mail server reload after cert update - - Add to certbot post hook - - systemctl reload postfix - - systemctl reload dovecot - [ ] Allow only necessary ports via ufw - [ ] investigate ssl cert expiry - [ ] Add mail-tester.com to docs - [ ] Add fail2ban to stop brute force attacks ### In Progress + - [ ] Migrate to Debian 12 (Bookworm) ### Done +- [x] Fix mail server reload after cert update + - Add to certbot post hook + - systemctl reload postfix + - systemctl reload dovecot - [x] customize goaccess for less crawler spam - https://2bits.com/apache/identifying-aggressive-crawlers-using-goaccess.html - https://www.thedroneely.com/posts/tweaking-goaccess-for-analytics/ From 32fea3f2d95a83c8795dc500be61686844c76fbf Mon Sep 17 00:00:00 2001 From: Giacomo Mondino <76877177+nonholamilza@users.noreply.github.com> Date: Sat, 22 Aug 2026 01:40:55 +0200 Subject: [PATCH 9/9] Migrate to Debian 12 is done Moved "Migrate to Debian 12 (Bookworm)" into Done --- TODO.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index 2f5a246..999ad49 100644 --- a/TODO.md +++ b/TODO.md @@ -7,11 +7,10 @@ ### In Progress -- [ ] Migrate to Debian 12 (Bookworm) - ### Done +- [x] Migrate to Debian 12 (Bookworm) - [x] Fix mail server reload after cert update - Add to certbot post hook - systemctl reload postfix