# stack.basicstack.de CD/CI deployment manifests and configurations for the basicstack.de Kubernetes cluster. ## Repository Structure ``` stack.basicstack.de/ ├── apps/ # Application deployments │ ├── stalwart/ # Stalwart mail server (example) │ └── forgejo/ # Forgejo Git service (placeholder) ├── infrastructure/ # Infrastructure-level configurations │ ├── networking/ # Network policies, ingress, DNS │ └── monitoring/ # Monitoring, logging, observability └── docs/ # Documentation and guides ``` ## Purpose This repository serves as the central source of truth for all deployment configurations targeting the `basicstack.de` Kubernetes cluster. It follows GitOps principles where infrastructure and application state is declaratively defined and version-controlled. ## Directory Details ### `apps/` Contains deployment configurations for individual applications and services running on the cluster. Each application should have its own subdirectory with: - Kubernetes manifests (Deployments, StatefulSets, Services, etc.) - Helm values files - Configuration files - Application-specific documentation **Example:** The `stalwart/` directory contains the complete deployment configuration for the Stalwart mail server, including multiple deployment variants, monitoring setup, and operational guides. ### `infrastructure/` Contains cluster-wide infrastructure configurations: - **networking/**: Ingress controllers, network policies, DNS configurations, load balancers - **monitoring/**: Prometheus, Grafana, logging infrastructure, observability tools ### `docs/` General documentation including: - Deployment procedures - Cluster architecture - Troubleshooting guides - Best practices ## Getting Started 1. Clone this repository 2. Review the example Stalwart deployment in `apps/stalwart/` 3. Follow the pattern for new application deployments 4. Ensure all manifests are tested before committing ## Contributing All changes should be: 1. Committed with clear, descriptive messages 2. Tested in a development environment when possible 3. Documented appropriately 4. Reviewed before deployment to production ## Cluster Information - **Cluster**: basicstack.de - **Platform**: K3s on Hetzner Cloud - **Namespace Strategy**: One namespace per application (recommended) - **Ingress**: Traefik (default K3s ingress controller)