Files
k3s-cluster/fava/README.md
Roger Oriol 7124b6aa95 fava service
2026-01-31 11:39:30 +01:00

93 lines
2.4 KiB
Markdown

# Fava - Beancount Web UI
Aquest servei desplega Fava, una interfície web per visualitzar i editar llibres de comptes de Beancount.
## Configuració
### 1. Crea el Secret amb les credencials de Gitea
Primer, crea un token d'accés personal a Gitea (Settings > Applications > Generate New Token).
Després crea el Secret amb kubectl:
```bash
kubectl create secret generic gitea-credentials \
--from-literal=username='el_teu_usuari_gitea' \
--from-literal=password='el_teu_token_gitea' \
--namespace=fava
```
**Nota:** Assegura't de crear el namespace primer si no existeix:
```bash
kubectl create namespace fava
```
### 2. Ajusta el fitxer Beancount
Si el teu fitxer principal no es diu `main.beancount`, actualitza els arguments del contenidor:
```yaml
args:
- "/data/contabilitat/el_teu_fitxer.beancount"
```
### 3. Desplega el servei
```bash
kubectl apply -f fava.yaml
kubectl apply -f ingress.yaml
```
**Important:** Desplega primer el namespace (que està inclòs a fava.yaml), després crea el Secret, i finalment aplica la resta dels recursos.
Ordre recomanat:
```bash
# 1. Crear namespace i recursos base
kubectl apply -f fava.yaml
# 2. Crear el secret (veure pas 1)
kubectl create secret generic gitea-credentials \
--from-literal=username='el_teu_usuari' \
--from-literal=password='el_teu_token' \
--namespace=fava
# 3. Si cal, reinicia el deployment perquè agafi el secret
kubectl rollout restart deployment/fava -n fava
# 4. Aplica l'ingress
kubectl apply -f ingress.yaml
```
### 4. Verifica l'estat
```bash
kubectl get pods -n fava
kubectl logs -n fava deployment/fava
```
## Accés
Un cop desplegat, podràs accedir a Fava a: https://fava.rogi.casa
## Actualització del repositori
El repositori s'actualitza automàticament cada hora mitjançant un sidecar container. També pots forçar una actualització reiniciant el pod:
```bash
kubectl rollout restart deployment/fava -n fava
```
Per veure els logs de sincronització:
```bash
kubectl logs -n fava deployment/fava -c git-sync-hourly --follow
```
## Notes
- El init container clona el repositori de Gitea al volum persistent
- Un sidecar container fa `git pull` cada hora per mantenir el contingut actualitzat
- Fava s'executa llegint el fitxer directament del repositori clonat
- Les credencials es guarden com a Secret de Kubernetes
- Usa un token d'accés personal de Gitea en lloc de la teva contrasenya