Merge branch 'master' into AdminLTE-3
						commit
						00276d8b70
					
				@ -1,5 +1,12 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tee >(rspamc -h {{ ANTISPAM_WEBUI_ADDRESS }} -P mailu learn_ham /dev/stdin) \
 | 
					RSPAMD_HOST="$(getent hosts {{ ANTISPAM_WEBUI_ADDRESS }}|cut -d\  -f1)"
 | 
				
			||||||
	>(rspamc -h {{ ANTISPAM_WEBUI_ADDRESS }} -P mailu -f 11 fuzzy_del /dev/stdin) \
 | 
					if [[ $? -ne 0 ]]
 | 
				
			||||||
	| rspamc -h {{ ANTISPAM_WEBUI_ADDRESS }} -P mailu -f 13 fuzzy_add /dev/stdin
 | 
					then
 | 
				
			||||||
 | 
						echo "Failed to lookup {{ ANTISPAM_WEBUI_ADDRESS }}" >&2
 | 
				
			||||||
 | 
						exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tee >(rspamc -h $RSPAMD_HOST -P mailu learn_ham /dev/stdin) \
 | 
				
			||||||
 | 
						>(rspamc -h $RSPAMD_HOST -P mailu -f 11 fuzzy_del /dev/stdin) \
 | 
				
			||||||
 | 
						| rspamc -h $RSPAMD_HOST -P mailu -f 13 fuzzy_add /dev/stdin
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,13 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tee >(rspamc -h {{ ANTISPAM_WEBUI_ADDRESS }} -P mailu learn_spam /dev/stdin) \
 | 
					RSPAMD_HOST="$(getent hosts {{ ANTISPAM_WEBUI_ADDRESS }}|cut -d\  -f1)"
 | 
				
			||||||
    >(rspamc -h {{ ANTISPAM_WEBUI_ADDRESS }} -P mailu -f 13 fuzzy_del /dev/stdin) \
 | 
					if [[ $? -ne 0 ]]
 | 
				
			||||||
    | rspamc -h {{ ANTISPAM_WEBUI_ADDRESS }} -P mailu -f 11 fuzzy_add /dev/stdin
 | 
					then
 | 
				
			||||||
 | 
						echo "Failed to lookup {{ ANTISPAM_WEBUI_ADDRESS }}" >&2
 | 
				
			||||||
 | 
						exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tee >(rspamc -h $RSPAMD_HOST -P mailu learn_spam /dev/stdin) \
 | 
				
			||||||
 | 
					    >(rspamc -h $RSPAMD_HOST -P mailu -f 13 fuzzy_del /dev/stdin) \
 | 
				
			||||||
 | 
					    | rspamc -h $RSPAMD_HOST -P mailu -f 11 fuzzy_add /dev/stdin
 | 
				
			||||||
 | 
				
			|||||||
@ -1,13 +1,11 @@
 | 
				
			|||||||
-----BEGIN DH PARAMETERS-----
 | 
					-----BEGIN DH PARAMETERS-----
 | 
				
			||||||
MIICCAKCAgEA//////////+t+FRYortKmq/cViAnPTzx2LnFg84tNpWp4TZBFGQz
 | 
					MIIBiAKCAYEAtQlUSOKGjpdXJ154qmMEa1pEs+9CdSxWiZFkiXBJb0lTafOh8cfF
 | 
				
			||||||
+8yTnc4kmz75fS/jY2MMddj2gbICrsRhetPfHtXV/WVhJDP1H18GbtCFY2VVPe0a
 | 
					2IkcWSwzxWwjW4Ad26UQQFh1poGf2QBzVk2vuKCekYzPAs/WqH8VwiXBiWR5R9lh
 | 
				
			||||||
87VXE15/V8k1mE8McODmi3fipona8+/och3xWKE2rec1MKzKT0g6eXq8CrGCsyT7
 | 
					v/+CkEBYuQOzAhXLN6ZGdPPa2sjdI49rlaIqyLJE4D0TI/VHYmC/vEwqkJUgaGrS
 | 
				
			||||||
YdEIqUuyyOP7uWrat2DX9GgdT0Kj3jlN9K5W7edjcrsZCwenyO4KbXCeAvzhzffi
 | 
					19LhHZimnmouvrnyBPyf00czXlMow0RnmYeHVZ7W5hu7t9TH9o3QAN/GKiFfxFj+
 | 
				
			||||||
7MA0BM0oNC9hkXL+nOmFg/+OTxIy7vKBg8P+OxtMb61zO7X8vC7CIAXFjvGDfRaD
 | 
					RkdLM7beQdS0He5YeTaElM5l1YT5d5gHFbOzEQyKHd10ux+bgVcgUeVbBnI1SAIC
 | 
				
			||||||
ssbzSibBsu/6iGtCOGEfz9zeNVs7ZRkDW7w09N75nAI4YbRvydbmyQd62R0mkff3
 | 
					w53yc1PkDAiRijSP5j5aWq1djtJPheS13o35HyIf0cHzkNYhKfX5JWPj/cbgdM+C
 | 
				
			||||||
7lmMsPrBhtkcrv4TCYUTknC0EwyTvEN5RPT9RFLi103TZPLiHnH1S/9croKrnJ32
 | 
					FL1bnRc8sL5oxmkDoGJhiNZIf4n2WtS8Zu28gUgat6S+vCm/4yavIc/T1g6UiNKE
 | 
				
			||||||
nuhtK8UiNjoNq8Uhl5sN6todv5pC1cRITgq80Gv6U93vPBsg7j/VnXwl5B0rZp4e
 | 
					X41HPbsma/QWUwOL6S+b2qr+7rKqjI5TzVek8vBMellEV4mBvfQU3NDSQ4WvxbTq
 | 
				
			||||||
8W5vUsMWTfT7eTDp5OWIV7asfV9C1p9tGHdjzx1VA0AEh/VbpX4xzHpxNciG77Qx
 | 
					ZEOgLPA178nrAgEC
 | 
				
			||||||
iu1qHgEtnmgyqQdgCpGBMMRtx3j5ca0AOAkpmaMzy4t6Gh25PXFAADwqTs6p+Y0K
 | 
					 | 
				
			||||||
zAqCkc3OyX3Pjsm1Wn+IpGtNtahR9EGC4caKAH5eZV9q//////////8CAQI=
 | 
					 | 
				
			||||||
-----END DH PARAMETERS-----
 | 
					-----END DH PARAMETERS-----
 | 
				
			||||||
 | 
				
			|||||||
@ -1,63 +0,0 @@
 | 
				
			|||||||
