Self-hosting guides
Recipes for running open-source nutrition apps on hardware you control. Most assume Docker. Some go deeper.
Proxmox VM vs LXC vs bare metal for the nutrition stack
Benchmarks of OFF mirror queries, Postgres restores, and Caddy throughput across Proxmox VMs, Proxmox LXCs, and bare-metal Debian. LXCs win the price-performance game by a comfortable margin.
Dockerized nginx with Let's Encrypt for self-hosted nutrition apps
An nginx + certbot Docker stack with auto-renew, OCSP stapling, modern TLS settings, and a sane upstream config for OpenNutriTracker companion services and OFF mirrors.
Tailscale (and WireGuard) for accessing your self-hosted tracker on mobile
Tailscale gets you point-to-point WireGuard between your phone and your homelab in five minutes. We compare it to plain WireGuard, set up MagicDNS, and make Caddy issue real LAN certs.
Backups and restore for self-hosted nutrition data
Why your calorie diary deserves a real backup, what to back up, where to put it, and how to test that the restore works. Borgmatic + restic + a one-page Ansible playbook.
Personal VPS vs homelab for a nutrition stack
If you don't want a Pi at home, a $4/mo Hetzner CX22 will run the whole nutrition stack with room to spare. We work through the trade-offs against a Pi 5 and a used SFF Lenovo.
A Raspberry Pi 5 nutrition stack with k3s
A complete stack for a Pi 5 running k3s: an OFF mirror, a Postgres-backed USDA cache, and a Caddy ingress. Boot-to-services takes about four minutes. Boot-from-cold-after-a-power-cut takes about six.
Caddy reverse proxy in front of Foodvore for LAN-only access
Foodvore runs an embedded HTTP server when launched in companion mode. We put a Caddy reverse proxy in front of it for HTTPS, basic auth, and a stable LAN URL.
Self-hosting OpenNutriTracker companion services with Docker
How to run a local Open Food Facts mirror and a backup-target service for OpenNutriTracker on a small Docker host. Compose file, reverse proxy notes, restore drill.