homelab/k3s/mattermost/mattermost.yaml
Samantha Atkins 8cf5640757 Add Listmonk, Mattermost manifests; Ghost SMTP and device verification fix
- Listmonk: newsletter/mailing list manager with PostgreSQL backend,
  NodePort 32375, Postmark SMTP. Replaces Ghost's broken Mailgun-only
  newsletter sending via n8n automation pipeline.
- Mattermost: team messaging manifest, NodePort 32374, PostgreSQL backend.
- Ghost: added Postmark SMTP config for transactional email, disabled
  staffDeviceVerification on all three instances (Ghost has no TOTP,
  only email-based verification which requires working SMTP).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 18:07:35 -04:00

98 lines
2.3 KiB
YAML

# Mattermost — team messaging
# PostgreSQL backend via cluster DNS: postgres
# Unpinned — scheduler places freely, local-path PVC
# NodePort 32374
#
# Deploy:
# kubectl create secret generic mattermost-secret \
# --from-literal=db-password='<password>'
# kubectl apply -f mattermost-db-init.yaml
# kubectl get jobs -w # wait for completion
# kubectl apply -f mattermost.yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mattermost-data-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-path
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mattermost-plugins-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-path
resources:
requests:
storage: 2Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mattermost
spec:
replicas: 1
selector:
matchLabels:
app: mattermost
template:
metadata:
labels:
app: mattermost
spec:
containers:
- name: mattermost
image: mattermost/mattermost-team-edition:10
env:
- name: MM_DB_PASSWORD
valueFrom:
secretKeyRef:
name: mattermost-secret
key: db-password
- name: MM_SQLSETTINGS_DRIVERNAME
value: postgres
- name: MM_SQLSETTINGS_DATASOURCE
value: "postgres://mattermost_user:$(MM_DB_PASSWORD)@postgres:5432/mattermost_db?sslmode=disable&connect_timeout=10"
- name: MM_SERVICESETTINGS_SITEURL
value: https://chat.the-fulfillment.org
- name: MM_SERVICESETTINGS_LISTENADDRESS
value: ":8065"
ports:
- containerPort: 8065
volumeMounts:
- name: mattermost-data
mountPath: /mattermost/data
- name: mattermost-plugins
mountPath: /mattermost/plugins
volumes:
- name: mattermost-data
persistentVolumeClaim:
claimName: mattermost-data-pvc
- name: mattermost-plugins
persistentVolumeClaim:
claimName: mattermost-plugins-pvc
---
apiVersion: v1
kind: Service
metadata:
name: mattermost
spec:
selector:
app: mattermost
ports:
- port: 8065
targetPort: 8065
nodePort: 32374
type: NodePort