apiVersion: apps/v1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-admin
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-admin
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: admin
 | 
					 | 
				
			||||||
        image: mailu/admin:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - name: maildata
 | 
					 | 
				
			||||||
            mountPath: /data
 | 
					 | 
				
			||||||
            subPath: maildata
 | 
					 | 
				
			||||||
          - name: maildata
 | 
					 | 
				
			||||||
            mountPath: /dkim
 | 
					 | 
				
			||||||
            subPath: dkim
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - name: http
 | 
					 | 
				
			||||||
            containerPort: 80
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 500Mi
 | 
					 | 
				
			||||||
            cpu: 500m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 500Mi
 | 
					 | 
				
			||||||
            cpu: 500m
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: maildata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: admin
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-admin
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-admin
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: http
 | 
					 | 
				
			||||||
    port: 80
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@ -1,175 +0,0 @@
 | 
				
			|||||||
   apiVersion: v1
 | 
					 | 
				
			||||||
   kind: ConfigMap
 | 
					 | 
				
			||||||
   metadata:
 | 
					 | 
				
			||||||
     name: mailu-config
 | 
					 | 
				
			||||||
     namespace: mailu-mailserver
 | 
					 | 
				
			||||||
   data:
 | 
					 | 
				
			||||||
    # Mailu main configuration file
 | 
					 | 
				
			||||||
    #
 | 
					 | 
				
			||||||
    # Most configuration variables can be modified through the Web interface,
 | 
					 | 
				
			||||||
    # these few settings must however be configured before starting the mail
 | 
					 | 
				
			||||||
    # server and require a restart upon change.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
    # Common configuration variables
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Set this to the path where Mailu data and configuration is stored
 | 
					 | 
				
			||||||
    ROOT: "/mailu"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Mailu version to run (1.0, 1.1, etc. or master)
 | 
					 | 
				
			||||||
    VERSION: "master"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Set to a randomly generated 16 bytes string
 | 
					 | 
				
			||||||
    SECRET_KEY: "MySup3rS3cr3tPas"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Address where listening ports should bind
 | 
					 | 
				
			||||||
    BIND_ADDRESS4: "127.0.0.1"
 | 
					 | 
				
			||||||
    #BIND_ADDRESS6: "::1"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Main mail domain
 | 
					 | 
				
			||||||
    DOMAIN: "example.com"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Hostnames for this server, separated with comas
 | 
					 | 
				
			||||||
    HOSTNAMES: "mail.example.com"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Postmaster local part (will append the main mail domain)
 | 
					 | 
				
			||||||
    POSTMASTER: "admin"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Choose how secure connections will behave (value: letsencrypt, cert, notls, mail, mail-letsencrypt)
 | 
					 | 
				
			||||||
    TLS_FLAVOR: "cert"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Authentication rate limit (per source IP address)
 | 
					 | 
				
			||||||
    AUTH_RATELIMIT: "10/minute;1000/hour"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Opt-out of statistics, replace with "True" to opt out
 | 
					 | 
				
			||||||
    DISABLE_STATISTICS: "False"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
    # Kubernetes configuration
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Use Kubernetes Ingress Controller to handle all actions on port 80 and 443
 | 
					 | 
				
			||||||
    # This way we can make use of the advantages of the cert-manager deployment
 | 
					 | 
				
			||||||
    KUBERNETES_INGRESS: "true"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # POD_ADDRESS_RANGE is normally provided by default with Kubernetes
 | 
					 | 
				
			||||||
    # Only use this value when you are using Flannel, Calico or a special kind of CNI
 | 
					 | 
				
			||||||
    # Provide the IPs of your network interface or bridge which is used for VXLAN network traffic
 | 
					 | 
				
			||||||
    # POD_ADDRESS_RANGE: 10.2.0.0/16,10.1.6.0/24
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
    # Optional features
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Expose the admin interface (value: true, false)
 | 
					 | 
				
			||||||
    ADMIN: "true"
 | 
					 | 
				
			||||||
    # Run the admin interface in debug mode
 | 
					 | 
				
			||||||
    #DEBUG: "True"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Choose which webmail to run if any (values: roundcube, rainloop, none)
 | 
					 | 
				
			||||||
    WEBMAIL: "roundcube"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Dav server implementation (value: radicale, none)
 | 
					 | 
				
			||||||
    WEBDAV: "radicale"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Antivirus solution (value: clamav, none)
 | 
					 | 
				
			||||||
    ANTIVIRUS: "clamav"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
    # Mail settings
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Message size limit in bytes
 | 
					 | 
				
			||||||
    # Default: accept messages up to 50MB
 | 
					 | 
				
			||||||
    MESSAGE_SIZE_LIMIT: "50000000"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Will relay all outgoing mails if configured
 | 
					 | 
				
			||||||
    #RELAYHOST=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # This part is needed for the XCLIENT login for postfix. This should be the POD ADDRESS range
 | 
					 | 
				
			||||||
    FRONT_ADDRESS: "front.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # This value  is needed by the webmail to find the correct imap backend
 | 
					 | 
				
			||||||
    IMAP_ADDRESS: "imap.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # This value is used by Dovecot to find the Redis server in the cluster
 | 
					 | 
				
			||||||
    REDIS_ADDRESS: "redis.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Fetchmail delay
 | 
					 | 
				
			||||||
    FETCHMAIL_DELAY: "600"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Recipient delimiter, character used to delimiter localpart from custom address part
 | 
					 | 
				
			||||||
    # e.g. localpart+custom@domain;tld
 | 
					 | 
				
			||||||
    RECIPIENT_DELIMITER: "+"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # DMARC rua and ruf email
 | 
					 | 
				
			||||||
    DMARC_RUA: "root"
 | 
					 | 
				
			||||||
    DMARC_RUF: "root"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Welcome email, enable and set a topic and body if you wish to send welcome
 | 
					 | 
				
			||||||
    # emails to all users.
 | 
					 | 
				
			||||||
    WELCOME: "false"
 | 
					 | 
				
			||||||
    WELCOME_SUBJECT: "Welcome to your new email account"
 | 
					 | 
				
			||||||
    WELCOME_BODY: "Welcome to your new email account, if you can read this, then it is configured properly!"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
    # Web settings
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Path to the admin interface if enabled
 | 
					 | 
				
			||||||
    # Kubernetes addition: You need to change ALL the ingresses, when you want this URL to be different!!!
 | 
					 | 
				
			||||||
    WEB_ADMIN: "/admin"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Path to the webmail if enabled
 | 
					 | 
				
			||||||
    # Currently, this is not used, because we intended to use a different subdomain: webmail.example.com
 | 
					 | 
				
			||||||
    # This option can be added in a feature release
 | 
					 | 
				
			||||||
    WEB_WEBMAIL: "/webmail"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Website name
 | 
					 | 
				
			||||||
    SITENAME: "Mailu"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Linked Website URL
 | 
					 | 
				
			||||||
    WEBSITE: "https://example.com"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Registration reCaptcha settings (warning, this has some privacy impact)
 | 
					 | 
				
			||||||
    # RECAPTCHA_PUBLIC_KEY=
 | 
					 | 
				
			||||||
    # RECAPTCHA_PRIVATE_KEY=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Domain registration, uncomment to enable
 | 
					 | 
				
			||||||
    # DOMAIN_REGISTRATION=true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
    # Advanced settings
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Create an admin account if it does not exist yet. It will also create the email domain for the account.
 | 
					 | 
				
			||||||
    # INITIAL_ADMIN_ACCOUNT: "admin"
 | 
					 | 
				
			||||||
    # INITIAL_ADMIN_DOMAIN: "example.com"
 | 
					 | 
				
			||||||
    # INITIAL_ADMIN_PW: "s3cr3t"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Docker-compose project name, this will prepended to containers names.
 | 
					 | 
				
			||||||
    COMPOSE_PROJECT_NAME: "mailu"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Default password scheme used for newly created accounts and changed passwords
 | 
					 | 
				
			||||||
    # (value: SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
 | 
					 | 
				
			||||||
    PASSWORD_SCHEME: "SHA512-CRYPT"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Header to take the real ip from
 | 
					 | 
				
			||||||
    #REAL_IP_HEADER:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # IPs for nginx set_real_ip_from (CIDR list separated by commas)
 | 
					 | 
				
			||||||
    #REAL_IP_FROM:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Host settings
 | 
					 | 
				
			||||||
    HOST_IMAP: "imap.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
    HOST_POP3: "imap.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
    HOST_SMTP: "smtp.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
    HOST_AUTHSMTP: "smtp.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
    HOST_WEBMAIL: "webmail.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
    HOST_ADMIN: "admin.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
    HOST_WEBDAV: "webdav.mailu-mailserver.svc.cluster.local:5232"
 | 
					 | 
				
			||||||
    HOST_ANTISPAM_MILTER: "antispam.mailu-mailserver.svc.cluster.local:11332"
 | 
					 | 
				
			||||||
    HOST_ANTISPAM_WEBUI: "antispam.mailu-mailserver.svc.cluster.local:11334"
 | 
					 | 
				
			||||||
    HOST_ANTIVIRUS: "antivirus.mailu-mailserver.svc.cluster.local:3310"
 | 
					 | 
				
			||||||
    HOST_REDIS: "redis.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
