stack.basicstack.de/apps/stalwart
CTO Agent d5e8c28a6a Convert all secrets to SealedSecrets for enhanced security
This commit converts all application secrets to SealedSecrets, preventing
plaintext secrets from being stored in git.

Changes:
- Added .gitignore to prevent future plaintext secret commits
- Created 20 SealedSecret manifests across 8 applications:
  * Stalwart (4 secrets): admin credentials, OAuth proxy, OIDC, S3 backup
  * Directus (5 secrets): admin, agent token, app secrets, DB, OIDC
  * Paperclip (4 secrets): main secrets, auth, OIDC, session
  * Forgejo (2 secrets): postgres, backup
  * BookStack (2 secrets): OIDC, MySQL
  * Passbolt (2 secrets): MariaDB, app secrets
  * Pocket ID (1 secret)
- Removed hardcoded secrets from 6 stalwart deployment files
- Replaced plaintext credentials with references to sealed secrets

All sealed secrets have been applied to the cluster and services verified
to be running correctly.

Related: DEV-203

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 18:38:27 +00:00
..
README.md Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-admin-credentials-sealed.yaml Convert all secrets to SealedSecrets for enhanced security 2026-07-01 18:38:27 +00:00
stalwart-backup-restore.md Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-bootstrap-completion-guide.md Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-config-complete.json Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-config-fix-v2.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-config-fix.yaml Convert all secrets to SealedSecrets for enhanced security 2026-07-01 18:38:27 +00:00
stalwart-config-with-data.json Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-console-pod.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-dashboard-configmap.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-deployment-new.yaml Convert all secrets to SealedSecrets for enhanced security 2026-07-01 18:38:27 +00:00
stalwart-deployment-oidc-only.yaml Convert all secrets to SealedSecrets for enhanced security 2026-07-01 18:38:27 +00:00
stalwart-deployment-with-oidc.yaml Convert all secrets to SealedSecrets for enhanced security 2026-07-01 18:38:27 +00:00
stalwart-deployment.yaml Convert all secrets to SealedSecrets for enhanced security 2026-07-01 18:38:27 +00:00
stalwart-grafana-dashboard.json Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-helm-fix.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-helm-values-oidc.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-monitoring.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-oauth2-proxy-secret-sealed.yaml Convert all secrets to SealedSecrets for enhanced security 2026-07-01 18:38:27 +00:00
stalwart-oidc-config.yaml Convert all secrets to SealedSecrets for enhanced security 2026-07-01 18:38:27 +00:00
stalwart-oidc-sealed.yaml Convert all secrets to SealedSecrets for enhanced security 2026-07-01 18:38:27 +00:00
stalwart-s3-backup-sealed.yaml Convert all secrets to SealedSecrets for enhanced security 2026-07-01 18:38:27 +00:00
stalwart-service-patch.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-statefulset-patch-v2.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-statefulset-patch-v3.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-statefulset-patch.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-values-correct.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-values-fixed-ports.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00
stalwart-values.yaml Initialize CD/CI repository structure with Stalwart example 2026-07-01 18:08:31 +00:00

Stalwart Mail Server Deployment

This directory contains the complete deployment configuration for the Stalwart mail server on the basicstack.de cluster.

Files Overview

Deployment Manifests

  • stalwart-deployment.yaml - Basic deployment configuration
  • stalwart-deployment-new.yaml - Updated deployment variant
  • stalwart-deployment-with-oidc.yaml - Deployment with OIDC integration
  • stalwart-deployment-oidc-only.yaml - OIDC-only authentication deployment

Helm Configuration

  • stalwart-values.yaml - Main Helm values file
  • stalwart-values-fixed-ports.yaml - Values with corrected port configurations
  • stalwart-values-correct.yaml - Verified correct values
  • stalwart-helm-values-oidc.yaml - Helm values for OIDC setup
  • stalwart-helm-fix.yaml - Helm chart fixes

Configuration

  • stalwart-oidc-config.yaml - OIDC provider configuration
  • stalwart-config-fix.yaml - Configuration corrections
  • stalwart-config-fix-v2.yaml - Updated configuration fix

Monitoring

  • stalwart-monitoring.yaml - Prometheus ServiceMonitor and metrics
  • stalwart-dashboard-configmap.yaml - Grafana dashboard configuration

Maintenance

  • stalwart-console-pod.yaml - Debug/console pod for troubleshooting
  • stalwart-service-patch.yaml - Service configuration patch
  • stalwart-statefulset-patch.yaml - StatefulSet patches (v1, v2, v3)

Documentation

  • stalwart-backup-restore.md - Backup and restore procedures
  • stalwart-bootstrap-completion-guide.md - Initial setup guide

Deployment Notes

This is a reference implementation showing the evolution of a production deployment. Multiple variants are preserved to show:

  • Different authentication strategies (local vs. OIDC)
  • Configuration iterations and fixes
  • Monitoring integration
  • Operational procedures

When deploying a new service, you don't need this many files - choose the appropriate manifest for your use case and adapt it.

Current Production Deployment

Review the files to determine which manifest represents the current production state, or check the cluster directly with:

kubectl get deployment,statefulset -n stalwart