Kubernetes

Deploy LinkBreeze on Kubernetes with Deployment, Service, and Ingress.

LinkBreeze ships with a ready-to-adapt Kubernetes manifest in the examples/ directory.

Quick start

git clone https://github.com/Manak-hash/LinkBreeze.git
cd LinkBreeze/examples

# Edit the manifest: set your domain, secret key, and storage class
nano kubernetes.yaml

# Apply
kubectl apply -f kubernetes.yaml

What the manifest includes

  • Deployment with a single replica (LinkBreeze uses SQLite, so scale horizontally with care)
  • Service (ClusterIP) exposing port 3000
  • Ingress with TLS placeholder for your ingress controller
  • PersistentVolumeClaim for the linkbreeze-data volume
  • Resource limits and a readiness probe

Prerequisites

  • A Kubernetes cluster (managed or self-hosted)
  • An Ingress controller installed (nginx-ingress, Traefik, etc.)
  • A StorageClass that supports ReadWriteOnce

Configuration

The manifest uses a ConfigMap for non-sensitive config and a Secret for SECRET_KEY. Edit both before applying:

apiVersion: v1
kind: Secret
metadata:
  name: linkbreeze-secrets
type: Opaque
stringData:
  SECRET_KEY: "your-random-secret-key-here"

Generate a strong key:

openssl rand -hex 32

Scaling considerations

LinkBreeze uses SQLite as its database. This means:

  • One replica is the safe default
  • For high availability, front the pod with a read cache or migrate to PostgreSQL (planned)
  • The HPA in the example is optional — only enable it if you understand the SQLite multi-writer limitation

Updating

kubectl set image deployment/linkbreeze linkbreeze=ghcr.io/manak-hash/linkbreeze:latest
kubectl rollout status deployment/linkbreeze

Database migrations run automatically on startup.