@ -1,39 +0,0 @@
 | 
				
			|||||||
apiVersion: apps/v1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-fetchmail
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-fetchmail
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: fetchmail
 | 
					 | 
				
			||||||
        image: mailu/fetchmail:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - name: maildata
 | 
					 | 
				
			||||||
            mountPath: /data
 | 
					 | 
				
			||||||
            subPath: maildata
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - containerPort: 5232
 | 
					 | 
				
			||||||
          - containerPort: 80
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: maildata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
@ -1,148 +0,0 @@
 | 
				
			|||||||
apiVersion: apps/v1
 | 
					 | 
				
			||||||
kind: DaemonSet
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-front
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    k8s-app: mail-loadbalancer
 | 
					 | 
				
			||||||
    component: ingress-controller
 | 
					 | 
				
			||||||
    type: nginx
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    matchLabels:
 | 
					 | 
				
			||||||
      k8s-app: mail-loadbalancer
 | 
					 | 
				
			||||||
      component: ingress-controller
 | 
					 | 
				
			||||||
      type: nginx
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        k8s-app: mail-loadbalancer
 | 
					 | 
				
			||||||
        component: ingress-controller
 | 
					 | 
				
			||||||
        type: nginx
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      affinity:
 | 
					 | 
				
			||||||
        nodeAffinity:
 | 
					 | 
				
			||||||
          requiredDuringSchedulingIgnoredDuringExecution:
 | 
					 | 
				
			||||||
            nodeSelectorTerms:
 | 
					 | 
				
			||||||
            - matchExpressions:
 | 
					 | 
				
			||||||
              - key: node-role.kubernetes.io/node
 | 
					 | 
				
			||||||
                operator: Exists
 | 
					 | 
				
			||||||
      nodeSelector:
 | 
					 | 
				
			||||||
        node-role.kubernetes.io/node: ""
 | 
					 | 
				
			||||||
      dnsPolicy: ClusterFirstWithHostNet
 | 
					 | 
				
			||||||
      restartPolicy: Always
 | 
					 | 
				
			||||||
      terminationGracePeriodSeconds: 60
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: front
 | 
					 | 
				
			||||||
        image: mailu/nginx:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - name: certs
 | 
					 | 
				
			||||||
            mountPath: /certs
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - name: pop3
 | 
					 | 
				
			||||||
            containerPort: 110
 | 
					 | 
				
			||||||
            hostPort: 110
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: pop3s
 | 
					 | 
				
			||||||
            containerPort: 995
 | 
					 | 
				
			||||||
            hostPort: 995
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: imap
 | 
					 | 
				
			||||||
            containerPort: 143
 | 
					 | 
				
			||||||
            hostPort: 143
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: imaps
 | 
					 | 
				
			||||||
            containerPort: 993
 | 
					 | 
				
			||||||
            hostPort: 993
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtp
 | 
					 | 
				
			||||||
            containerPort: 25
 | 
					 | 
				
			||||||
            hostPort: 25
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtps
 | 
					 | 
				
			||||||
            containerPort: 465
 | 
					 | 
				
			||||||
            hostPort: 465
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtpd
 | 
					 | 
				
			||||||
            containerPort: 587
 | 
					 | 
				
			||||||
            hostPort: 587
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          # internal services (not exposed externally)
 | 
					 | 
				
			||||||
          - name: smtp-auth
 | 
					 | 
				
			||||||
            containerPort: 10025
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: imap-auth
 | 
					 | 
				
			||||||
            containerPort: 10143
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: auth
 | 
					 | 
				
			||||||
            containerPort: 8000
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: http
 | 
					 | 
				
			||||||
            containerPort: 80
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 200Mi
 | 
					 | 
				
			||||||
            cpu: 200m
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: certs
 | 
					 | 
				
			||||||
          secret:
 | 
					 | 
				
			||||||
            items:
 | 
					 | 
				
			||||||
              - key: tls.crt
 | 
					 | 
				
			||||||
                path: cert.pem
 | 
					 | 
				
			||||||
              - key: tls.key
 | 
					 | 
				
			||||||
                path: key.pem
 | 
					 | 
				
			||||||
            secretName: letsencrypt-certs-all
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: front
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    k8s-app: mail-loadbalancer
 | 
					 | 
				
			||||||
    component: ingress-controller
 | 
					 | 
				
			||||||
    type: nginx
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    k8s-app: mail-loadbalancer
 | 
					 | 
				
			||||||
    component: ingress-controller
 | 
					 | 
				
			||||||
    type: nginx
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: pop3
 | 
					 | 
				
			||||||
    port: 110
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: pop3s
 | 
					 | 
				
			||||||
    port: 995
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: imap
 | 
					 | 
				
			||||||
    port: 143
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: imaps
 | 
					 | 
				
			||||||
    port: 993
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtp
 | 
					 | 
				
			||||||
    port: 25
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtps
 | 
					 | 
				
			||||||
    port: 465
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtpd
 | 
					 | 
				
			||||||
    port: 587
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtp-auth
 | 
					 | 
				
			||||||
    port: 10025
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: imap-auth
 | 
					 | 
				
			||||||
    port: 10143
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: http
 | 
					 | 
				
			||||||
    port: 80
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@ -1,84 +0,0 @@
 | 
				
			|||||||
