# 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 CI: `.gitea/workflows/build.yml` builds multi-arch (amd64+arm64) on push to `main` and pushes to `rg.nl-ams.scw.cloud/valinor/finrod:{latest, }`. Requires a `SCW_SECRET_KEY` secret on the Gitea repo with a Scaleway IAM key that has `ObjectStorage:RegistryPush` on the `valinor` registry. Manual fallback if Gitea Actions isn't wired up: ```sh docker login rg.nl-ams.scw.cloud -u nologin -p ./build.sh ``` ## Deploy Cluster manifests live in `valinor/apps/finrod/` (bjw-s app-template, internal-only ingress at `finrod.jpnadas.xyz`). Merging a PR there triggers ArgoCD to sync; bumping the image tag in `values.yaml` is how you roll out a new build.