Draft: not yet reviewed by a clinician
Use this page to prepare questions for your care team. It does not replace their advice. Your own targets and doses come from your nephrologist, diabetes team and renal dietitian.
Network allowlist¶
The running app makes no outbound request until you switch a feature on. Every outbound call is HTTPS, made by the server (never by the phone), through a transport that checks addresses before connecting; API keys travel in headers, never in URLs (network allowlist; design note 01).
The phone talks only to your server: the app loads nothing from a CDN, and the handbook at /learn is
built offline and loads nothing from the internet either, no fonts, no scripts, no images
(design note 08).
What the running app may reach¶
| Host | Port | Needed when | Default |
|---|---|---|---|
api.nal.usda.gov |
443 | a USDA key is set (shared or a person's own) (USDA) | off |
world.openfoodfacts.org |
443 | barcode lookups are on (Open Food Facts) | off |
api.openai.com |
443 | AI with the openai preset |
off |
openrouter.ai |
443 | AI with the openrouter preset |
off |
inference-api.nousresearch.com |
443 | AI with the nous_portal preset |
off |
your AI host, e.g. ollama:11434 or litellm.lan:4000 |
its port | a local Ollama, Hermes, a LiteLLM proxy or other compatible server (AI_PROVIDER or AI_CLOUD_PROVIDER), listed in AI_PRIVATE_HOSTS |
off |
your speech-to-text host (STT_BASE_URL), e.g. stt:8000 |
its port | the Ask microphone is on and a person agreed; one recording goes there to become text. Same address rules as an AI host; a local container needs no internet at all | off |
api.pwnedpasswords.com |
443 | PASSWORD_BREACH_CHECK=true |
off |
Not needed: images.openfoodfacts.org (the app shows no product images), telemetry, update checks or
analytics (there are none). DNS is needed for any host above (design note 03;
design note 04).
Private addresses and AI¶
Shared AI providers may reach private, loopback or link-local addresses only when listed in the
env-only AI_PRIVATE_HOSTS (for example ollama:11434,192.168.1.10:8643). Each resolved address is
checked and pinned, and redirects are not followed. People's own AI addresses (if you allow them) must be
public HTTPS on port 443. The AI client ignores HTTP(S)_PROXY; set AI_HTTP_PROXY if AI must go through
a proxy (design note 04).
How to enforce it¶
- Kubernetes:
deploy/k8s/networkpolicy.yamlallows DNS and HTTPS to public addresses only (private, CGNAT, link-local and loopback excluded, so cloud metadata and the API server are blocked). With Cilium,cilium-networkpolicy.example.yamlnarrows it to the exact host names above. A NetworkPolicy only works if your network plugin enforces it; on Talos, switch it on in Flannel first (Kubernetes: Network Policies; Kubernetes). - Rootless Podman or Docker: there is no simple per-container egress allowlist. Use a host firewall or
your router if you need one. The optional Ollama overlay puts Ollama on an
internalnetwork with no route out at all (operator security guide).
The host that pulls or builds the image¶
| For | Hosts |
|---|---|
| Pulling the image | ghcr.io, pkg-containers.githubusercontent.com |
| Verifying it | ghcr.io, api.github.com, and Sigstore's tuf-repo-cdn.sigstore.dev, rekor.sigstore.dev, fulcio.sigstore.dev |
| Building it yourself | cgr.dev (and its blob storage), pypi.org, files.pythonhosted.org; Docker Hub hosts only for the Debian fallback or the Caddy image |
| Caddy certificates | acme-v02.api.letsencrypt.org and your DNS provider's API (for Cloudflare api.cloudflare.com) |
The handbook is built inside the image build from hash-locked packages on pypi.org; serving it needs
nothing (Building the handbook). The repository's
network allowlist also lists CI and development hosts.
If something goes wrong¶
USDA request failed: the server cannot reachapi.nal.usda.gov:443. Check egress rules.USDA API key was rejectedmeans a wrong key.- Barcode lookups time out: allow
world.openfoodfacts.org:443. - A local AI server is refused: add its
host:porttoAI_PRIVATE_HOSTS, and on Kubernetes add an egress rule for its address. - More: Troubleshooting.
Related pages¶
- Configuration · Security · Kubernetes
- For your users: Privacy and your data
Sources¶
- Network allowlist (repository); operator security guide.
- Design note 01; design note 03 R10; design note 04 R4–R5 and security review; design note 08.
- Kubernetes: Network Policies; Open Food Facts API; USDA FoodData Central API guide.
Not yet reviewed by a clinician. Facts and sources last checked 2026-10-06.