filebrowser
This commit is contained in:
128
samba-files/filebrowser.yaml
Normal file
128
samba-files/filebrowser.yaml
Normal 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
|
||||
@@ -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"
|
||||
---
|
||||
Reference in New Issue
Block a user