apiVersion: apps/v1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-imap
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-imap
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: imap
 | 
					 | 
				
			||||||
        image: mailu/dovecot:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - mountPath: /data
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: maildata
 | 
					 | 
				
			||||||
          - mountPath: /mail
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: mailstate
 | 
					 | 
				
			||||||
          - mountPath: /overrides
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: overrides
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - name: imap-auth
 | 
					 | 
				
			||||||
            containerPort: 2102
 | 
					 | 
				
			||||||
          - name: imap-transport
 | 
					 | 
				
			||||||
            containerPort: 2525
 | 
					 | 
				
			||||||
          - name: pop3
 | 
					 | 
				
			||||||
            containerPort: 110
 | 
					 | 
				
			||||||
          - name: imap-default
 | 
					 | 
				
			||||||
            containerPort: 143
 | 
					 | 
				
			||||||
          - name: sieve
 | 
					 | 
				
			||||||
            containerPort: 4190
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 1Gi
 | 
					 | 
				
			||||||
            cpu: 1000m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 1Gi
 | 
					 | 
				
			||||||
            cpu: 1000m
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: maildata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: imap
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-imap
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: imap-auth
 | 
					 | 
				
			||||||
    port: 2102
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: imap-transport
 | 
					 | 
				
			||||||
    port: 2525
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: pop3
 | 
					 | 
				
			||||||
    port: 110
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: imap-default
 | 
					 | 
				
			||||||
    port: 143
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: sieve
 | 
					 | 
				
			||||||
    port: 4190
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@ -1,25 +0,0 @@
 | 
				
			|||||||
apiVersion: apps/v1
 | 
					 | 
				
			||||||
kind: Ingress
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-ingress
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  annotations:
 | 
					 | 
				
			||||||
    kubernetes.io/tls-acme: "true"
 | 
					 | 
				
			||||||
    certmanager.k8s.io/cluster-issuer: letsencrypt-stage
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  tls:
 | 
					 | 
				
			||||||
  - hosts:
 | 
					 | 
				
			||||||
    - "mail.example.com"
 | 
					 | 
				
			||||||
    secretName: letsencrypt-certs-all # If unsure how to generate these, check out https://github.com/ployst/docker-letsencrypt
 | 
					 | 
				
			||||||
  rules:
 | 
					 | 
				
			||||||
  - host: "mail.example.com"
 | 
					 | 
				
			||||||
    http:
 | 
					 | 
				
			||||||
      paths:
 | 
					 | 
				
			||||||
      - path: "/"
 | 
					 | 
				
			||||||
        backend:
 | 
					 | 
				
			||||||
          serviceName: front
 | 
					 | 
				
			||||||
          servicePort: 80
 | 
					 | 
				
			||||||
@ -1,27 +0,0 @@
 | 
				
			|||||||
kind: PersistentVolumeClaim
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: redis-hdd
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  annotations:
 | 
					 | 
				
			||||||
    volume.beta.kubernetes.io/storage-class: "glusterblock-hdd"
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  accessModes:
 | 
					 | 
				
			||||||
    - ReadWriteOnce
 | 
					 | 
				
			||||||
  resources:
 | 
					 | 
				
			||||||
    requests:
 | 
					 | 
				
			||||||
      storage: 1Gi
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: PersistentVolumeClaim
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mail-storage
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  annotations:
 | 
					 | 
				
			||||||
    volume.beta.kubernetes.io/storage-class: "gluster-heketi-hdd"
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  accessModes:
 | 
					 | 
				
			||||||
    - ReadWriteMany
 | 
					 | 
				
			||||||
  resources:
 | 
					 | 
				
			||||||
    requests:
 | 
					 | 
				
			||||||
      storage: 100Gi
 | 
					 | 
				
			||||||
@ -1,4 +0,0 @@
 | 
				
			|||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Namespace
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-mailserver
 | 
					 | 
				
			||||||
@ -1,60 +0,0 @@
 | 
				
			|||||||
apiVersion: apps/v1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-redis
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    matchLabels:
 | 
					 | 
				
			||||||
      app: mailu-redis
 | 
					 | 
				
			||||||
      role: mail
 | 
					 | 
				
			||||||
      tier: backend
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-redis
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
        - name: redis
 | 
					 | 
				
			||||||
          image: redis:5-alpine
 | 
					 | 
				
			||||||
          imagePullPolicy: Always
 | 
					 | 
				
			||||||
          volumeMounts:
 | 
					 | 
				
			||||||
            - mountPath: /data
 | 
					 | 
				
			||||||
              name: redisdata
 | 
					 | 
				
			||||||
          ports:
 | 
					 | 
				
			||||||
            - containerPort: 6379
 | 
					 | 
				
			||||||
              name: redis
 | 
					 | 
				
			||||||
              protocol: TCP
 | 
					 | 
				
			||||||
          resources:
 | 
					 | 
				
			||||||
            requests:
 | 
					 | 
				
			||||||
              memory: 200Mi
 | 
					 | 
				
			||||||
              cpu: 100m
 | 
					 | 
				
			||||||
            limits:
 | 
					 | 
				
			||||||
              memory: 300Mi
 | 
					 | 
				
			||||||
              cpu: 200m
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: redisdata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: redis-hdd
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: redis
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-redis
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-redis
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
    - name: redis
 | 
					 | 
				
			||||||
      port: 6379
 | 
					 | 
				
			||||||
      protocol: TCP
 | 
					 | 
				
			||||||
@ -1,115 +0,0 @@
 | 
				
			|||||||
apiVersion: apps/v1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-security
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-security
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: antispam
 | 
					 | 
				
			||||||
        image: mailu/rspamd:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 200Mi
 | 
					 | 
				
			||||||
            cpu: 200m
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - name: antispam
 | 
					 | 
				
			||||||
            containerPort: 11332
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: antispam-http
 | 
					 | 
				
			||||||
            containerPort: 11334
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - name: filter
 | 
					 | 
				
			||||||
            subPath: filter
 | 
					 | 
				
			||||||
            mountPath: /var/lib/rspamd
 | 
					 | 
				
			||||||
          - name: filter
 | 
					 | 
				
			||||||
            mountPath: /dkim
 | 
					 | 
				
			||||||
            subPath: dkim
 | 
					 | 
				
			||||||
          - name: filter
 | 
					 | 
				
			||||||
            mountPath: /etc/rspamd/override.d
 | 
					 | 
				
			||||||
            subPath: rspamd-overrides
 | 
					 | 
				
			||||||
      - name: antivirus
 | 
					 | 
				
			||||||
        image: mailu/clamav:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 1Gi
 | 
					 | 
				
			||||||
            cpu: 1000m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 2Gi
 | 
					 | 
				
			||||||
            cpu: 1000m
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - name: antivirus
 | 
					 | 
				
			||||||
            containerPort: 3310
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - name: filter
 | 
					 | 
				
			||||||
            subPath: filter
 | 
					 | 
				
			||||||
            mountPath: /data
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: filter
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: antispam
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-antispam
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-security
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: antispam
 | 
					 | 
				
			||||||
    port: 11332
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: antispam-http
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
    port: 11334
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: antivirus
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-antivirus
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-security
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: antivirus
 | 
					 | 
				
			||||||
    port: 3310
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@ -1,80 +0,0 @@
 | 
				
			|||||||
