TraceApps

joined 3 weeks ago
 

Features

  • Bulk Food Import via paste JSON or upload CSV (Settings → Import & Export)
  • Live nutrition preview on the Add to Diary sheet (macros update with portion / unit / servings)
  • Mass-aware unit conversion when scaling nutrition (g ↔ oz ↔ lb, ml ↔ cup, tsp ↔ tbsp)
  • Custom Units in Settings ("shot", "scoop", "stick", etc.)
  • Connection status banners across every integration with one-tap Test / Sync / Disconnect
  • Settings auto-save by default; no Save button to remember
  • Day rollover at midnight when the app stays open overnight
  • Barcode scanner now fully on-device on Android, no Google Play Services required (works on GrapheneOS / CalyxOS / e/OS)
  • Svelte 5 + Vite 6 + Express 5 + bcryptjs 3 framework upgrade (main bundle ~22% smaller)

Fixes

  • Disabling user management no longer triggers the setup wizard on every reload (#34)
  • MyFitnessPal Reports → Export CSV imports cleanly now (aggregate-per-meal shape)
  • "Most Used" / "Recently Used" food sort on Android now reflects real usage
  • Food saves on Android no longer duplicate the previous food (#32)
  • Wellness scores refresh if today's sleep finishes syncing after the morning snapshot
  • Import Nutrition History action row no longer overlaps the duplicate-date radios (#33)
  • AI Assistant Gemini models updated to 2.5 Flash + Lite (Google retired 2.0 Flash and 1.5 Flash)
  • nodemailer updated to 8.0.7 (patches an SMTP command-injection advisory)
  • Several smaller things, see the full changelog

Signed APK + docker image on the release page: https://github.com/TraceApps/nutritrace/releases/tag/v1.0.0-rc.30

Self-hosted, AGPL-3.0, no telemetry, no account needed. Docker compose up and go.

[–] TraceApps@lemmy.world 1 points 21 hours ago (2 children)

Nice work, exactly the kind of bridge that makes leaving MFP a lot less painful for self-hosters. Would you be OK with me linking the gist from the NutriTrace README (under Foods & Meals) and from inside the Bulk Food Import modal? Happy to credit it as your script with a link back to the gist.

Either way, thanks for putting it together.

[–] TraceApps@lemmy.world 1 points 22 hours ago

thank you, appreciate it!

[–] TraceApps@lemmy.world 1 points 22 hours ago

Let me know your issues and post server/browser console/app logs, and ill do my best to assist. You can also create an issue if you feel that this is a bug in the repo. Outside of this i do want to mention, im working on a suite of "Trace" apps. One of which is a Recipe app. I love Mealie, but wanted a bit more for myself, and have created something that i think will be special. It also allows for direct api integration to and from NutriTrace. Will hopefully have a beta that will be publicly available in the next month or so if interested.

[–] TraceApps@lemmy.world 1 points 1 day ago (2 children)

latest update has been released!

[–] TraceApps@lemmy.world 2 points 1 day ago (4 children)

Thank you and great question. There's already an open issue for this in the repo (#31) and the fix is in dev. Next RC will have it. The Android scanner will use the bundled ML Kit model directly, with no Google Play Services calls at runtime. Same scanning engine.

[–] TraceApps@lemmy.world 1 points 4 days ago

Thank you so much! I appreciate it!

[–] TraceApps@lemmy.world 3 points 4 days ago (5 children)

Yes! Settings → Backup → Nutrition Import. Built-in adapters for MyFitnessPal, Cronometer, LoseIt, and a generic CSV shape. Export your diary from MFP (it's a CSV in their account settings), upload it, preview, commit. Skip / Merge / Replace per-date semantics, so you can re-import safely without overwriting.

[–] TraceApps@lemmy.world 2 points 4 days ago (1 children)

Yes, TLS is left to a reverse proxy (nginx, Caddy, Traefik, Cloudflare Tunnel). The container serves plain HTTP on a port you map; whatever you put in front handles the cert.

No wger integration today. NutriTrace covers food + wellness + workout sync (from Fitbit/Garmin/Withings/Google Health/Health Connect), but doesn't connect to wger or other dedicated exercise-routine apps. My soon to be released app in the Trace family of apps will be dedicated to lifting, and will include wger integration to name one of its exercise databases (as well as support for custom imports).

[–] TraceApps@lemmy.world 4 points 4 days ago (1 children)

It is an android app with Health Connect Support! Android app works with or without the server! :)

[–] TraceApps@lemmy.world 4 points 4 days ago (3 children)

For docker, It is only one service. everything else can be setup in app once you are in if you so choose. Android App can be used with or without server.

[–] TraceApps@lemmy.world 9 points 4 days ago (1 children)

Open Food Facts (OFF) for barcodes. Free, open license, community-edited. Their API: https://world.openfoodfacts.org/api/v2/product/.json

 

Self-hosted nutrition + wellness tracker. Latest release rolls up two weeks of work.

New features (rc.21 → rc.26):

  • Recipe yields — declare "this makes N servings" and per-serving math flows through the diary
  • Intermittent fasting tracker — custom presets, history, recurring schedule that auto-starts at a chosen time on chosen days
  • Adaptive TDEE — learns your true daily expenditure from a rolling 35-day window of weight + diary instead of a static estimate
  • Android biometric sign-in — fingerprint / face unlock in server-connected mode
  • Per-serving Open Food Facts import — when a barcode-scanned product has serving data, prefill nutrition per-serving instead of per-100g
  • Health Connect → web — Android-synced Health Connect data now reaches the server and renders on the web Wellness page
  • Sharing rework — per-category sharing form, source filter on Meals/Recipes, zxcvbn-backed password-strength policy

Bug fixes: cross-pollinated food images on diary entries, duplicate foods on rapid barcode scans, scheduler crash, Mealie Test button.

Repo: https://github.com/TraceApps/nutritrace Release: https://github.com/TraceApps/nutritrace/releases/tag/v1.0.0-rc.26

Single docker compose, SQLite, signed APK on the release page.

[–] TraceApps@lemmy.world 2 points 1 week ago

Not directly. NutriTrace doesn't record steps or GPS itself; it reads them from whatever's already tracking you (Health Connect on Android, or Fitbit/Garmin/Withings via their cloud APIs). So if Google Fit, Samsung Health, or your watch is counting your steps and logging workouts, NutriTrace will pull those numbers in and chart them alongside your nutrition.

 

NutriTrace is a self-hosted nutrition tracker (Docker on the server, PWA in the browser, native Android app). AGPL-3.0, no telemetry, no accounts on external services, your data stays on your hardware.

This release is the biggest one since the Android app shipped: the Wellness layer moves off the legacy Fitbit Web API (which Google is sunsetting in September 2026) onto the new Google Health API, the numeric Stress Score becomes Resilience (Optimal / Balanced / Low), Fitbit's new Sleep Quality sub-metrics show up under Sleep, and the Diary gets a Cronometer-style Split Recipe action.

What's new

Google Health migration — Wellness data now flows through Google Health instead of the deprecated Fitbit Web API. Existing Fitbit data still comes from the same device; only the connection method changes. Fitbit users will see a "Re-link required" notice in Settings → Wellness with the migration steps. Old tokens keep working through a transition window.

Resilience replaces the numeric Stress Score — Fitbit retired the 0-to-100 score and renamed it Resilience with three buckets (Optimal / Balanced / Low). The Wellness page reflects the change with a category badge, a one-line interpretation, and a breakdown of the three pillars Fitbit uses (Physical Calmness, Activity Balance, Sleep Patterns). Historical Stress values stay in the database for reference.

Sleep Quality sub-metrics — Time to Sound Sleep, Sound Sleep, Restlessness, and Interruptions appear under the Sleep tab when data is available. Restlessness under-counts vs Fitbit because Google Health doesn't expose the raw motion data Fitbit's app uses internally; the others track within a few minutes on most nights.

Split Recipe on the Diary — Long-press a saved recipe in your diary and tap Split Recipe to break it into its component ingredients in place. The recipe stays as the parent (so totals are preserved); a chevron expands to reveal each ingredient scaled by however much of the recipe was logged. Each child is editable (adjust portion, remove one) without touching the saved recipe in your library.

Info button on saved meals and recipes in the Foods picker — tap the i on any meal or recipe row to see the full ingredient list with portions and per-item energy before logging it. Mirrors the existing yesterday-meals expand pattern

Issues, feature requests, and integration test reports are all welcome on GitHub.

 

Quick update for anyone following the project. NutriTrace is a self-hosted nutrition tracker I've been building. Single Docker container, your data stays on your hardware, no external accounts.

This release ships the first native Android app alongside the existing PWA. Signed APK is attached to the GitHub release.

What you get on Android:

  • Standalone, or connect it to a NutriTrace server for sync
  • Health Connect for steps, sleep, heart rate, body weight
  • Native barcode scanning
  • Native notifications for water reminders, meal prompts, weigh-ins, and goal celebrations
  • OIDC SSO via deep link if you run Authentik, Keycloak, Pocket ID, etc.

Release: https://github.com/TraceApps/nutritrace/releases/tag/v1.0.0-rc.14 Repo: https://github.com/TraceApps/nutritrace

Still on the v1.0 release-candidate cadence so there will be be bugs. Please feel free to post issues here or on Github.

Thanks to everyone who's tried it, provided suggestions and filed bugs along the way. If you find it useful, a star on the repo or a mention to someone looking for a self-hosted nutrition/fitness alternative helps a lot.

 

EDIT 2026-05-03: v1.0.0-rc.14 is out and adds a native Android app.

Full announcement: https://lemmy.world/post/46382994

(original post below)


Hey all, sharing what I've been working on. NutriTrace is a self-hosted nutrition and wellness tracker that runs entirely on your own server in a single Docker container.

I built it because every commercial nutrition app has the same shape. You hand them years of food data, body measurements, and biometrics, and your data is held hostage when they pivot or paywall. I wanted to track macros and pull in my Fitbit data without participating in that.

Daily food diary with multi-ingredient meals, recipes, body stats, water tracking, day-level notes. Personal food database, barcode scanner, imports from Open Food Facts and USDA, plus optional Mealie integration. Statistics with trend charts, full backup, exports as CSV / JSON / full ZIP.

Optional wellness device sync from Fitbit, Withings, Garmin, and Android Health Connect. Sleep / readiness / stress scores computed from your data.

Optional AI assistant where you bring your own Claude / OpenAI / Gemini key. It queries your real data via tool use so it can answer things like "what was my average protein this month" without making numbers up. There's a voice food logger too. Both fully optional, off by default.

Tech: Svelte 4 + Express + better-sqlite3, multi-stage Dockerfile, AGPL-3.0. Native Android app is in active development; PWA installs to home screen on any modern browser today.

Repo and docker-compose example: https://github.com/TraceApps/nutritrace

Happy to answer questions.

view more: next ›