stack.basicstack.de/apps/README.md
CTO Agent c64f9ab0d0 Initialize CD/CI repository structure with Stalwart example
Set up the repository structure following GitOps principles:
- apps/ for application deployments (Stalwart as example)
- infrastructure/ for cluster-wide configs (networking, monitoring)
- docs/ for general documentation

Migrated complete Stalwart deployment configuration including:
- Multiple deployment variants (basic, OIDC-enabled)
- Helm values files
- Monitoring and dashboard configurations
- Operational documentation (backup/restore, bootstrap)
- Configuration patches and fixes

Added comprehensive README files at each level to guide future use.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-01 18:08:31 +00:00

40 lines
1.4 KiB
Markdown

# Applications
This directory contains deployment configurations for all applications running on the basicstack.de cluster.
## Structure
Each application should have its own subdirectory containing:
- **Kubernetes manifests**: Deployment, StatefulSet, Service, ConfigMap, Secret definitions
- **Helm values**: If using Helm charts, include values.yaml files
- **Configuration files**: Application-specific configs (TOML, JSON, YAML)
- **Documentation**: README or guide specific to the application deployment
- **Patches**: Any kubectl patches or modifications needed
## Example: Stalwart
The `stalwart/` directory serves as a reference implementation, containing:
- Multiple deployment variants (basic, with OIDC, etc.)
- Helm values files
- Monitoring dashboard configurations
- Backup/restore procedures
- Operational documentation
## Adding a New Application
1. Create a new directory: `apps/<application-name>/`
2. Add your Kubernetes manifests
3. Include a README.md explaining:
- What the application does
- How to deploy it
- Configuration options
- Troubleshooting steps
4. Test the deployment in a dev environment
5. Commit with a descriptive message
## Naming Conventions
- Directory names: lowercase, hyphen-separated (e.g., `my-app`)
- Manifest files: descriptive names indicating resource type (e.g., `deployment.yaml`, `service.yaml`)
- Use consistent naming across applications