Your server, your database, your data
NutriCore runs on hardware you own, against a PostgreSQL you own. There is no account with anyone, no telemetry, no analytics, and in the default configuration not one request leaves the container — the food databases it searches are already inside it.
The security work is the ordinary, boring kind: passwords hashed with Argon2id at OWASP parameters, session tokens random 256-bit values of which only a SHA-256 hash is stored, and registration by invitation after the first account. Scan images are discarded once the estimate exists. And the door out is a route, not a support request: the whole diary as JSON, or day and weight histories as CSV, whenever you want them.
# Everything you entered, in formats other tools read. GET /api/export/json GET /api/export/diary.csv GET /api/export/weight.csv