chibisafe

This commit is contained in:
2026-05-19 16:07:08 +02:00
parent c49d03d7f7
commit 612b5ffb28
6 changed files with 156 additions and 0 deletions

View File

@@ -1109,6 +1109,49 @@ storage:
- `vaultwarden-oidc-credentials` (registrar-managed) — OIDC client ID + secret
- `vaultwarden-tls` — auto-managed by cert-manager
### Chibisafe
**Chart**: `l4gdev/chibisafe`
**Version**: 0.1.1 (app latest)
**Namespace**: `chibisafe`
**Purpose**: Self-hosted file upload and sharing service.
**Configuration**:
```yaml
# infra/overlays/upc-dev/chibisafe/ + infra/values/
ingress:
enabled: true
className: "traefik"
hosts:
- host: chibisafe.forteapps.net
paths:
- path: /
pathType: Prefix
tls:
- secretName: chibisafe-tls
hosts:
- chibisafe.forteapps.net
persistence:
database:
enabled: true # SQLite, 1Gi
uploads:
enabled: true # User files, 10Gi
```
**Architecture**: Three-container pod — frontend (Next.js :8001), backend (API :8000), Caddy (reverse proxy :80).
**TLS**: cert-manager auto-provisions Let's Encrypt certificate via `letsencrypt-prod` ClusterIssuer.
**Storage**: SQLite database (1Gi PVC) + uploads (10Gi PVC), both ReadWriteOnce — single replica only.
**Endpoints**:
- Web UI: `https://chibisafe.forteapps.net`
**Secrets**:
- `chibisafe-tls` — auto-managed by cert-manager
### AI Code Review (ai-review)
**Type**: Gitea Actions workflow (`.gitea/workflows/ai-review.yaml`)

View File

@@ -0,0 +1,43 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: chibisafe
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "1"
labels:
app.kubernetes.io/name: chibisafe
app.kubernetes.io/part-of: storage
app.kubernetes.io/managed-by: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
sources:
- repoURL: https://l4gdev.github.io/helm-charts
chart: chibisafe
targetRevision: "0.1.1"
helm:
releaseName: chibisafe
valueFiles:
- $values/infra/values/base/chibisafe-values.yaml
- $values/infra/values/upc-dev/chibisafe-values.yaml
- repoURL: ssh://git@git.forteapps.net:2222/Forte/launchpad.git
targetRevision: feature/chibisafe
ref: values
destination:
server: https://kubernetes.default.svc
namespace: chibisafe
syncPolicy:
automated:
prune: true
selfHeal: true
allowEmpty: false
syncOptions:
- CreateNamespace=true
- Validate=true
- ServerSideApply=true

View File

@@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- chibisafe.yaml

View File

@@ -2,6 +2,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base
- chibisafe
- vaultwarden-postgresql
- vaultwarden

View File

@@ -0,0 +1,45 @@
replicaCount: 1
frontend:
image:
repository: chibisafe/chibisafe
tag: "latest"
pullPolicy: IfNotPresent
backend:
image:
repository: chibisafe/chibisafe-server
tag: "latest"
pullPolicy: IfNotPresent
caddy:
image:
repository: caddy
tag: "2-alpine"
pullPolicy: IfNotPresent
persistence:
database:
enabled: true
size: 1Gi
accessModes:
- ReadWriteOnce
uploads:
enabled: true
size: 10Gi
accessModes:
- ReadWriteOnce
logs:
enabled: false
service:
type: ClusterIP
port: 80
networkPolicy:
enabled: false
podDisruptionBudget:
enabled: false

View File

@@ -0,0 +1,20 @@
ingress:
enabled: true
className: "traefik"
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
gethomepage.dev/enabled: "true"
gethomepage.dev/name: "Chibisafe"
gethomepage.dev/description: "File upload & sharing"
gethomepage.dev/group: "Storage"
gethomepage.dev/icon: "chibisafe"
gethomepage.dev/href: "https://chibisafe.forteapps.net"
hosts:
- host: chibisafe.forteapps.net
paths:
- path: /
pathType: Prefix
tls:
- secretName: chibisafe-tls
hosts:
- chibisafe.forteapps.net