From da8a9293c87fc2aa19f79de2d3de333da5d89b69 Mon Sep 17 00:00:00 2001 From: chemavx Date: Wed, 3 Jun 2026 07:58:55 +0000 Subject: [PATCH] feat: add filebrowser to browse and download imagefinder output Co-Authored-By: Claude Opus 4.8 (1M context) --- filebrowser/argocd-app.yaml | 20 +++++++ filebrowser/deployment.yaml | 116 ++++++++++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 filebrowser/argocd-app.yaml create mode 100644 filebrowser/deployment.yaml diff --git a/filebrowser/argocd-app.yaml b/filebrowser/argocd-app.yaml new file mode 100644 index 0000000..4f87642 --- /dev/null +++ b/filebrowser/argocd-app.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: filebrowser + namespace: argocd +spec: + project: default + source: + repoURL: https://git.chemavx.xyz/chemavx/k8s-manifests + targetRevision: HEAD + path: filebrowser + destination: + server: https://kubernetes.default.svc + namespace: filebrowser + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/filebrowser/deployment.yaml b/filebrowser/deployment.yaml new file mode 100644 index 0000000..6cbc207 --- /dev/null +++ b/filebrowser/deployment.yaml @@ -0,0 +1,116 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: filebrowser + +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: filebrowser-db + namespace: filebrowser +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: filebrowser + namespace: filebrowser + labels: + app: filebrowser +spec: + replicas: 1 + selector: + matchLabels: + app: filebrowser + template: + metadata: + labels: + app: filebrowser + spec: + nodeSelector: + kubernetes.io/hostname: chemavx-k8 + containers: + - name: filebrowser + image: filebrowser/filebrowser:latest + imagePullPolicy: Always + env: + - name: FB_NOAUTH + value: "true" + - name: FB_ROOT + value: "/srv" + - name: FB_DATABASE + value: "/database/filebrowser.db" + ports: + - name: http + containerPort: 80 + volumeMounts: + - name: images + mountPath: /srv + readOnly: true + - name: database + mountPath: /database + resources: + requests: + memory: "64Mi" + cpu: "50m" + limits: + memory: "256Mi" + cpu: "250m" + volumes: + - name: images + hostPath: + path: /home/chemavx/imagefinder/output + type: Directory + - name: database + persistentVolumeClaim: + claimName: filebrowser-db + +--- +apiVersion: v1 +kind: Service +metadata: + name: filebrowser + namespace: filebrowser +spec: + selector: + app: filebrowser + ports: + - name: http + port: 80 + targetPort: 80 + type: ClusterIP + +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: filebrowser + namespace: filebrowser + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + traefik.ingress.kubernetes.io/router.entrypoints: websecure +spec: + ingressClassName: traefik + rules: + - host: files.chemavx.xyz + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: filebrowser + port: + number: 80 + tls: + - hosts: + - files.chemavx.xyz + secretName: filebrowser-tls