No description
  • Shell 48.7%
  • Python 36.4%
  • Jinja 14.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kevin Heyer 2bdde98228
All checks were successful
/ lint (push) Successful in 7m0s
/ image (push) Successful in 30m19s
/ publish (push) Successful in 31s
Add Mealie app with adopt for community-script installations
Mealie is built natively from the upstream Git tag: Mealie publishes no
release archives or checksums, so the tag must resolve to the commit the
GitHub API reports. Python 3.14 and the packages come from uv (uv.lock),
the frontend is built with Node.js from nodejs.org (SHASUMS256) and pnpm
(pnpm-lock.yaml), capped at 1.5 GiB heap so it builds in a 2 GiB guest.
SQLite and all data live in /var/lib/mealie, the service runs sandboxed
as user mealie on port 9000. The untouched default user gets the
generated password from settings.env.

adopt.sh takes over installations of the Proxmox VE community script
(/opt/mealie, PostgreSQL, /app/data): a Mealie backup is made with the
running old release, the data moves to /var/lib/mealie and the backup is
restored into SQLite by the new release.

Tested: tools/check-app.sh green (lint, template files, two fresh
dev-container runs, second run changed=1); login with the access hint
right after install; update 3.28.0 -> 3.29.0 keeps data and removes the
old release; adopt of a rebuilt community layout (3.26.0, PostgreSQL,
renamed admin, second user, recipes) keeps logins and recipes, smoke
test green, follow-up update idempotent. Not tested: VM image and boot
test (CI), adopt on the real LXC.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 11:53:04 +02:00
.forgejo/workflows Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
.vibe Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
docs Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
files Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
handlers Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
tasks Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
templates Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
tests Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
.clinerules Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
.cursorrules Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
.windsurfrules Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
AGENTS.md Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
CHANGELOG.md Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
CLAUDE.md Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
GEMINI.md Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
iac.json Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00
README.md Add Mealie app with adopt for community-script installations 2026-10-21 11:53:04 +02:00

iac-mealie

Mealie verwaltet Rezepte, importiert sie per URL von Webseiten, plant Mahlzeiten und erstellt Einkaufslisten – für mehrere Haushalte und Benutzer. Nativ auf Debian 13 als LXC oder VM auf Proxmox VE. Teil von iac.

Installation (auf der Proxmox-Node)

bash -c "$(curl -fsSL https://iac.heyer.systems/mealie/ct.sh)"   # LXC
bash -c "$(curl -fsSL https://iac.heyer.systems/mealie/vm.sh)"   # VM

Ohne Dialog: IAC_NONINTERACTIVE=1 und var_*-Variablen – am einfachsten mit dem Generator auf https://iac.heyer.systems/apps/mealie/.

Anmeldung und Zugriff

  • Weboberfläche und API: http://<ip>:9000/ – Port 9000 ist aus allen Netzen erreichbar (Mealie hat ein eigenes Login). Für HTTPS einen Reverse Proxy davorsetzen.
  • Login: admin (oder admin@example.com), Passwort im Gast: grep mealie_admin_password /etc/iac/settings.env. iac setzt es nur beim noch unberührten Standardbenutzer von Mealie (changeme@example.com / MyPassword); ein später geändertes Passwort bleibt. E-Mail-Adresse und Passwort im Profil ändern.
  • Selbstregistrierung ist aus (ALLOW_SIGNUP=false); weitere Benutzer legt der Admin an oder lädt sie ein.

Einstellungen

  • mealie_base_url (in /etc/iac/settings.env, danach update): öffentliche URL, z. B. https://rezepte.example.org – für Links in Mails, geteilte Rezepte und Einladungen. Ohne Angabe gilt http://<ip>:9000.
  • /etc/mealie/mealie.env gehört iac und wird bei jedem update neu geschrieben. Eigene Einstellungen (SMTP, OIDC, LDAP, OpenAI, Theme …, siehe Backend-Konfiguration) gehören nach /etc/mealie/mealie.local.env – gleiches Format NAME=wert, wird danach gelesen und gewinnt. Danach systemctl restart mealie.
  • Mails: Mit dem Modul mail-relay in mealie.local.env SMTP_HOST=127.0.0.1, SMTP_PORT=25, SMTP_AUTH_STRATEGY=NONE und SMTP_FROM_EMAIL=… setzen.

Wo was liegt

Pfad Inhalt
/var/lib/mealie SQLite-Datenbank mealie.db, Bilder, Benutzerdaten, Backups von Mealie (backups/), Log
/etc/mealie/mealie.env Konfiguration von iac
/etc/mealie/mealie.local.env eigene Einstellungen (optional)
/opt/mealie/current aktives Release: Quellcode, .venv, Python von uv, gebautes Frontend, NLTK-Daten
/usr/local/sbin/mealie-manage Python von Mealie mit dessen Konfiguration als Benutzer mealie, z. B. mealie-manage -m mealie.db.init_db

Der Dienst mealie läuft als eigener Benutzer mealie mit systemd-Härtung und darf nur /var/lib/mealie beschreiben.

Herkunft und Update

Mealie veröffentlicht keine Release-Archive, Checksummen oder Signaturen. iac klont deshalb das Git-Tag v<version> und prüft, dass es auf den Commit zeigt, den die GitHub-API für das Tag meldet. Die Abhängigkeiten kommen mit Hashes aus den Lockfiles des Releases (uv.lock, pnpm-lock.yaml), Node.js (Major-Version wie im offiziellen Dockerfile) mit Checksumme von nodejs.org, uv mit Checksumme aus seinem GitHub-Release, Python 3.14 über uv (Debian 13 hat 3.13). Wie im offiziellen Image ist ffmpeg dabei (Video-Import über OpenAI).

update

update baut die neueste Version derselben Major-Version ("major_lock": true) unter /var/tmp (rund 3 GiB, danach wieder frei) – das dauert einige Minuten –, schaltet /opt/mealie/current um, migriert die Datenbank und löscht das vorige Release. Eine neue Major-Version wird nur angezeigt. Vorher in Mealie unter Admin → Backups ein Backup anlegen schadet nicht.

Bestehende Installation übernehmen

Installationen des Proxmox-VE-Community-Scripts (ct/mealie.sh: /opt/mealie, PostgreSQL, /app/data) übernimmt adopt.sh im bestehenden Gast – Daten wandern dabei über ein Backup von Mealie nach SQLite. Ablauf und andere Wege: docs/MIGRATION.md.

bash -c "$(curl -fsSL https://iac.heyer.systems/mealie/adopt.sh)"

Selbsttest (im Gast)

bash /var/lib/iac/src/core/bin/iac-smoke