A collection of Helm charts for deploying Linkding (a bookmark manager) with PostgreSQL backend on Kubernetes bare metal cluster.
This repository contains two Helm charts that work together:
- postgres: Deploys PostgreSQL database as the backend
- linkding: Deploys the linkding web application
A Helm chart for deploying Linkding, a self-hosted bookmark manager.
Features:
- Deploy linkding web application (sissbruecker/linkding)
- Service account configuration
- Node affinity targeting worker nodes
Configuration:
- Service: ClusterIP on port 9090
- Ingress: Enabled by default
- Superuser credentials configurable
- Node affinity for worker nodes
A Helm chart for deploying PostgreSQL database.
Features:
- PostgreSQL 14 deployment
- Persistent storage with hostPath
- Configurable database credentials
- Service account configuration
- Node affinity targeting worker nodes
Configuration:
- Service: NodePort on port 5432
- Database: linkding
- Persistence: 2Gi with hostPath mounting
- Node affinity for worker nodes
.
├── charts/
│ ├── linkding/ # linkding application chart
│ │ ├── templates/ # Kubernetes templates
│ │ ├── Chart.yaml # Chart metadata
│ │ └── values.yaml # Default values
│ └── postgres/ # PostgreSQL database chart
│ ├── templates/ # Kubernetes templates
│ ├── Chart.yaml # Chart metadata
│ └── values.yaml # Default values
└── README.md # This file
- Kubernetes cluster
- Helm 3+
- Appropriate permissions to deploy resources
IMPORTANT: The PostgreSQL helm chart must be deployed first before the linkding application, as linkding depends on the database being available.
The PostgreSQL chart includes persistent data storage using hostPath mounting, ensuring your bookmark data is preserved across pod restarts and deployments.
helm install postgres ./charts/postgreshelm install linkding ./charts/linkdingYou can override default values by creating a custom values file:
helm install linkding ./charts/linkding -f custom-values.yamlBoth charts support extensive configuration through their respective values.yaml files. Key configurable parameters include:
- Resource limits and requests
- Image versions and repositories
- Storage settings
- Networking configuration
- Security contexts
- Autoscaling settings
Both charts are configured with node affinity to target worker nodes:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-type
operator: In
values:
- worker- Linkding image: sissbruecker/linkding:latest
- PostgreSQL image: postgres:14
This is a Helm chart repository for deploying Linkding with PostgreSQL. For application-specific issues, refer to the respective upstream projects.