Merge branch 'main' of ssh://git.maketank.net:2222/chaos/podman
This commit is contained in:
160
mail.pod.yaml
Normal file
160
mail.pod.yaml
Normal file
@@ -0,0 +1,160 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: postfix-config
|
||||
data:
|
||||
main.cf: |
|
||||
myhostname = mail.chaos
|
||||
alias_maps = hash:/etc/postfix/aliases
|
||||
alias_database = $alias_maps
|
||||
mydestination = localhost, mail.chaos, chaos, localhost.localdomain, localhost
|
||||
relayhost =
|
||||
mynetworks = 172.17.0.0/16, 192.168.0.0/16, 10.0.0.0/8, 127.0.0.0/8
|
||||
mailbox_size_limit = 0
|
||||
recipient_delimiter = +
|
||||
inet_interfaces = all
|
||||
home_mailbox = Maildir/
|
||||
# Redirect Postfix logs to stdout and stderr
|
||||
syslog_name = postfix
|
||||
maillog_file = /dev/stdout
|
||||
|
||||
# Dovecot LMTP configuration for receiving mail
|
||||
virtual_transport = lmtp:localhost:24
|
||||
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
|
||||
|
||||
# Authentication using Dovecot SASL
|
||||
broken_sasl_auth_clients = yes
|
||||
smtpd_sasl_auth_enable = yes
|
||||
smtpd_sasl_type = dovecot
|
||||
smtpd_sasl_path = private/auth
|
||||
smtpd_sasl_security_options = noanonymous
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: dovecot-config
|
||||
data:
|
||||
10-master.conf: |
|
||||
service imap-login {
|
||||
inet_listener imap {
|
||||
address = *
|
||||
port = 143
|
||||
}
|
||||
}
|
||||
|
||||
service lmtp {
|
||||
unix_listener /var/spool/postfix/private/auth {
|
||||
mode = 0660
|
||||
user = postfix
|
||||
group = postfix
|
||||
}
|
||||
|
||||
unix_listener lmtp {
|
||||
mode = 0600
|
||||
user = vmail
|
||||
group = vmail
|
||||
}
|
||||
}
|
||||
|
||||
service auth {
|
||||
unix_listener /var/spool/postfix/private/auth {
|
||||
mode = 0660
|
||||
user = postfix
|
||||
group = postfix
|
||||
}
|
||||
|
||||
# Authentication via PAM
|
||||
unix_listener auth-userdb {
|
||||
mode = 0666
|
||||
user = vmail
|
||||
group = vmail
|
||||
}
|
||||
}
|
||||
|
||||
service auth-worker {
|
||||
# No additional settings required for worker processes
|
||||
}
|
||||
|
||||
10-auth.conf: |
|
||||
disable_plaintext_auth = no
|
||||
|
||||
auth_mechanisms = plain login
|
||||
|
||||
passdb {
|
||||
driver = pam
|
||||
args = /etc/pam.d/dovecot
|
||||
}
|
||||
|
||||
userdb {
|
||||
driver = passwd-file
|
||||
args = /etc/dovecot/users
|
||||
}
|
||||
|
||||
10-mail.conf: |
|
||||
mail_location = maildir:/var/mail/%d/%n/Maildir
|
||||
|
||||
first_valid_uid = 5000
|
||||
last_valid_uid = 5999
|
||||
|
||||
first_valid_gid = 5000
|
||||
last_valid_gid = 5999
|
||||
# Redirect Dovecot logs to stdout and stderr
|
||||
log_path = /dev/stdout
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: mail-storage
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: mail-pod
|
||||
spec:
|
||||
containers:
|
||||
- name: postfix
|
||||
image: docker.io/mailcow/postfix
|
||||
ports:
|
||||
- containerPort: 25
|
||||
hostPort: 2525
|
||||
volumeMounts:
|
||||
- mountPath: /etc/postfix
|
||||
name: config-volume
|
||||
- mountPath: /var/mail
|
||||
name: mail-storage-pvc
|
||||
# Redirect Postfix logs to stdout and stderr
|
||||
command: ["sh", "-c"]
|
||||
args: ["/usr/sbin/postfix start-fg >>/dev/stdout 2>>/dev/stderr & tail -f /dev/null"]
|
||||
|
||||
- name: dovecot
|
||||
image: docker.io/dovecot/dovecot
|
||||
ports:
|
||||
- containerPort: 143
|
||||
hostPort: 14343
|
||||
volumeMounts:
|
||||
- mountPath: /etc/dovecot/conf.d
|
||||
name: config-volume
|
||||
- mountPath: /var/mail
|
||||
name: mail-storage-pvc
|
||||
# Redirect Dovecot logs to stdout and stderr
|
||||
command: ["sh", "-c"]
|
||||
args: ["/usr/sbin/dovecot >>/dev/stdout 2>>/dev/stderr & tail -f /dev/null"]
|
||||
|
||||
volumes:
|
||||
- name: config-volume
|
||||
configMap:
|
||||
name: dovecot-config
|
||||
|
||||
- name: mail-storage-pvc
|
||||
persistentVolumeClaim:
|
||||
claimName: mail-storage
|
||||
|
||||
Reference in New Issue
Block a user