apiVersion: apps/v1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-smtp
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-smtp
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: smtp
 | 
					 | 
				
			||||||
        image: mailu/postfix:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 2Gi
 | 
					 | 
				
			||||||
            cpu: 500m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 2Gi
 | 
					 | 
				
			||||||
            cpu: 500m
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - mountPath: /queue
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: mailqueue
 | 
					 | 
				
			||||||
          - mountPath: /overrides
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: overrides
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - name: smtp
 | 
					 | 
				
			||||||
            containerPort: 25
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtp-ssl
 | 
					 | 
				
			||||||
            containerPort: 465
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtp-starttls
 | 
					 | 
				
			||||||
            containerPort: 587
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtp-auth
 | 
					 | 
				
			||||||
            containerPort: 10025
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: maildata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: smtp
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-smtp
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: smtp
 | 
					 | 
				
			||||||
    port: 25
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtp-ssl
 | 
					 | 
				
			||||||
    port: 465
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtp-starttls
 | 
					 | 
				
			||||||
    port: 587
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtp-auth
 | 
					 | 
				
			||||||
    port: 10025
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@ -1,63 +0,0 @@
 | 
				
			|||||||
apiVersion: apps/v1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-webdav
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-webdav
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: radicale
 | 
					 | 
				
			||||||
        image: mailu/radicale:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - mountPath: /data
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: dav
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - containerPort: 5232
 | 
					 | 
				
			||||||
          - containerPort: 80
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: maildata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: webdav
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-webdav
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-webdav
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: http
 | 
					 | 
				
			||||||
    port: 80
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: http-ui
 | 
					 | 
				
			||||||
    port: 5232
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@ -1,57 +0,0 @@
 | 
				
			|||||||
apiVersion: apps/v1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-roundcube
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-roundcube
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: frontend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: roundcube
 | 
					 | 
				
			||||||
        image: mailu/roundcube:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 200Mi
 | 
					 | 
				
			||||||
            cpu: 200m
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - mountPath: /data
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: webmail
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - containerPort: 80
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: maildata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: webmail
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-roundcube
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: frontend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-roundcube
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: frontend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: http
 | 
					 | 
				
			||||||
    port: 80
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@ -1,55 +0,0 @@
 | 
				
			|||||||
apiVersion: apps/v1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: default-http-backend
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: default-http-backend
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    matchLabels:
 | 
					 | 
				
			||||||
      app: default-http-backend
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: default-http-backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      terminationGracePeriodSeconds: 60
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: default-http-backend
 | 
					 | 
				
			||||||
        # Any image is permissible as long as:
 | 
					 | 
				
			||||||
        # 1. It serves a 404 page at /
 | 
					 | 
				
			||||||
        # 2. It serves 200 on a /healthz endpoint
 | 
					 | 
				
			||||||
        image: gcr.io/google_containers/defaultbackend:1.4
 | 
					 | 
				
			||||||
        livenessProbe:
 | 
					 | 
				
			||||||
          httpGet:
 | 
					 | 
				
			||||||
            path: /healthz
 | 
					 | 
				
			||||||
            port: 8080
 | 
					 | 
				
			||||||
            scheme: HTTP
 | 
					 | 
				
			||||||
          initialDelaySeconds: 30
 | 
					 | 
				
			||||||
          timeoutSeconds: 5
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
        - containerPort: 8080
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            cpu: 10m
 | 
					 | 
				
			||||||
            memory: 20Mi
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            cpu: 10m
 | 
					 | 
				
			||||||
            memory: 20Mi
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: default-http-backend
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: default-http-backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - port: 80
 | 
					 | 
				
			||||||
    targetPort: 8080
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: default-http-backend
 | 
					 | 
				
			||||||
@ -1,127 +0,0 @@
 | 
				
			|||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  # keep it under 24 chars
 | 
					 | 
				
			||||||
  name: ingress-lb
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    k8s-app: ingress-lb
 | 
					 | 
				
			||||||
    component: ingress-controller
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  type: ClusterIP
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    k8s-app: ingress-lb
 | 
					 | 
				
			||||||
    component: ingress-controller
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
    - name: http
 | 
					 | 
				
			||||||
      protocol: TCP
 | 
					 | 
				
			||||||
      port: 80
 | 
					 | 
				
			||||||
      targetPort: 80
 | 
					 | 
				
			||||||
    - name: https
 | 
					 | 
				
			||||||
      protocol: TCP
 | 
					 | 
				
			||||||
      port: 443
 | 
					 | 
				
			||||||
      targetPort: 443
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: ConfigMap
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: udp-services
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: ConfigMap
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: tcp-services
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
data:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
data:
 | 
					 | 
				
			||||||
  enable-vts-status: "true"
 | 
					 | 
				
			||||||
kind: ConfigMap
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: nginx-ingress-lb-conf
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: apps/v1beta2
 | 
					 | 
				
			||||||
