| .. | ||
| templates | ||
| Chart.yaml | ||
| questions.yaml | ||
| README.md | ||
| values.yaml | ||
Introduction
This chart provides an easy way to run PhotoPrism® on a home lab or small business Kubernetes cluster while maintaining an approachable configuration.
Highlights
- Runs the official
photoprism/photoprismimage with non-root defaults (UID/GID 1000). - Ships with SQLite out of the box; switch to MariaDB/MySQL by filling in the database section.
- Creates lightweight PVCs for
/photoprism/storage(5 GiB) and, optionally,/photoprism/originals(10 GiB) – the cluster’s default storage class is used unless you override it. - Surfaces the most relevant customization settings (locale, themes, login footer, CORS/CDN, backup schedule) directly in Rancher’s UI or via
values.yaml.
Quick Start
helm repo add photoprism https://charts.photoprism.app/photoprism
helm repo update photoprism
helm upgrade --install photos photoprism/photoprism-plus \
--namespace photos --create-namespace
This deploys PhotoPrism with SQLite storage. To use MariaDB (recommended for larger libraries):
helm upgrade --install photos photoprism/photoprism-plus \
--namespace photos \
--set database.driver=mysql \
--set database.server=mariadb.default.svc.cluster.local:3306 \
--set database.name=photoprism \
--set database.user=photoprism \
--set database.password=changeme
Storage & Backups
persistence.storageis always created and holds the application state.persistence.originalscan be disabled or redirected to an NFS export when you manage originals elsewhere.- Backup options (
PHOTOPRISM_BACKUP_*) are exposed so you can point scheduled backups to another path or tweak retention.
Customization
Key values you might want to adjust:
config.PHOTOPRISM_SITE_TITLE,config.PHOTOPRISM_APP_NAME,config.PHOTOPRISM_DEFAULT_THEMEconfig.PHOTOPRISM_AUTH_MODE,config.PHOTOPRISM_LOGIN_INFO,config.PHOTOPRISM_PASSWORD_LENGTHconfig.PHOTOPRISM_CDN_URL,config.PHOTOPRISM_CORS_ORIGINconfig.PHOTOPRISM_FILES_QUOTA,config.PHOTOPRISM_UPLOAD_LIMIT
See values.yaml for the full list.
Networking & TLS
The chart exposes PhotoPrism on TCP 2342 through a ClusterIP service. You can override the service type or enable an Ingress resource when you terminate TLS in the cluster edge:
service:
type: ClusterIP
port: 2342
ingress:
enabled: true
className: traefik
hosts:
- host: photos.example.com
paths:
- path: /
pathType: Prefix
tls:
- hosts:
- photos.example.com
secretName: photos-tls
Because TLS typically terminates at the ingress or proxy layer, the chart keeps PHOTOPRISM_DISABLE_TLS set to true. Only enable PhotoPrism’s internal TLS if your cluster design requires end-to-end encryption and you manage the certificates yourself.
Security Tips
- When
adminPasswordis left blank, a random password is generated and stored insecret/<release>-photoprism-secrets. - Prefer MariaDB/MySQL for multi-user setups or large libraries, and back up both the database and storage PVCs regularly.
- If you expose PhotoPrism on the public internet, pair it with HTTPS termination (Ingress/TLS or an external proxy) and keep the container image up to date.
Getting Support
Commercial support is available with our Starter, Business, and Enterprise team plans:
PhotoPrism® Documentation
For more information on specific features, services and related resources, please refer to the other documentation available in our Knowledge Base and User Guide: