Files
automation/kubernetes-templates/filebrowser.yml
2026-04-18 11:48:31 +00:00

105 lines
2.3 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: filebrowser
---
apiVersion: v1
kind: Secret
metadata:
name: filebrowser-auth
namespace: filebrowser
type: Opaque
data:
# Value: Blackstar2@home
admin-password: QmxhY2tzdGFyMkBob21l
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: filebrowser-config-pvc
namespace: filebrowser
spec:
accessModes: ["ReadWriteMany"]
storageClassName: nfs-storage
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: filebrowser-data-pvc
namespace: filebrowser
spec:
accessModes: ["ReadWriteMany"]
storageClassName: nfs-storage
resources:
requests:
storage: 50Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: filebrowser
namespace: filebrowser
spec:
replicas: 1
selector:
matchLabels:
app: filebrowser
template:
metadata:
labels:
app: filebrowser
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: DoesNotExist
containers:
- name: filebrowser
image: filebrowser/filebrowser:v2.30.0 # Using a specific version for stability
ports:
- containerPort: 80
# We remove 'command' and 'args' that rely on /bin/sh
# and use the native environment variables
env:
- name: FB_DATABASE
value: "/config/database.db"
- name: FB_ROOT
value: "/srv"
- name: FB_PORT
value: "80"
- name: FB_ADDR
value: "0.0.0.0"
volumeMounts:
- name: config
mountPath: /config
- name: data
mountPath: /srv
volumes:
- name: config
persistentVolumeClaim:
claimName: filebrowser-config-pvc
- name: data
persistentVolumeClaim:
claimName: filebrowser-data-pvc
---
apiVersion: v1
kind: Service
metadata:
name: filebrowser-service
namespace: filebrowser
spec:
type: NodePort
selector:
app: filebrowser
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
nodePort: 33003