kind: DaemonSet
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: ingress-controller
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
  annotations:
 | 
					 | 
				
			||||||
    prometheus.io/port: "10254"
 | 
					 | 
				
			||||||
    prometheus.io/scrape: "true"
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    k8s-app: ingress-lb
 | 
					 | 
				
			||||||
    component: ingress-controller
 | 
					 | 
				
			||||||
    type: nginx
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  updateStrategy:
 | 
					 | 
				
			||||||
    rollingUpdate:
 | 
					 | 
				
			||||||
      maxUnavailable: 1
 | 
					 | 
				
			||||||
    type: RollingUpdate
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    matchLabels:
 | 
					 | 
				
			||||||
      k8s-app: ingress-lb
 | 
					 | 
				
			||||||
      component: ingress-controller
 | 
					 | 
				
			||||||
      type: nginx
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        k8s-app: ingress-lb
 | 
					 | 
				
			||||||
        component: ingress-controller
 | 
					 | 
				
			||||||
        type: nginx
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      serviceAccount: kube-nginx-ingress
 | 
					 | 
				
			||||||
      affinity:
 | 
					 | 
				
			||||||
        nodeAffinity:
 | 
					 | 
				
			||||||
          requiredDuringSchedulingIgnoredDuringExecution:
 | 
					 | 
				
			||||||
            nodeSelectorTerms:
 | 
					 | 
				
			||||||
            - matchExpressions:
 | 
					 | 
				
			||||||
              - key: node-role.kubernetes.io/master
 | 
					 | 
				
			||||||
                operator: DoesNotExist
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
        - name: nginx-ingress-lb
 | 
					 | 
				
			||||||
          image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.16.2
 | 
					 | 
				
			||||||
          args:
 | 
					 | 
				
			||||||
          - /nginx-ingress-controller
 | 
					 | 
				
			||||||
          - --default-backend-service=$(POD_NAMESPACE)/default-http-backend
 | 
					 | 
				
			||||||
          - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
 | 
					 | 
				
			||||||
          - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
 | 
					 | 
				
			||||||
          - --annotations-prefix=ingress.kubernetes.io
 | 
					 | 
				
			||||||
          - --enable-ssl-passthrough
 | 
					 | 
				
			||||||
          # use downward API
 | 
					 | 
				
			||||||
          env:
 | 
					 | 
				
			||||||
            - name: POD_NAME
 | 
					 | 
				
			||||||
              valueFrom:
 | 
					 | 
				
			||||||
                fieldRef:
 | 
					 | 
				
			||||||
                  fieldPath: metadata.name
 | 
					 | 
				
			||||||
            - name: POD_NAMESPACE
 | 
					 | 
				
			||||||
              valueFrom:
 | 
					 | 
				
			||||||
                fieldRef:
 | 
					 | 
				
			||||||
                  fieldPath: metadata.namespace
 | 
					 | 
				
			||||||
          ports:
 | 
					 | 
				
			||||||
            - name: http
 | 
					 | 
				
			||||||
              containerPort: 80
 | 
					 | 
				
			||||||
            - name: https
 | 
					 | 
				
			||||||
              containerPort: 443
 | 
					 | 
				
			||||||
          readinessProbe:
 | 
					 | 
				
			||||||
            httpGet:
 | 
					 | 
				
			||||||
              path: /healthz
 | 
					 | 
				
			||||||
              port: 10254
 | 
					 | 
				
			||||||
              scheme: HTTP
 | 
					 | 
				
			||||||
          livenessProbe:
 | 
					 | 
				
			||||||
            initialDelaySeconds: 10
 | 
					 | 
				
			||||||
            timeoutSeconds: 1
 | 
					 | 
				
			||||||
            httpGet:
 | 
					 | 
				
			||||||
              path: /healthz
 | 
					 | 
				
			||||||
              port: 10254
 | 
					 | 
				
			||||||
              scheme: HTTP
 | 
					 | 
				
			||||||
      hostNetwork: true
 | 
					 | 
				
			||||||
      nodeSelector:
 | 
					 | 
				
			||||||
        node-role.kubernetes.io/node: ""
 | 
					 | 
				
			||||||
      dnsPolicy: ClusterFirstWithHostNet
 | 
					 | 
				
			||||||
      restartPolicy: Always
 | 
					 | 
				
			||||||
      terminationGracePeriodSeconds: 60
 | 
					 | 
				
			||||||
@ -1,129 +0,0 @@
 | 
				
			|||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Namespace
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: kube-ingress
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: ServiceAccount
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
 | 
					 | 
				
			||||||
kind: ClusterRole
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
rules:
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - configmaps
 | 
					 | 
				
			||||||
      - endpoints
 | 
					 | 
				
			||||||
      - nodes
 | 
					 | 
				
			||||||
      - pods
 | 
					 | 
				
			||||||
      - secrets
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - list
 | 
					 | 
				
			||||||
      - watch
 | 
					 | 
				
			||||||
      - update
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - nodes
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - get
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - services
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - get
 | 
					 | 
				
			||||||
      - list
 | 
					 | 
				
			||||||
      - watch
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - "extensions"
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - ingresses
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - get
 | 
					 | 
				
			||||||
      - list
 | 
					 | 
				
			||||||
      - watch
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
        - events
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
        - create
 | 
					 | 
				
			||||||
        - patch
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - "extensions"
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - ingresses/status
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - update
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
 | 
					 | 
				
			||||||
kind: Role
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
rules:
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - configmaps
 | 
					 | 
				
			||||||
      - pods
 | 
					 | 
				
			||||||
      - secrets
 | 
					 | 
				
			||||||
      - namespaces
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - get
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - configmaps
 | 
					 | 
				
			||||||
    resourceNames:
 | 
					 | 
				
			||||||
      - "ingress-controller-leader-nginx"
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - get
 | 
					 | 
				
			||||||
      - update
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - configmaps
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - create
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - endpoints
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - get
 | 
					 | 
				
			||||||
      - create
 | 
					 | 
				
			||||||
      - update
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
 | 
					 | 
				
			||||||
kind: RoleBinding
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
roleRef:
 | 
					 | 
				
			||||||
  apiGroup: rbac.authorization.k8s.io
 | 
					 | 
				
			||||||
  kind: Role
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
subjects:
 | 
					 | 
				
			||||||
  - kind: ServiceAccount
 | 
					 | 
				
			||||||
    name: kube-nginx-ingress
 | 
					 | 
				
			||||||
    namespace: kube-ingress
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
 | 
					 | 
				
			||||||
kind: ClusterRoleBinding
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
roleRef:
 | 
					 | 
				
			||||||
  apiGroup: rbac.authorization.k8s.io
 | 
					 | 
				
			||||||
  kind: ClusterRole
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
subjects:
 | 
					 | 
				
			||||||
  - kind: ServiceAccount
 | 
					 | 
				
			||||||
    name: kube-nginx-ingress
 | 
					 | 
				
			||||||
    namespace: kube-ingress
 | 
					 | 
				
			||||||
@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					Add sending quotas per user
 | 
				
			||||||
@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					Allow specific users to send emails from any address using the WILDCARD_SENDERS setting
 | 
				
			||||||
@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					Make smtp_tls_policy_maps easily configurable
 | 
				
			||||||
@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					 Hebrew translation has been completed.
 | 
				
			||||||
@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					Add support for ECDSA certificates when letsencrypt is used. This means dropping compatibility for android < 4.1.1
 | 
				
			||||||
 | 
					Add LETSENCRYPT_SHORTCHAIN to your configuration to avoid sending ISRG Root X1 (this will break compatibility with android < 7.1.1)
 | 
				
			||||||
 | 
					Disable AUTH command on port 25
 | 
				
			||||||
 | 
					Disable TLS tickets, reconfigure the cache to improve Forward Secrecy
 | 
				
			||||||
 | 
					Prevent clear-text credentials from being sent to relays
 | 
				
			||||||
@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					Webmail and Radicale (webdav) were not useable with domains with special characters such as umlauts.
 | 
				
			||||||
 | 
					Webmail and radicale now use punycode for logging in.
 | 
				
			||||||
 | 
					Punycode was not used in the HTTP headers. This resulted in illegal non-ASCII HTTP headers.
 | 
				
			||||||
@ -1,51 +1,71 @@
 | 
				
			|||||||
ARG ARCH=""
 | 
					ARG ARCH=""
 | 
				
			||||||
ARG QEMU=other
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# NOTE: only add file if building for arm
 | 
					# NOTE: only add file if building for arm
 | 
				
			||||||
FROM ${ARCH}php:7.4-apache as build_arm
 | 
					FROM ${ARCH}alpine:3.14
 | 
				
			||||||
ONBUILD COPY --from=balenalib/rpi-alpine:3.14 /usr/bin/qemu-arm-static /usr/bin/qemu-arm-static
 | 
					ONBUILD COPY --from=balenalib/rpi-alpine:3.14 /usr/bin/qemu-arm-static /usr/bin/qemu-arm-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM ${ARCH}php:7.4-apache as build_other
 | 
					# Shared later between dovecot postfix nginx rspamd rainloop and roundloop
 | 
				
			||||||
 | 
					RUN apk add --no-cache \
 | 
				
			||||||
 | 
					    python3 py3-pip \
 | 
				
			||||||
 | 
					 && pip3 install socrate==0.2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM build_${QEMU}
 | 
					#  https://www.rainloop.net/docs/system-requirements/
 | 
				
			||||||
