This repository contains Kubernetes deployment configurations for Logora's application infrastructure. Each application is deployed using either official Helm charts or custom Helm charts, following consistent patterns for ingress, TLS certificates, and resource management.
Low-code platform for building internal tools and applications.
- Deployment: Official Helm chart
- Domain: budibase.logora.fr
- Database: CouchDB (included)
- Storage: MinIO (included)
Headless CMS for content management and API generation.
- Deployment: Custom Helm chart
- Domain: directus.logora.fr / directus-staging.logora.fr
- Database: PostgreSQL (external)
- Features: Multi-environment support (staging/prod)
Business intelligence and analytics platform.
- Deployment: Direct Kubernetes YAML
- Domain: data.logora.com
- Database: PostgreSQL (external)
Observability and telemetry collection for monitoring and tracing.
- Deployment: Official Helm chart
- Purpose: Centralized telemetry collection
- Integration: Sends data to Uptrace platform
Developer-friendly localization platform for managing translations.
- Deployment: Custom Helm chart
- Domain: tolgee.logora.fr / tolgee-staging.logora.fr
- Database: PostgreSQL (external)
- Features: Multi-environment support (staging/prod)
All applications use:
- Ingress Controller: nginx
- TLS Certificates: Automatic provisioning via cert-manager and Let's Encrypt
- SSL Redirect: Enforced HTTPS for all applications
Consistent resource allocation patterns:
- Memory Requests: 256Mi (typical)
- Memory Limits: 512Mi (typical)
- Storage Class:
csi-cinder-high-speedfor persistent volumes
- Secrets: Environment variables stored in Kubernetes secrets
- Configuration:
.env.examplefiles provide templates - Multi-environment: Staging and production configurations where applicable
Before deploying any application, ensure you have:
- Kubernetes Cluster: Running cluster with appropriate permissions
- Helm: Version 3.x installed and configured
- kubectl: Configured to connect to your cluster
- nginx-ingress-controller: Installed in your cluster
- cert-manager: Installed for automatic TLS certificate management
- External Databases: PostgreSQL instances for applications that require them
-
Prepare Environment:
# Create namespace kubectl create namespace <app-name> # Create secrets from .env file kubectl create secret generic <app-name>-env --from-env-file=.env --namespace <app-name>
-
Deploy Application:
# For Helm charts helm install <app-name> ./<app-name> --namespace <app-name> --values <app-name>/values.yaml # For direct YAML kubectl apply -f <app-name>/
-
Verify Deployment:
kubectl get pods -n <app-name> kubectl get svc -n <app-name> kubectl get ingress -n <app-name>
All applications follow the domain pattern:
- Production:
<app-name>.logora.fr - Staging:
<app-name>-staging.logora.fr - Exception: Metabase uses
data.logora.com
The OpenTelemetry collector is configured to:
- Collect metrics from all applications and infrastructure
- Aggregate logs from container workloads
- Forward telemetry data to Uptrace for analysis
- Provide comprehensive observability across the entire platform
- All sensitive configuration is stored in Kubernetes secrets
- TLS encryption is enforced for all external traffic
- Database connections use secure authentication
- Environment files (
.env) are excluded from version control
Each application folder contains:
README.md: Detailed deployment instructions.env.example: Configuration template- Helm charts or Kubernetes manifests
- Environment-specific configuration files
For application-specific issues, refer to the individual README files in each application directory.