Installation
Installation
Section titled “Installation”This guide covers production deployment of SilentPulse on Kubernetes using Helm.
For a quick local evaluation with Docker Compose, see Quick Start.
Prerequisites
Section titled “Prerequisites”- Kubernetes 1.25+
- Helm 3.10+
kubectlconfigured for your cluster- 2 CPU cores and 2 GB RAM available (minimum)
1. Add the Helm Repository
Section titled “1. Add the Helm Repository”helm repo add silentpulse https://charts.silentpulse.iohelm repo updateOr install directly from the deploy repository:
git clone https://github.com/silentpulse-io/deploy.gitcd deploy2. Configure Values
Section titled “2. Configure Values”Create a values-override.yaml with your settings:
postgresql: password: "" # REQUIRED - openssl rand -hex 16
redis: password: "" # Recommended - openssl rand -hex 16
auth: jwtSecret: "" # REQUIRED (min 32 chars) - openssl rand -hex 32 encryptionKey: "" # REQUIRED - openssl rand -hex 32 healthAPIKey: "" # Recommended - openssl rand -hex 32
ingress: host: silentpulse.example.com3. Install
Section titled “3. Install”# From Helm repohelm install silentpulse silentpulse/silentpulse \ -n silentpulse --create-namespace \ -f values-override.yaml
# Or from local charthelm install silentpulse deploy/helm/silentpulse \ -n silentpulse --create-namespace \ -f values-override.yaml4. Verify
Section titled “4. Verify”kubectl -n silentpulse get podsAll pods should reach Running within 2-3 minutes:
NAME READY STATUS RESTARTSsilentpulse-api-xxx 1/1 Running 0silentpulse-frontend-xxx 1/1 Running 0silentpulse-cmdb-sync-xxx 1/1 Running 0silentpulse-health-xxx 1/1 Running 0silentpulse-notifications-xxx 1/1 Running 0silentpulse-reporting-xxx 1/1 Running 0silentpulse-operator-xxx 1/1 Running 0silentpulse-postgres-0 1/1 Running 0silentpulse-redis-0 1/1 Running 05. Access the Dashboard
Section titled “5. Access the Dashboard”If ingress is enabled, open https://silentpulse.example.com in your browser.
For port-forwarding without ingress:
kubectl -n silentpulse port-forward svc/silentpulse-frontend 3000:3000Default credentials:
- Email:
[email protected] - Password:
admin123
Configuration Reference
Section titled “Configuration Reference”Infrastructure
Section titled “Infrastructure”| Value | Description | Default |
|---|---|---|
postgresql.enabled | Deploy PostgreSQL StatefulSet | true |
postgresql.image | PostgreSQL + AGE image | apache/age:release_PG16_1.6.0 |
postgresql.storage | PVC size | 5Gi |
postgresql.password | Database password | (required) |
redis.enabled | Deploy Redis StatefulSet | true |
redis.image | Redis image | redis:7-alpine |
redis.storage | PVC size | 1Gi |
redis.password | Redis password | (recommended) |
If you use an external PostgreSQL or Redis, set enabled: false and configure the connection in service environment variables.
Services
Section titled “Services”| Value | Description | Default |
|---|---|---|
api.replicas | API server replicas | 1 |
api.port | API port | 8080 |
frontend.replicas | Frontend replicas | 1 |
frontend.port | Frontend port | 3000 |
cmdbSync.replicas | CMDB Sync replicas | 1 |
health.replicas | Health monitor replicas | 1 |
notifications.replicas | Notification dispatcher replicas | 1 |
notifications.pollInterval | Alert poll interval | 30s |
reporting.replicas | Reporting service replicas | 1 |
operator.replicas | Operator replicas | 1 |
Authentication
Section titled “Authentication”| Value | Description | Default |
|---|---|---|
auth.jwtSecret | JWT signing secret (min 32 chars) | (required) |
auth.jwtExpiry | Token expiry duration | 24h |
auth.encryptionKey | Per-tenant encryption key | (required) |
auth.healthAPIKey | External health metrics API key | (optional) |
Ingress
Section titled “Ingress”| Value | Description | Default |
|---|---|---|
ingress.enabled | Enable Ingress resource | true |
ingress.className | Ingress class | nginx |
ingress.host | Hostname | silentpulse.local |
For TLS, add annotations for your cert-manager or load balancer:
ingress: host: silentpulse.example.com annotations: cert-manager.io/cluster-issuer: letsencrypt-prodOptional Components
Section titled “Optional Components”MCP Server
Section titled “MCP Server”Exposes SilentPulse data to AI agents and LLMs via the Model Context Protocol.
mcp: enabled: trueAccessible at port 8090. See MCP documentation for client configuration.
Data Retention Job
Section titled “Data Retention Job”Automated cleanup of old alerts and observation data.
retentionJob: enabled: true schedule: "0 3 * * *" # Daily at 03:00 UTC coldStorage: enabled: true endpoint: "https://s3.amazonaws.com" bucket: "silentpulse-archive" region: "eu-central-1"Licensing
Section titled “Licensing”license: key: "sp_lic_xxxxxxxx"Without a license key, SilentPulse runs in community mode with core features. Enterprise features (AI Assistant, Behavioral Analytics) require a valid license.
Connector Hub
Section titled “Connector Hub”connectorHub: url: "https://hub.silentpulse.io"For air-gapped environments, point to your internal Hub instance. See Connector Hub for self-hosting instructions.
Upgrading
Section titled “Upgrading”helm repo updatehelm upgrade silentpulse silentpulse/silentpulse \ -n silentpulse -f values-override.yamlDatabase migrations run automatically on API startup - no manual steps needed.
Uninstalling
Section titled “Uninstalling”helm uninstall silentpulse -n silentpulseThis removes all Kubernetes resources but preserves PersistentVolumeClaims (database data). To delete data permanently:
kubectl -n silentpulse delete pvc --allNext Steps
Section titled “Next Steps”- Architecture - Understand the system components
- Flows - Create your first monitoring flow
- Integrations - Connect to your security stack
- API Reference - Integrate with your tools