filebrowser

This commit is contained in:
2026-03-20 15:04:49 +00:00
parent 57f6d983eb
commit 777cc19c4b
2 changed files with 138 additions and 0 deletions

View File

@@ -0,0 +1,128 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: filebrowser-db
namespace: samba-files
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 4Gi
storageClassName: cephfs-hyper
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: filebrowser
namespace: samba-files
labels:
app: filebrowser
spec:
replicas: 1
selector:
matchLabels:
app: filebrowser
template:
metadata:
labels:
app: filebrowser
spec:
initContainers:
- name: init-filebrowser-db
image: filebrowser/filebrowser:latest
imagePullPolicy: IfNotPresent
env:
- name: FB_USERNAME
valueFrom:
secretKeyRef:
name: filebrowser-admin
key: username
- name: FB_PASSWORD
valueFrom:
secretKeyRef:
name: filebrowser-admin
key: password
command:
- sh
- -ec
- |
mkdir -p /database
if [ ! -f /database/database.db ]; then
touch /database/database.db
fi
# Bootstrap base config in the DB
filebrowser -d /database/database.db config set \
--address 0.0.0.0 \
--port 80 \
--root /srv
# Create admin if missing, otherwise update password
if filebrowser -d /database/database.db users ls | grep -q "^${FB_USERNAME}[[:space:]]"; then
filebrowser -d /database/database.db users update "${FB_USERNAME}" --password "${FB_PASSWORD}" --perm.admin
else
filebrowser -d /database/database.db users add "${FB_USERNAME}" "${FB_PASSWORD}" --perm.admin
fi
ls -la /database
volumeMounts:
- mountPath: /database
name: filebrowser-db
- mountPath: /srv
name: filebrowser-data
containers:
- name: filebrowser
image: filebrowser/filebrowser:latest
imagePullPolicy: IfNotPresent
args:
- --database
- /database/database.db
- --root
- /srv
- --address
- 0.0.0.0
- --port
- "80"
ports:
- containerPort: 80
name: http
volumeMounts:
- mountPath: /srv
name: filebrowser-data
- mountPath: /database
name: filebrowser-db
volumes:
- name: filebrowser-data
persistentVolumeClaim:
claimName: samba-files-data
- name: filebrowser-db
persistentVolumeClaim:
claimName: filebrowser-db
---
apiVersion: v1
kind: Service
metadata:
name: filebrowser
namespace: samba-files
labels:
app: filebrowser
spec:
type: ClusterIP
internalTrafficPolicy: Cluster
ipFamilies:
- IPv6
- IPv4
ipFamilyPolicy: PreferDualStack
selector:
app: filebrowser
sessionAffinity: None
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80

View File

@@ -7,4 +7,14 @@ type: Opaque
stringData:
username: "shodan"
password: "4IsTheMindKiller"
---
apiVersion: v1
kind: Secret
metadata:
name: filebrowser-admin
namespace: samba-files
type: Opaque
stringData:
username: admin
password: "4IsTheMindKiller"
---