Files
finrod/README.md
João Pedro Battistella Nadas 94969a0f46 drop Gitea Actions workflow (no runners on the homelab yet)
Falls back to ./build.sh from the workstation. Re-add the workflow
when Gitea runners are wired up.
2026-06-09 15:26:30 +02:00

61 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# finrod
Tiny web translator backed by Ollama on radagast. Named for Finrod Felagund, Noldor loremaster of the tongues of Men.
## Run
```sh
uv run uvicorn app:app --host 127.0.0.1 --port 8000 --reload
```
Then open http://127.0.0.1:8000.
## Config
| Env var | Default | Notes |
|---|---|---|
| `OLLAMA_URL` | `http://radagast.jpnadas.xyz:11434` | Ollama base URL |
| `MODEL_FILTER` | `gemma,aya` | Comma-separated substrings; model matches if it contains any. Empty = show all |
## Models
For Pt/Nl/En translation, three worth A/B-ing:
```sh
ssh radagast 'ollama pull gemma2:9b' # already there — big-and-broad baseline
ssh radagast 'ollama pull gemma3:4b' # newer multilingual training, ~2-3× faster on Ivy Bridge
ssh radagast 'ollama pull aya-expanse:8b' # Cohere multilingual model, strong on Dutch
```
All three fit in radagast's 10 GB at Q4. Switching models in the dropdown forces Ollama to load the new weights — expect a 5-15 s pause on the first call after a switch while it reads from disk.
## Build / push image
Built locally and pushed to Scaleway — no Gitea runners on the homelab yet, so there's no CI workflow.
One-time setup (host needs buildx + QEMU for cross-arch):
```sh
docker buildx create --name multi --use
docker run --privileged --rm tonistiigi/binfmt --install all
docker login rg.nl-ams.scw.cloud -u nologin -p <SCW_SECRET_KEY>
```
Then on every change:
```sh
./build.sh
```
That builds `linux/amd64,linux/arm64` and pushes `rg.nl-ams.scw.cloud/valinor/finrod:{latest, <git-short-sha>}`. Take note of the short SHA it prints — that's what you pin in valinor.
## Deploy
Cluster manifests live in `valinor/apps/finrod/` (bjw-s app-template, internal-only ingress at `finrod.jpnadas.xyz`). To roll out a new build:
1. `./build.sh` here — get the SHA
2. Bump `tag:` in `valinor/apps/finrod/values.yaml` to that SHA on a branch
3. Merge → ArgoCD syncs the new image
Using `:latest` works for the first deploy (the pull policy is `Always`) but pinning to a SHA on each rollout gives you trivial rollback via git revert.