A Mealie saját üzemeltetése 2026-ban: receptimportok, felhasználók és biztonsági mentések
Gyakorlati útmutató a Mealie saját üzemeltetéséhez Dockerrel, portokkal, perzisztens adatokkal, TLS-sel, biztonsággal, biztonsági mentésekkel és a production használatot akadályozó hibák elhárításával. Lépésről lépésre.
A legrövidebb Mealie-demó azt bizonyítja, hogy egy folyamat figyel a 9000-es porton. A production környezethez ennél erősebb bizonyíték kell. A rendszernek akkor is teljesítenie kell ezt a forgatókönyvet, ha a konténert lecseréltük: importálni kell egy recept URL-jét, ellenőrizni a hozzá tartozó képet, hozzáadni az étkezési tervhez, majd több receptből bevásárlólistát készíteni.
A Mealie-t egyértelmű célból telepítjük: receptekhez, étkezési tervekhez és bevásárlólistákhoz. A leggyakoribb telepítési csapda, hogy a receptképek eltűnnek, mert a /app/data nem perzisztens. Ezért a nyilvános URL-ek kezelése és a tartós állapot megőrzése ugyanolyan figyelmet igényel, mint a képfájlok elindítása.
A Mealie futtatási határainak megrajzolása
A legkisebb felelősen kialakított Mealie-topológia egyetlen privát, a 9000-es porton figyelő végpontból, egy ingress útvonalból és egy dokumentált állapothatárból áll. A Mealie hálózati szerződése egy többfelhasználós production telepítéshez Postgres, a meghívókhoz pedig SMTP. A privát végpontokat tartsd belső DNS-en, csak a szükséges kimenő kapcsolatokat engedélyezd, és adj a Mealie számára korlátozott hatókörű service credentialt.
A topológiát úgy validáld, hogy egy tiszta klienssel importálsz egy recept URL-jét, ellenőrzöd a képét, hozzáadod egy étkezési tervhez, majd több receptből bevásárlólistát készítesz. Közben figyeld a receptimportokat, a képtárolást, az adatbázis-lekérdezéseket, a háttérfeladatokat és az egyszerre használt háztartási felhasználókat. Az eredmény megmutatja, hogy a következő fejlesztésnek a memóriát, a tárhelyet, a hálózatot vagy egy külön workert kell-e érintenie, ahelyett hogy vaktában növelnéd a konténer méretét.
Kapacitás- és frissítési ellenőrzések
Egy üresjárati health check keveset árul el a Mealie-ről. Figyeld a receptimportokat, a képtárolást, az adatbázis-lekérdezéseket, a háttérfeladatokat és az egyszerre használt háztartási felhasználókat, majd arra a tünetre állíts be riasztást, amelyet a felhasználók tapasztalnak: ennek a műveletnek a sikertelenségére: „importálni egy recept URL-jét, ellenőrizni a hozzá tartozó képet, hozzáadni az étkezési tervhez, majd több receptből bevásárlólistát készíteni”. A liveness-ellenőrzést tartsd helyi és olcsó műveletnek; a readiness jelezze a migrációkat vagy az inicializálást, de ne okozzon restart stormot.
A kockázatos frissítési terület az, hogy az adatbázis-migrációk és az ingredient parser módosításai hatással lehetnek a tárolt receptekre, ezért teszteld az importokat és a meglévő rekordokat. Olvasd el a release note-okat, készíts snapshotot az állapotról, telepítsd a célverziót egy visszaállított másolatra, majd ismételd meg az elfogadási műveletet. Ha a receptképek eltűnnek, mert a /app/data nem perzisztens, a klienskérést az első releváns alkalmazásloggal egyeztesd, ahelyett hogy vaktában törölnéd az állapotot vagy redirecteket adnál hozzá.
A Mealie release gate-je
Egy Mealie release candidate akkor kaphat forgalmat, ha teljesít egy rögzített forgatókönyvet: importálni egy recept URL-jét, ellenőrizni a hozzá tartozó képet, hozzáadni az étkezési tervhez, majd több receptből bevásárlólistát készíteni. Rögzítsd a képfájlt azonosító digestjét, a tényleges, titkokat nem tartalmazó konfigurációt, a nyilvános origint és a forgatókönyv időbélyegeit. A tesztadatok legyenek törölhetők, de legyenek annyira életszerűek, hogy ugyanazt az útvonalat teszteljék, mint amelyet a felhasználók használnak.
Futtasd le a tesztet a runtime lecserélése után, majd építsd újra a szolgáltatást az adatbázisból, a receptképekből, az assetekből és az alkalmazásbeállításokból. A helyreállítás akkor sikeres, ha a receptek, képek, felhasználók, étkezési tervek és bevásárlólisták visszatérnek, és egy ismert recept megfelelően megjelenik. Hasonlítsd össze a receptimportok, a képtárolás, az adatbázis-lekérdezések, a háttérfeladatok és az egyszerre használt háztartási felhasználók erőforrás-méréseit az előző kiadással, és a promotion előtt vizsgáld ki az érdemi eltéréseket.
Végül hajtsd végre ezt a kontrollált hibát: ideiglenesen vond meg a tesztidentitás hozzáférését a többfelhasználós production telepítéshez szükséges Postgreshez és a meghívásokhoz használt SMTP-hez. Ellenőrizd, hogy a Mealie érthetően jelzi a hibát, nem károsítja a meglévő állapotot, és a helyes feltétel visszaállásakor folytatja a működést. Ments el egy anonimizált logrészletet és a helyreállítási időt. Ezek az ellenőrzések együtt a viselkedést, a tartósságot és az üzemeltethetőséget fedik le, nem csupán a folyamat elérhetőségét.
Készíts cserélhető Mealie-konténert
A kezdeti Mealie-indítást tartsd annyira reprodukálhatónak, hogy egy pull requestben át lehessen nézni.
docker run -d \
--name mealie \
--restart unless-stopped \
-p 127.0.0.1:9000:9000 \
-v mealie-data:/app/data \
-e BASE_URL=https://app.example.com \
ghcr.io/mealie-recipes/mealie:latest
Ne támaszkodj a latest tagre, miután már valódi adatok vannak a rendszerben. Rögzítsd a működő digestet, a konténerfelhasználót és a mount tulajdonjogát. Kövesd végig az alkalmazás logját egy teljes teszten — importálj egy recept URL-jét, ellenőrizd a hozzá tartozó képet, add hozzá az étkezési tervhez, majd készíts több receptből bevásárlólistát —, és jegyezd fel az esetleges migrációkat, mielőtt az útvonalat production forgalom mögé helyezed.
Keresd meg a Mealie minden tartós bájtját
Készíts leltárt minden tartós artefaktról: az adatbázisról, a receptképekről, az assetekről és az alkalmazásbeállításokról. A bootstrap előtt csatold a /app/data útvonalat, írj bele veszélytelen mintaadatokat, majd cseréld le a konténert annak bizonyítására, hogy az útvonal valóban perzisztens. Azokat a konfigurációkat is vedd fel, amelyek módosítják a tárolt adatok értelmezését, ne csak a legnagyobb könyvtárat.
Állíts be megőrzési szabályokat, másold a biztonsági mentéseket a hoston kívülre, és hajts végre clean-room visszaállítást. A Mealie-helyreállítási gyakorlat akkor teljes, ha a receptek, képek, felhasználók, étkezési tervek és bevásárlólisták visszatérnek, és egy ismert recept megfelelően megjelenik. Ha a terv részei a snapshotok, használd a PITR és snapshotok összehasonlításáról szóló útmutatót annak dokumentálására, hogy az egyes mechanizmusok mit képesek helyreállítani.
Irányítsd úgy a Mealie-t, hogy ne állíts valótlant a HTTPS-ről
Állítsd a BASE_URL értékét a külső HTTPS originre. A választott hostname-et irányítsd a konténer 9000-es portjára, továbbítsd az eredeti hostot és a HTTPS scheme-et, és kerüld egy második közvetlen origin közzétételét.
Teszteld a Mealie-t egy tiszta külső kliensről. Válaszd külön az ingress hibáját az ismert alkalmazási határtól — a receptképek eltűnnek, mert a /app/data nem perzisztens. A tanúsítvány-, DNS- vagy 502-es hiba az útválasztáshoz tartozik; az a kérés, amely eléri a Mealie-t, majd később hibázik, az alkalmazásállapothoz, a kapacitáshoz vagy valamely támogató követelményhez kapcsolódik. A custom domain TLS-útmutató az első csoporttal foglalkozik.
Csökkentsd a Mealie által birtokolt jogosultságokat
Az első bejelentkezés után tekintsd át, hogy egy anonim látogató, egy átlagos felhasználó és egy adminisztrátor mit tehet. Az elkerülendő Mealie-hiba az, ha nyitva marad a regisztráció, vagy változatlanul marad az első admin jelszava. A kívánt szabályzat az első admin jelszavának lecserélése, a regisztráció lezárása a felhasználók felvétele után, valamint a privát háztartási adatok védelme.
A BASE_URL konfiguráció, nem pedig titok; az értékét tartsd explicit módon megadva, miközben véded a Mealie által használt különálló credentialeket. A dependency-fiókokat válaszd külön a személyes fiókoktól, ahol lehet, tiltsd a nem használt kimenő forgalmat, és korlátozd a receptimportok, a képtárolás, az adatbázis-lekérdezések, a háttérfeladatok és az egyszerre használt háztartási felhasználók által befolyásolt munkaterhelést.
A Dockup által végzett telepítéshez továbbra is kell Mealie-elfogadási teszt
Az útválasztás, a tanúsítványok, a szolgáltatás lecserélése és a csatolt tárhely ésszerű automatizálási célok. A Dockup ezeket kezeli a Mealie számára, és ki tudja építeni a kapcsolódó managed adatbázist, illetve csatlakozni tud az ügyfél saját szerverén futó szolgáltatásokhoz.
Amit nem szabad kitalálnia, az a Mealie trust policy-ja. A telepítés után állítsd a BASE_URL értékét a külső HTTPS originre, érvényesítsd ezt a határt — cseréld le az első admin jelszavát, zárd le a regisztrációt a felhasználók felvétele után, és védd a privát háztartási adatokat —, majd ellenőrizd ennek a forgatókönyvnek az eredményét: importálj egy recept URL-jét, ellenőrizd a hozzá tartozó képet, add hozzá az étkezési tervhez, majd készíts több receptből bevásárlólistát. Az eredmény egy kattintással telepíthető infrastruktúra alkalmazásspecifikus elfogadási teszttel.
Gyakran feltett kérdések
Mire van szüksége a Mealie-nek production telepítéshez?
Irányítsd a Mealie konténerét a 9000-es porton egyetlen HTTPS originen keresztül. A támogató hálózati követelmény egy többfelhasználós production telepítéshez szükséges Postgres és a meghívásokhoz szükséges SMTP. Ne tekintsd késznek a Mealie-t, amíg nem tudsz importálni egy recept URL-jét, ellenőrizni a hozzá tartozó képet, hozzáadni az étkezési tervhez, majd több receptből bevásárlólistát készíteni.
Mely Mealie-adatoknak kell szerepelniük a biztonsági mentésben?
Tedd perzisztenssé a /app/data útvonalat, és ugyanabban a helyreállítási manifestben szerepeljen az adatbázis, a receptképek, az assetek és az alkalmazásbeállítások is. Egy tiszta Mealie-visszaállítás csak akkor sikeres, ha a receptek, képek, felhasználók, étkezési tervek és bevásárlólisták visszatérnek, és egy ismert recept megfelelően megjelenik.
Szüksége van a Mealie-nek HTTPS-re reverse proxy mögött?
A nyilvános Mealie originhez használj HTTPS-t, a 9000-es portot pedig tartsd a belső útvonalon. A Mealie beállítását megfelelően alkalmazd: állítsd a BASE_URL értékét a külső HTTPS originre. A Mealie esetében a HTTPS védi a hitelesítő adatokat és a felhasználói tartalmakat az átvitel során, valamint egységesen kezeli az origintől függő kliensviselkedést.
Hogyan kell tesztelni egy Mealie-frissítést?
Állítsd vissza az aktuális Mealie-állapotot egy izolált telepítésbe, alkalmazd a jelölt verziót, majd ismételd meg az elfogadási tranzakciót. Fordíts különös figyelmet arra, hogy az adatbázis-migrációk és az ingredient parser módosításai hatással lehetnek a tárolt receptekre, ezért teszteld az importokat és a meglévő rekordokat. Tartsd meg az előző Mealie-képet addig, amíg nem tisztázott az adat-migráció és a rollback határa.
