initial commit

This commit is contained in:
allard
2025-11-23 18:58:51 +01:00
commit 376a944abc
1553 changed files with 314731 additions and 0 deletions

29
lp/dockermail/README.md Normal file
View File

@@ -0,0 +1,29 @@
kubectl apply -f pvc.yaml
helm repo add docker-mailserver https://docker-mailserver.github.io/docker-mailserver-helm
helm upgrade --install docker-mailserver docker-mailserver/docker-mailserver --namespace mail --create-namespace
kubectl exec -it -n mail deploy/docker-mailserver -- bash
setup email add admin@allarddcs.nl Dockermail01@
setup config dkim keysize 2048 domain 'allarddcs.nl'
2025-01-22 13:09:42+00:00 INFO rspamd-dkim: Here is the content of the TXT DNS record mail._domainkey.allarddcs.nl that you need to create:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwiLS07tI7kyAeIiR+hroK2r2v6/5/2CjLY2kzM2RA4nfnb/ZFG5/tYEF34NMBsZ4/fqki+ACUyN+65d1b7qa2Lxl+sj6honkVnmZHmayYhZbRp1odgim4IOdxRhqnJ3S0T3aVN7XLIgDng2/Uoyl/78qlPWMRZFbxe4h2z8iw3KTtTh3IrMsDnWWeatYO+Bx2WJDMc63qKuiZZ2XL4cC6ptrhKHRcAgErZFlUFyrZzfj7LhXx0Mq+6XLJGAGuVgo797qe4WM/y80PjoGQKCM9VduyFJd4du5DbGA9mhsB3Pu8o+MUt17xb/iWkpLMGO/0GBgLwLM5j7lfDwYOcFmDwIDAQAB
rspamd: stopped
rspamd: started
helm upgrade docker-mailserver docker-mailserver/docker-mailserver -n mail
supervisorctl restart postfix
in etc/postfix/generic
@allarddcs.nl @allarddcs.nl

View File

@@ -0,0 +1 @@
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqRda3lUfPZNi94d4P/82nBtM3rH2KLi7xOOSYm0njK6jtuqfJEvA5Mp3SH8JP7AtOamVXHGqsK1AWxCjPcyRGsHaenp6pDzBToNWbWTbgL/yfI1YIfHagUfpR+1EIUyaIb1NsFOSuEOVecSXQqPnPFVAYAcobDF/5q5z1eM0uPNHyTH0HGVlH038O8tH/INkjmVUa1l6IttdYVeU942J2n4p7hFNqzSc9EcLmaS2Q8DEB1+5i02vhu62qKojYSYo+jr5ThhqOQEy07xOCCenGq7yps9nHbvgmt9m6RlfxIJ9SwphzPm9zIGuK4hxt8MrFD408L+eympWRrDFLfm4owIDAQAB

View File

@@ -0,0 +1,11 @@
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: lp-dockermail
title: Dockermail (lp)
spec:
type: service
lifecycle: production
owner: platform-team
partOf:
- ../catalog-info.yaml

View File

@@ -0,0 +1,64 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: docker-mailserver-ingress
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web, websecure
traefik.ingress.kubernetes.io/router.rule: "Host(`mail.allarddcs.nl`)"
spec:
rules:
- host: mail.allarddcs.nl
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: docker-mailserver
port:
number: 25
# Add other ports for IMAP, POP3, etc.
- host: mail.allarddcs.nl
tcp:
- port: 25
backend:
service:
name: docker-mailserver
port:
number: 25
- port: 465
backend:
service:
name: docker-mailserver
port:
number: 465
- port: 587
backend:
service:
name: docker-mailserver
port:
number: 587
- port: 993
backend:
service:
name: docker-mailserver
port:
number: 993
- port: 143
backend:
service:
name: docker-mailserver
port:
number: 143
- port: 110
backend:
service:
name: docker-mailserver
port:
number: 110
- port: 995
backend:
service:
name: docker-mailserver
port:
number: 995

View File

@@ -0,0 +1,23 @@
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
name: ingressroute-tcp-dockermailserver
namespace: mail # Use the appropriate namespace where your Mailserver is deployed
spec:
entryPoints:
- smtp
- imap
- pop3
routes:
- match: HostSNI(`*`) # This will match all hostnames, change it to match a specific domain if needed
services:
- name: docker-mailserver # Replace with your actual mailserver service name
port: 25 # SMTP port for Mailserver (adjust as needed)
- match: HostSNI(`*`) # IMAP route
services:
- name: docker-mailserver
port: 143 # IMAP port for Mailserver (adjust as needed)
- match: HostSNI(`*`) # POP3 route
services:
- name: docker-mailserver
port: 110 # POP3 port for Mailserver (adjust as needed)

1
lp/dockermail/logs.sh Executable file
View File

@@ -0,0 +1 @@
microk8s kubectl logs docker-mailserver-0 -n mail

124
lp/dockermail/pvc.yaml Executable file
View File

@@ -0,0 +1,124 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: mail-docker-mailserver-mail-config-pv
spec:
storageClassName: ""
capacity:
storage: 2Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
hostPath:
path: /mnt/nfs_share/dockermail/config
type: Directory
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mail-docker-mailserver-mail-config-pvc
namespace: mail
spec:
storageClassName: ""
volumeName: mail-docker-mailserver-mail-config-pv
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: mail-docker-mailserver-mail-data-pv
spec:
storageClassName: ""
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
hostPath:
path: /mnt/nfs_share/dockermail/data
type: Directory
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mail-docker-mailserver-mail-data-pvc
namespace: mail
spec:
storageClassName: ""
volumeName: mail-docker-mailserver-mail-data-pv
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: mail-docker-mailserver-mail-log-pv
spec:
storageClassName: ""
capacity:
storage: 2Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
hostPath:
path: /mnt/nfs_share/dockermail/log
type: Directory
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mail-docker-mailserver-mail-log-pvc
namespace: mail
spec:
storageClassName: ""
volumeName: mail-docker-mailserver-mail-log-pv
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: mail-docker-mailserver-mail-state-pv
spec:
storageClassName: ""
capacity:
storage: 2Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
hostPath:
path: /mnt/nfs_share/dockermail/state
type: Directory
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mail-docker-mailserver-mail-state-pvc
namespace: mail
spec:
storageClassName: ""
volumeName: mail-docker-mailserver-mail-state-pv
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi

1
lp/dockermail/setup.sh Normal file
View File

@@ -0,0 +1 @@
setup email add admin@allarddcs.nl Dockermail01@

View File

@@ -0,0 +1,17 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: mail-certificate
namespace: mail # Replace with your desired namespace (in this case, "mail")
spec:
secretName: mail-certificate-secret # The name of the Kubernetes secret to store the cert and key
issuerRef:
name: letsencrypt # Reference to the ClusterIssuer you created earlier
kind: ClusterIssuer
commonName: mail.allarddcs.nl # The common name for your mail domain
dnsNames:
- mail.allarddcs.nl # Additional DNS names (e.g., subdomains)
usages:
- digital signature
- key encipherment
- server auth