#Shared layer between rainloop and roundcube
 | 
					#  Rainloop:
 | 
				
			||||||
RUN apt-get update && apt-get install -y \
 | 
					#     cURL            Builtin
 | 
				
			||||||
  python3 curl python3-pip git python3-multidict \
 | 
					#     iconv           php7-iconv
 | 
				
			||||||
  && rm -rf /var/lib/apt/lists \
 | 
					#     json            php7-json
 | 
				
			||||||
  && echo "ServerSignature Off" >> /etc/apache2/apache2.conf
 | 
					#     libxml          php7-xml
 | 
				
			||||||
 | 
					#     dom             php7-dom
 | 
				
			||||||
 | 
					#     openssl         php7-openssl
 | 
				
			||||||
 | 
					#     DateTime        Builtin
 | 
				
			||||||
 | 
					#     PCRE            Builtin
 | 
				
			||||||
 | 
					#     SPL             Builtin
 | 
				
			||||||
 | 
					#  Recommended:
 | 
				
			||||||
 | 
					#     php7-fpm        FastCGI Process Manager
 | 
				
			||||||
 | 
					#  Optional PHP extension (for contacts):
 | 
				
			||||||
 | 
					#     php7-pdo        Accessing databases in PHP
 | 
				
			||||||
 | 
					#     php7-pdo_sqlite Access to SQLite 3 databases
 | 
				
			||||||
 | 
					RUN apk add --no-cache \
 | 
				
			||||||
 | 
					    nginx \
 | 
				
			||||||
 | 
					    php7 php7-fpm php7-curl php7-iconv php7-json php7-xml php7-dom php7-openssl php7-pdo php7-pdo_sqlite \
 | 
				
			||||||
 | 
					 && rm /etc/nginx/http.d/default.conf \
 | 
				
			||||||
 | 
					 && rm /etc/php7/php-fpm.d/www.conf \
 | 
				
			||||||
 | 
					 && mkdir -p /run/nginx \
 | 
				
			||||||
 | 
					 && mkdir -p /var/www/rainloop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Shared layer between nginx, dovecot, postfix, postgresql, rspamd, unbound, rainloop, roundcube
 | 
					# nginx / PHP config files
 | 
				
			||||||
RUN pip3 install socrate
 | 
					COPY config/nginx-rainloop.conf /etc/nginx/http.d/rainloop.conf
 | 
				
			||||||
 | 
					COPY config/php-rainloop.conf /etc/php7/php-fpm.d/rainloop.conf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Rainloop login
 | 
				
			||||||
 | 
					COPY login/include.php /var/www/rainloop/include.php
 | 
				
			||||||
 | 
					COPY login/sso.php /var/www/rainloop/sso.php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Parsed en moved at startup
 | 
				
			||||||
 | 
					COPY defaults/php.ini /defaults/php.ini
 | 
				
			||||||
 | 
					COPY defaults/application.ini /defaults/application.ini
 | 
				
			||||||
 | 
					COPY defaults/default.ini /defaults/default.ini
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install Rainloop from source
 | 
				
			||||||
ENV RAINLOOP_URL https://github.com/RainLoop/rainloop-webmail/releases/download/v1.16.0/rainloop-community-1.16.0.zip
 | 
					ENV RAINLOOP_URL https://github.com/RainLoop/rainloop-webmail/releases/download/v1.16.0/rainloop-community-1.16.0.zip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN apt-get update && apt-get install -y \
 | 
					RUN apk add --no-cache \
 | 
				
			||||||
      unzip python3-jinja2 \
 | 
					      curl unzip \
 | 
				
			||||||
 && rm -rf /var/www/html/ \
 | 
					 && cd /var/www/rainloop \
 | 
				
			||||||
 && mkdir /var/www/html \
 | 
					 | 
				
			||||||
 && cd /var/www/html \
 | 
					 | 
				
			||||||
 && curl -L -O ${RAINLOOP_URL} \
 | 
					 && curl -L -O ${RAINLOOP_URL} \
 | 
				
			||||||
 && unzip -q *.zip \
 | 
					 && unzip -q *.zip \
 | 
				
			||||||
 && rm -f *.zip \
 | 
					 && rm -f *.zip \
 | 
				
			||||||
 && rm -rf data/ \
 | 
					 && rm -rf data/ \
 | 
				
			||||||
 && find . -type d -exec chmod 755 {} \; \
 | 
					 && find . -type d -exec chmod 755 {} \; \
 | 
				
			||||||
 && find . -type f -exec chmod 644 {} \; \
 | 
					 && find . -type f -exec chmod 644 {} \; \
 | 
				
			||||||
 && chown -R www-data: * \
 | 
					 && chown -R nginx:nginx /var/www/rainloop \
 | 
				
			||||||
 && apt-get purge -y unzip \
 | 
					 && apk del unzip
 | 
				
			||||||
 && rm -rf /var/lib/apt/lists
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY include.php /var/www/html/include.php
 | 
					 | 
				
			||||||
COPY sso.php /var/www/html/sso.php
 | 
					 | 
				
			||||||
COPY php.ini /php.ini
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY application.ini /application.ini
 | 
					 | 
				
			||||||
COPY default.ini /default.ini
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY start.py /start.py
 | 
					COPY start.py /start.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXPOSE 80/tcp
 | 
					EXPOSE 80/tcp
 | 
				
			||||||
