Slik drifter du Mealie selv i 2026: Import av oppskrifter, brukere og sikkerhetskopier
En praktisk veiledning i hvordan du drifter Mealie selv, med gjennomgang av Docker, porter, persistent data, TLS, sikkerhet, sikkerhetskopier og feil som hindrer produksjonsbruk. Steg for steg.
Den korteste Mealie-demoen viser at en prosess lytter på port 9000. Produksjon krever sterkere bevis. Dette scenarioet må fungere selv etter at containeren er byttet ut: importer en oppskrifts-URL, bekreft bildet, legg den til i en måltidsplan og generer en handleliste fra flere oppskrifter.
Mealie distribueres for et tydelig formål: oppskrifter, måltidsplaner og handlelister. Den vanligste feilen ved distribusjon er at oppskriftsbilder forsvinner fordi /app/data ikke er persistent. Derfor må håndtering av offentlige URL-er og varig tilstand få like mye oppmerksomhet som oppstart av bildet.
Tegn grensen for Mealie-kjøremiljøet
Den minste ansvarlige Mealie-topologien består av én privat lytter på port 9000, en ingress-rute og en dokumentert grense for tilstand. Nettverkskontrakten for Mealie er Postgres for en produksjonsdistribusjon med flere brukere og SMTP for invitasjoner. Hold private endepunkter på intern DNS, tillat bare nødvendige utgående kall og gi Mealie en avgrenset tjenestekredential.
Valider topologien ved å be en ren klient importere en oppskrifts-URL, bekrefte bildet, legge den til i en måltidsplan og generere en handleliste fra flere oppskrifter. Følg med på import av oppskrifter, bildelagring, databaseforespørsler, bakgrunnsoppgaver og samtidige husstandsbrukere mens testen kjører. Resultatet viser om neste forbedring hører hjemme i minne, lagring, nettverk eller en separat worker, i stedet for å oppmuntre til vilkårlig dimensjonering av containere.
Kapasitet og kontroller før oppgradering
En inaktiv health check sier lite om Mealie. Følg med på import av oppskrifter, bildelagring, databaseforespørsler, bakgrunnsoppgaver og samtidige husstandsbrukere, og varsle om symptomet brukerne faktisk opplever: at handlingen «importer en oppskrifts-URL, bekreft bildet, legg den til i en måltidsplan og generer en handleliste fra flere oppskrifter» mislykkes. Hold liveness lokal og billig; la readiness rapportere migreringer eller initialisering uten å utløse en restart-storm.
Det risikofylte ved oppgraderinger er at databasemigreringer og endringer i ingrediensparseren kan påvirke lagrede oppskrifter, så test importer og eksisterende poster. Les release notes, ta et snapshot av tilstanden, distribuer målversjonen mot en gjenopprettet kopi og gjenta akseptansetesten. Hvis oppskriftsbilder forsvinner fordi /app/data ikke er persistent, kobler du klientforespørselen til den første relevante applikasjonsloggen i stedet for å slette tilstand eller legge til redirects uten videre.
Mealie-sperren før release
En release candidate for Mealie fortjener trafikk når den fullfører et fast scenario: importer en oppskrifts-URL, bekreft bildet, legg den til i en måltidsplan og generer en handleliste fra flere oppskrifter. Ta vare på image digest, effektiv ikke-hemmelig konfigurasjon, offentlig origin og tidsstempler for scenarioet. Testdataene bør kunne kastes, men samtidig være realistiske nok til å utøve samme flyt som brukerne.
Kjør testen etter at kjøremiljøet er byttet ut, og bygg deretter tjenesten på nytt fra database, oppskriftsbilder, ressurser og applikasjonsinnstillinger. Gjenoppretting er vellykket når oppskrifter, bilder, brukere, måltidsplaner og handlelister er tilbake, og en kjent oppskrift vises korrekt. Sammenlign ressursmålinger for import av oppskrifter, bildelagring, databaseforespørsler, bakgrunnsoppgaver og samtidige husstandsbrukere med forrige release, og undersøk vesentlige avvik før utrulling.
Til slutt tester du denne kontrollerte feilen: nekt testidentiteten midlertidig tilgang til Postgres for en produksjonsdistribusjon med flere brukere og SMTP for invitasjoner. Kontroller at Mealie forklarer feilen, ikke skader eksisterende tilstand og gjenopptar driften når den gyldige tilstanden er tilbake. Lagre et redigert loggutdrag og gjenopprettingstiden. Til sammen dekker disse kontrollene funksjonalitet, varighet og driftbarhet – ikke bare at prosessen er oppe.
Bygg en Mealie-container som kan erstattes
Hold den første Mealie-kjøringen reproduserbar nok til å kunne gjennomgås i en pull request.
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
Ikke stol på latest etter at reelle data er tatt i bruk. Ta vare på den fungerende digest-en, containerbrukeren og eierskapet til mountet. Følg applikasjonsloggen gjennom en fullstendig test – importer en oppskrifts-URL, bekreft bildet, legg den til i en måltidsplan og generer en handleliste fra flere oppskrifter – og noter eventuelle migreringer før ruten legges bak produksjonstrafikk.
Finn hver varige byte i Mealie
Kartlegg alle varige artefakter: database, oppskriftsbilder, ressurser og applikasjonsinnstillinger. Mount /app/data før bootstrap, skriv ufarlige eksempeldata og bytt ut containeren for å bevise at banen faktisk er persistent. Ta med konfigurasjon som endrer hvordan lagrede data tolkes, ikke bare den største katalogen.
Fastsett oppbevaringsregler, kopier sikkerhetskopier utenfor verten og gjennomfør en gjenoppretting i et rent miljø. Mealie-øvelsen er fullført når oppskrifter, bilder, brukere, måltidsplaner og handlelister er tilbake, og en kjent oppskrift vises korrekt. Hvis snapshots inngår i planen, kan du bruke veiledningen om PITR kontra snapshots til å dokumentere hva hver mekanisme kan gjenopprette.
Rute Mealie uten å gi et misvisende bilde av HTTPS
Sett BASE_URL til den eksterne HTTPS-origin-en. Send det valgte hostname-et til containerport 9000, videresend den opprinnelige host-en og HTTPS-skjemaet, og unngå å publisere en ekstra direkte origin.
Test Mealie fra en ren ekstern klient. Skill ingress-feil fra den kjente applikasjonsgrensen – oppskriftsbilder forsvinner fordi /app/data ikke er persistent. En sertifikat-, DNS- eller 502-feil hører til rutingen; en forespørsel som når Mealie og feiler senere, hører til applikasjonstilstand, kapasitet eller et støttende krav. Veiledningen for TLS med egendefinert domene dekker den første gruppen.
Begrens rettighetene Mealie har
Etter første innlogging bør du gjennomgå hva en anonym besøkende, en vanlig bruker og en administrator kan gjøre. Mealie-feilen du må unngå, er å la registrering være åpen eller beholde det første administratorpassordet. Den tiltenkte policyen er å bytte det første administratorpassordet, stenge registreringen når innrulleringen er ferdig og beskytte private husstandsdata.
BASE_URL er konfigurasjon, ikke en hemmelighet; hold verdien eksplisitt, samtidig som du beskytter de separate legitimasjonene Mealie bruker. Hold kontoer for avhengigheter adskilt fra menneskelige kontoer, nekt ubrukt egress der det er praktisk mulig, og begrens arbeid som påvirkes av import av oppskrifter, bildelagring, databaseforespørsler, bakgrunnsoppgaver og samtidige husstandsbrukere.
En Dockup-distribusjon trenger fortsatt en Mealie-akseptansetest
Ruting, sertifikater, utskifting av tjenester og tilknyttet lagring er fornuftige mål for automatisering. Dockup håndterer dette for Mealie og kan klargjøre den tilknyttede administrerte databasen eller koble til tjenester på kundens egen server.
Det Dockup ikke bør finne på, er Mealie-policyen for tillit. Etter distribusjonen setter du BASE_URL til den eksterne HTTPS-origin-en, håndhever denne grensen – bytt det første administratorpassordet, steng registreringen når innrulleringen er ferdig og beskytt private husstandsdata – og bekrefter resultatet av dette scenarioet: importer en oppskrifts-URL, bekreft bildet, legg den til i en måltidsplan og generer en handleliste fra flere oppskrifter. Resultatet er infrastruktur med ett klikk og en applikasjonsspesifikk akseptansetest.
Vanlige spørsmål
Hva trenger Mealie for en produksjonsdistribusjon?
Rute Mealie-containeren på port 9000 gjennom én HTTPS-origin. Det støttende nettverkskravet er Postgres for en produksjonsdistribusjon med flere brukere og SMTP for invitasjoner. Ikke erklær Mealie klar før du kan importere en oppskrifts-URL, bekrefte bildet, legge den til i en måltidsplan og generere en handleliste fra flere oppskrifter.
Hvilke Mealie-data bør inngå i en sikkerhetskopi?
Gjør /app/data persistent, og inkluder database, oppskriftsbilder, ressurser og applikasjonsinnstillinger i det samme gjenopprettingsmanifestet. En ren Mealie-gjenoppretting er bare vellykket når oppskrifter, bilder, brukere, måltidsplaner og handlelister er tilbake, og en kjent oppskrift vises korrekt.
Krever Mealie HTTPS bak en reverse proxy?
Bruk HTTPS for den offentlige Mealie-origin-en og behold port 9000 på den interne ruten. Bruk Mealie-innstillingen riktig: sett BASE_URL til den eksterne HTTPS-origin-en. For Mealie beskytter HTTPS legitimasjon eller brukerinnhold under overføring og sørger for konsekvent klientatferd som er avhengig av origin.
Hvordan bør en Mealie-oppgradering testes?
Gjenopprett den gjeldende Mealie-tilstanden i en isolert distribusjon, ta i bruk kandidatversjonen og gjenta akseptansetransaksjonen. Vær spesielt oppmerksom på at databasemigreringer og endringer i ingrediensparseren kan påvirke lagrede oppskrifter, så test importer og eksisterende poster. Behold det forrige Mealie-imaget til grensen for datamigrering og rollback er forstått.
