Skip to content

Installation

This guide covers production deployment of SilentPulse on Kubernetes using Helm.

For a quick local evaluation with Docker Compose, see Quick Start.

  • Kubernetes 1.25+
  • Helm 3.10+
  • kubectl configured for your cluster
  • 2 CPU cores and 2 GB RAM available (minimum)
Terminal window
helm repo add silentpulse https://charts.silentpulse.io
helm repo update

Or install directly from the deploy repository:

Terminal window
git clone https://github.com/silentpulse-io/deploy.git
cd deploy

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.com
Terminal window
# From Helm repo
helm install silentpulse silentpulse/silentpulse \
-n silentpulse --create-namespace \
-f values-override.yaml
# Or from local chart
helm install silentpulse deploy/helm/silentpulse \
-n silentpulse --create-namespace \
-f values-override.yaml
Terminal window
kubectl -n silentpulse get pods

All pods should reach Running within 2-3 minutes:

NAME READY STATUS RESTARTS
silentpulse-api-xxx 1/1 Running 0
silentpulse-frontend-xxx 1/1 Running 0
silentpulse-cmdb-sync-xxx 1/1 Running 0
silentpulse-health-xxx 1/1 Running 0
silentpulse-notifications-xxx 1/1 Running 0
silentpulse-reporting-xxx 1/1 Running 0
silentpulse-operator-xxx 1/1 Running 0
silentpulse-postgres-0 1/1 Running 0
silentpulse-redis-0 1/1 Running 0

If ingress is enabled, open https://silentpulse.example.com in your browser.

For port-forwarding without ingress:

Terminal window
kubectl -n silentpulse port-forward svc/silentpulse-frontend 3000:3000

Default credentials:


ValueDescriptionDefault
postgresql.enabledDeploy PostgreSQL StatefulSettrue
postgresql.imagePostgreSQL + AGE imageapache/age:release_PG16_1.6.0
postgresql.storagePVC size5Gi
postgresql.passwordDatabase password(required)
redis.enabledDeploy Redis StatefulSettrue
redis.imageRedis imageredis:7-alpine
redis.storagePVC size1Gi
redis.passwordRedis password(recommended)

If you use an external PostgreSQL or Redis, set enabled: false and configure the connection in service environment variables.

ValueDescriptionDefault
api.replicasAPI server replicas1
api.portAPI port8080
frontend.replicasFrontend replicas1
frontend.portFrontend port3000
cmdbSync.replicasCMDB Sync replicas1
health.replicasHealth monitor replicas1
notifications.replicasNotification dispatcher replicas1
notifications.pollIntervalAlert poll interval30s
reporting.replicasReporting service replicas1
operator.replicasOperator replicas1
ValueDescriptionDefault
auth.jwtSecretJWT signing secret (min 32 chars)(required)
auth.jwtExpiryToken expiry duration24h
auth.encryptionKeyPer-tenant encryption key(required)
auth.healthAPIKeyExternal health metrics API key(optional)
ValueDescriptionDefault
ingress.enabledEnable Ingress resourcetrue
ingress.classNameIngress classnginx
ingress.hostHostnamesilentpulse.local

For TLS, add annotations for your cert-manager or load balancer:

ingress:
host: silentpulse.example.com
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod

Exposes SilentPulse data to AI agents and LLMs via the Model Context Protocol.

mcp:
enabled: true

Accessible at port 8090. See MCP documentation for client configuration.

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"
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.

connectorHub:
url: "https://hub.silentpulse.io"

For air-gapped environments, point to your internal Hub instance. See Connector Hub for self-hosting instructions.


Terminal window
helm repo update
helm upgrade silentpulse silentpulse/silentpulse \
-n silentpulse -f values-override.yaml

Database migrations run automatically on API startup - no manual steps needed.

Terminal window
helm uninstall silentpulse -n silentpulse

This removes all Kubernetes resources but preserves PersistentVolumeClaims (database data). To delete data permanently:

Terminal window
kubectl -n silentpulse delete pvc --all