VOLUME ["/data"]
 | 
					VOLUME ["/data"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CMD /start.py
 | 
					CMD php-fpm7 && /start.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HEALTHCHECK CMD curl -f -L http://localhost/ || exit 1
 | 
					HEALTHCHECK CMD curl -f -L http://localhost/ || exit 1
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					server {
 | 
				
			||||||
 | 
					    listen 80 default_server;
 | 
				
			||||||
 | 
					    listen [::]:80 default_server;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    root /var/www/rainloop;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    # /dev/stdout (Default), <path>, off
 | 
				
			||||||
 | 
					    access_log off;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # /dev/stderr (Default), <path>, debug, info, notice, warn, error, crit, alert, emerg
 | 
				
			||||||
 | 
					    error_log /dev/stderr warn;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    index index.php;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    location / {
 | 
				
			||||||
 | 
					        try_files $uri /index.php?$query_string;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    location ~ \.php$ {
 | 
				
			||||||
 | 
					        fastcgi_split_path_info ^(.+\.php)(/.*)$;
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        fastcgi_intercept_errors on;
 | 
				
			||||||
 | 
					        fastcgi_index  index.php;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        fastcgi_keep_conn on;
 | 
				
			||||||
 | 
					        include /etc/nginx/fastcgi_params;
 | 
				
			||||||
 | 
					        fastcgi_pass unix:/var/run/php7-fpm.sock;
 | 
				
			||||||
 | 
					        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    location ~ /\.ht {
 | 
				
			||||||
 | 
					        deny all;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    location ^~ /data {
 | 
				
			||||||
 | 
					      deny all;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,101 @@
 | 
				
			|||||||
 | 
					; Start a new pool named 'rainloop'.
 | 
				
			||||||
 | 
					; the variable $pool can be used in any directive and will be replaced by the
 | 
				
			||||||
 | 
					; pool name ('rainloop' here)
 | 
				
			||||||
 | 
					[rainloop]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Redirect worker stdout and stderr into main error log. If not set, stdout and 
 | 
				
			||||||
 | 
					; stderr will be redirected to /dev/null according to FastCGI specs. 
 | 
				
			||||||
 | 
					; Default value: no. 
 | 
				
			||||||
 | 
					catch_workers_output = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Unix user/group of processes
 | 
				
			||||||
 | 
					; Note: The user is mandatory. If the group is not set, the default user's group
 | 
				
			||||||
 | 
					;       will be used.
 | 
				
			||||||
 | 
					user = nginx
 | 
				
			||||||
 | 
					group = nginx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; The address on which to accept FastCGI requests.
 | 
				
			||||||
 | 
					; Valid syntaxes are:
 | 
				
			||||||
 | 
					;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific IPv4 address on
 | 
				
			||||||
 | 
					;                            a specific port;
 | 
				
			||||||
 | 
					;   '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
 | 
				
			||||||
 | 
					;                            a specific port;
 | 
				
			||||||
 | 
					;   'port'                 - to listen on a TCP socket to all addresses
 | 
				
			||||||
 | 
					;                            (IPv6 and IPv4-mapped) on a specific port;
 | 
				
			||||||
 | 
					;   '/path/to/unix/socket' - to listen on a unix socket.
 | 
				
			||||||
 | 
					; Note: This value is mandatory.
 | 
				
			||||||
 | 
					listen = /var/run/php7-fpm.sock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Set permissions for unix socket, if one is used. In Linux, read/write
 | 
				
			||||||
 | 
					; permissions must be set in order to allow connections from a web server. Many
 | 
				
			||||||
 | 
					; BSD-derived systems allow connections regardless of permissions.
 | 
				
			||||||
 | 
					; Default Values: user and group are set as the running user
 | 
				
			||||||
 | 
					;                 mode is set to 0660
 | 
				
			||||||
 | 
					listen.owner = nginx
 | 
				
			||||||
 | 
					listen.group = nginx
 | 
				
			||||||
 | 
					listen.mode = 0660
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Choose how the process manager will control the number of child processes.
 | 
				
			||||||
 | 
					; Possible Values:
 | 
				
			||||||
 | 
					;   static  - a fixed number (pm.max_children) of child processes;
 | 
				
			||||||
 | 
					;   dynamic - the number of child processes are set dynamically based on the
 | 
				
			||||||
 | 
					;             following directives. With this process management, there will be
 | 
				
			||||||
 | 
					;             always at least 1 children.
 | 
				
			||||||
 | 
					;             pm.max_children      - the maximum number of children that can
 | 
				
			||||||
 | 
					;                                    be alive at the same time.
 | 
				
			||||||
 | 
					;             pm.start_servers     - the number of children created on startup.
 | 
				
			||||||
 | 
					;             pm.min_spare_servers - the minimum number of children in 'idle'
 | 
				
			||||||
 | 
					;                                    state (waiting to process). If the number
 | 
				
			||||||
 | 
					;                                    of 'idle' processes is less than this
 | 
				
			||||||
 | 
					;                                    number then some children will be created.
 | 
				
			||||||
 | 
					;             pm.max_spare_servers - the maximum number of children in 'idle'
 | 
				
			||||||
 | 
					;                                    state (waiting to process). If the number
 | 
				
			||||||
 | 
					;                                    of 'idle' processes is greater than this
 | 
				
			||||||
 | 
					;                                    number then some children will be killed.
 | 
				
			||||||
 | 
					;  ondemand - no children are created at startup. Children will be forked when
 | 
				
			||||||
 | 
					;             new requests will connect. The following parameter are used:
 | 
				
			||||||
 | 
					;             pm.max_children           - the maximum number of children that
 | 
				
			||||||
 | 
					;                                         can be alive at the same time.
 | 
				
			||||||
 | 
					;             pm.process_idle_timeout   - The number of seconds after which
 | 
				
			||||||
 | 
					;                                         an idle process will be killed.
 | 
				
			||||||
 | 
					; Note: This value is mandatory.
 | 
				
			||||||
 | 
					pm = ondemand
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; The number of child processes to be created when pm is set to 'static' and the
 | 
				
			||||||
 | 
					; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
 | 
				
			||||||
 | 
					; This value sets the limit on the number of simultaneous requests that will be
 | 
				
			||||||
 | 
					; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
 | 
				
			||||||
 | 
					; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
 | 
				
			||||||
 | 
					; CGI. The below defaults are based on a server without much resources. Don't
 | 
				
			||||||
 | 
					; forget to tweak pm.* to fit your needs.
 | 
				
			||||||
 | 
					; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
 | 
				
			||||||
 | 
					; Note: This value is mandatory.
 | 
				
			||||||
 | 
					pm.max_children = 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; The number of child processes created on startup.
 | 
				
			||||||
 | 
					; Note: Used only when pm is set to 'dynamic'
 | 
				
			||||||
 | 
					; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
 | 
				
			||||||
 | 
					; pm.start_servers = 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; The desired minimum number of idle server processes.
 | 
				
			||||||
 | 
					; Note: Used only when pm is set to 'dynamic'
 | 
				
			||||||
 | 
					; Note: Mandatory when pm is set to 'dynamic'
 | 
				
			||||||
 | 
					; pm.min_spare_servers = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; The desired maximum number of idle server processes.
 | 
				
			||||||
 | 
					; Note: Used only when pm is set to 'dynamic'
 | 
				
			||||||
 | 
					; Note: Mandatory when pm is set to 'dynamic'
 | 
				
			||||||
 | 
					; pm.max_spare_servers = 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; This sets the maximum time in seconds a script is allowed to run before it is 
 | 
				
			||||||
 | 
					; terminated by the parser. This helps prevent poorly written scripts from tying up 
 | 
				
			||||||
 | 
					; the server. The default setting is 30s.
 | 
				
			||||||
 | 
					; Note: Used only when pm is set to 'ondemand'
 | 
				
			||||||
 | 
					pm.process_idle_timeout = 10s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; The number of requests each child process should execute before respawning. 
 | 
				
			||||||
 | 
					; This can be useful to work around memory leaks in 3rd party libraries. For endless
 | 
				
			||||||
 | 
					; request processing specify '0'.
 | 
				
			||||||
 | 
					; Equivalent to PHP_FCGI_MAX_REQUESTS. Default value: 0.
 | 
				
			||||||
 | 
					; Noted: Used only when pm is set to 'ondemand'
 | 
				
			||||||
 | 
					pm.max_requests = 200
 | 
				
			||||||
					Loading…
					
					
				
		Reference in New Issue