Dacă sistemul tău actual de rețete înseamnă capturi de ecran în telefon, clipuri salvate, bookmarkuri aruncate la întâmplare, notițe de la rude și o rețetă excelentă de supă pe care nu o găsește nimeni când chiar contează, Mealie rezolvă o problemă cât se poate de normală într-o familie. Îți oferă un singur loc pentru rețete, planificarea meselor, liste de cumpărături și acces partajat. Ghidul acesta îți arată cum să îl instalezi pe un VPS, pas cu pas, chiar dacă nu ești deja adânc în zona de self-hosting.

Scopul aici nu este să construiești un container de demonstrație care arată bine două zile. Scopul este să construiești un serviciu privat mic pentru familie, care rămâne ușor de deschis, ușor de înțeles și ușor de păstrat în viață. Dacă faci asta bine, oamenii chiar îl folosesc.

Ce construiești

Până la finalul ghidului vei avea:

  • o instanță Mealie care rulează pe VPS-ul tău
  • un URL public adevărat, cum ar fi retete.exemplu.ro
  • HTTPS funcțional
  • înregistrările dezactivate, astfel încât oameni aleatori să nu își poată crea cont
  • o bibliotecă inițială de rețete pe care o poți împărți cu familia
  • o rutină simplă de backup, astfel încât cartea de bucate a familiei să nu dispară într-o zi proastă

Pentru majoritatea familiilor, nu este nevoie de un server mare. Dacă VPS-ul este folosit în principal pentru Mealie și un proxy invers ușor, un VPS KVM ServerSpan de dimensiune mică este deja suficient. Dacă vrei să adaugi și alte aplicații de familie mai târziu, urcă o treaptă și scutește-te de o migrare inutilă.

Pentru cine este ghidul acesta

Ghidul este pentru tine dacă:

  • vrei un manager privat de rețete pe care familia chiar să îl deschidă și să îl folosească
  • te descurci să urmezi comenzi în terminal, chiar dacă nu ești administrator Linux full-time
  • vrei o configurație clară și previzibilă, nu cinci variante opționale de deployment

Ghidul acesta nu încearcă să acopere toate arhitecturile avansate posibile. Alege stiva cea mai puțin enervantă pentru un setup normal de familie: Ubuntu sau Debian pe un VPS, Docker Compose, Mealie cu SQLite și Caddy pentru HTTPS automat.

De ce ai nevoie înainte să începi

  • un VPS care rulează Ubuntu 24.04 sau Debian 12
  • un domeniu pe care îl controlezi
  • un subdomeniu pe care îl poți îndrepta către VPS, cum ar fi retete.exemplu.ro
  • acces SSH la server
  • Docker și Docker Compose funcționale pe VPS

Dacă nu ai încă partea de server pregătită, începe cu Ghid complet de configurare VPS Linux pentru începători. Dacă vrei varianta scurtă, creează un server virtual, conectează-te prin SSH, actualizează sistemul și verifică să obții un rezultat real la docker compose version înainte să revii la ghidul acesta.

Pasul 1: îndreaptă subdomeniul către VPS

În panoul tău DNS, creează o înregistrare A pentru subdomeniul de rețete și îndreapt-o către adresa IPv4 a VPS-ului.

Exemplu:

Type: A
Name: retete
Value: 203.0.113.10

Dacă folosești IPv6, adaugă și o înregistrare AAAA.

Așteaptă un minut sau două, apoi verifică de pe calculatorul tău:

dig retete.exemplu.ro A +short
dig retete.exemplu.ro AAAA +short

Dacă subdomeniul nu se rezolvă încă spre VPS-ul tău, oprește-te aici și repară DNS-ul mai întâi. Nu continua cu speranța că HTTPS-ul se va rezolva singur mai târziu.

Pasul 2: conectează-te la VPS și creează un director curat pentru proiect

Conectează-te prin SSH:

ssh utilizatorul-tau@ip-ul-serverului-tau

Apoi creează un director de lucru curat pentru stiva Mealie:

mkdir -p ~/docker/mealie
cd ~/docker/mealie

Acolo vor sta fișierul Compose, configurația proxy-ului invers și datele persistente. Dacă ții fiecare aplicație în propriul director, îți scutești viitorul de multă confuzie.

Pasul 3: creează stiva Mealie și Caddy

Creează un fișier numit docker-compose.yaml:

nano docker-compose.yaml

Lipește conținutul de mai jos:

services:
  mealie:
    image: ghcr.io/mealie-recipes/mealie:v3.14.0
    container_name: mealie
    restart: unless-stopped
    expose:
      - "9000"
    volumes:
      - ./mealie-data:/app/data
    environment:
      ALLOW_SIGNUP: "false"
      PUID: 1000
      PGID: 1000
      TZ: Europe/Bucharest
      BASE_URL: https://retete.exemplu.ro
      DEFAULT_EMAIL: schimbama@exemplu.ro
      DEFAULT_GROUP: Family
      DEFAULT_HOUSEHOLD: Home

  caddy:
    image: caddy:2
    container_name: mealie-caddy
    restart: unless-stopped
    depends_on:
      - mealie
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config

Salvează fișierul și ieși.

Stiva asta face trei lucruri utile:

  • rulează Mealie cu date persistente în ./mealie-data
  • dezactivează înregistrările publice
  • pune Caddy în față ca să obții HTTPS automat, fără să te lupți cu certbot din prima zi

Documentația Mealie recomandă SQLite pentru implementări mici, în zona de 1 până la 20 de utilizatori, ceea ce se potrivește foarte bine unui setup de familie. De aceea ghidul păstrează alegerea bazei de date cât mai simplă în loc să te tragă în PostgreSQL fără motiv real.

Pasul 4: creează configurația pentru proxy-ul invers

Creează un fișier numit Caddyfile:

nano Caddyfile

Lipește conținutul de mai jos:

retete.exemplu.ro {
    encode gzip
    reverse_proxy mealie:9000
}

Înlocuiește retete.exemplu.ro cu subdomeniul tău real.

Asta îi spune lui Caddy să accepte traficul pentru domeniul de rețete și să îl trimită către containerul Mealie. Caddy se ocupă automat de certificatul HTTPS, atâta timp cât DNS-ul este corect și porturile 80 și 443 sunt accesibile de pe internet.

Pasul 5: pornește stiva

Din interiorul directorului ~/docker/mealie, rulează:

docker compose up -d

Apoi verifică dacă ambele containere sunt pornite:

docker compose ps

Vrei să vezi atât mealie, cât și mealie-caddy în stare de funcționare.

Dacă ceva arată greșit, citește logurile înainte de orice altceva:

docker compose logs --tail 100 mealie
docker compose logs --tail 100 caddy

Nu începe să modifici setări la întâmplare dacă problema reală este doar că DNS-ul nu s-a propagat încă sau că portul 80 este blocat.

Pasul 6: deschide Mealie în browser și autentifică-te

Acum deschide browserul și accesează:

https://retete.exemplu.ro

Dacă totul funcționează corect, ar trebui să vezi ecranul de autentificare Mealie.

Dacă ai lăsat credențialele implicite neschimbate, checklistul oficial de instalare Mealie documentează autentificarea inițială astfel:

Username: changeme@example.com
Password: MyPassword

Autentifică-te o dată, apoi schimbă imediat parola. După aceea, intră în zona de administrare și verifică pagina de setări a site-ului, ca să prinzi din timp eventualele avertismente de configurare.

Acesta este și momentul potrivit să schimbi adresa de email de la contul placeholder dacă ai păstrat valorile implicite pentru prima pornire.

Pasul 7: fă-l utilizabil în viața reală, nu doar „instalat”

Multe aplicații self-hosted eșuează exact aici. Se instalează corect, apoi nu le mai folosește nimeni pentru că proprietarul nu le-a transformat niciodată într-un serviciu care să se potrivească vieții reale.

Fă aceste lucruri imediat după prima autentificare:

  • schimbă parola de administrator imediat
  • setează un nume al instanței pe care familia îl va recunoaște ușor
  • verifică dacă numele pentru grupul și household-ul implicit au sens
  • transformă pagina principală într-un loc curat, nu într-o grămadă de teste
  • importă un set mic de rețete pe care chiar le gătești

Nu arunca 500 de rețete de pe internet în el din prima zi. Asta înseamnă doar haosul vechi, dar cu o căsuță de căutare mai bună.

Pasul 8: importă primele rețete care chiar contează

Aici Mealie începe să devină util în loc să rămână teoretic.

Începe cu 10 până la 20 de rețete la care revii cu adevărat:

  • mâncărurile de seară din timpul săptămânii pe care le repeți
  • rețetele de sărbători pe care le caută toată lumea
  • rețetele de familie care acum trăiesc în conversații sau caiete
  • rețetele de pe web pe care le folosiți deja în casă

Importă din URL unde are sens. Pentru rețetele scrise de mână sau venite din familie, adaugă-le manual și curăță-le o singură dată, în loc să le cauți pentru totdeauna printre poze.

O structură inițială bună este suficientă. Nu ai nevoie de o taxonomie perfectă. Începe cu câteva categorii umane, cum ar fi Cină rapidă, Supă, De făcut din nou, Musafiri, Clasice de familie și Desert. Scopul este să găsești repede ce îți trebuie, nu să construiești un sistem academic.

Pasul 9: construiește singurul flux care face aplicația să rămână în uz

Mealie devine cu adevărat util când rețetele se transformă în planificare și cumpărături, nu când rămân doar o arhivă.

Folosește-l astfel o dată pe săptămână:

  • alege 5 până la 7 mese pentru zilele următoare
  • adaugă-le în planificatorul de mese
  • generează sau construiește lista de cumpărături pornind de la aceste mese
  • curăță duplicatele și ingredientele pe care le ai deja în casă
  • lasă lista să trăiască într-un singur loc partajat

Asta sună aproape prea obișnuit ca să merite scris. Exact de aceea contează. Uneltele de familie au valoare doar atunci când reduc fricțiunea din viața obișnuită.

Pasul 10: adaugă acces pentru familie fără să transformi totul în haos

Mealie are groups și households dintr-un motiv clar. Rețetele pot fi împărțite mai larg, în timp ce planificarea meselor și listele de cumpărături pot rămâne specifice unui household. Pentru o familie mică, un singur household este de obicei suficient. Păstrează lucrurile simple până când ai un motiv real să le complici.

Pentru prima zi, cel mai simplu traseu este acesta:

  • păstrează un cont de administrator pentru configurare
  • adaugă încă un utilizator normal pentru celălalt adult care chiar planifică sau cumpără
  • așteaptă înainte să adaugi pe toată lumea

Dacă familia îl folosește două săptămâni fără fricțiune, abia atunci extinde accesul. Dacă inviți șase oameni într-o aplicație pe jumătate goală din prima zi, nu construiești utilitate. Construiești încă o temă pentru acasă.

SMTP merită adăugat mai târziu dacă vrei invitații curate și resetări de parolă funcționale. Checklistul de instalare Mealie menționează explicit SMTP pentru aceste funcții. Dar dacă scopul tău de azi este să pui serviciul online și utilizabil, nu are sens să blochezi întregul proiect doar pentru email.

Pasul 11: fă backup înainte să înceapă să conteze emoțional

Mealie are suport integrat pentru backup și restore. Folosește-l. Dar fii sincer: un backup care trăiește doar pe același VPS nu este suficient. Este doar un punct unic de eșec ceva mai ordonat.

Minimul sănătos arată așa:

  • folosește backupul integrat din interfața Mealie
  • fă backup la directorul ~/docker/mealie/mealie-data la nivel de VPS
  • păstrează și o copie în afara serverului
  • testează o restaurare o dată înainte să ai nevoie de ea cu adevărat

Datele despre rețetele familiei par ceva lejer până dispar. Atunci devin dintr-odată importante.

Dacă vrei contextul mai larg pentru mentalitatea de backup, citește Ghidul esențial pentru backup-urile VPS: strategii, instrumente și cele mai bune practici.

Pasul 12: actualizează-l într-un mod banal și sigur

După ce Mealie este online și familia chiar îl folosește, încetează să tratezi actualizările cu lejeritate. Păstrează imaginea fixată și actualizează în mod deliberat.

cd ~/docker/mealie
docker compose pull
docker compose up -d

Înainte de actualizare, fă un backup. Nu lăsa imaginea pe latest și nu spera că nimic nu se va rupe exact în ora în care toată lumea încearcă să decidă ce gătește.

Asta sună evident. Perfect. O mare parte din durerea din self-hosting vine din ignorarea repetată a lucrurilor evidente.

Când SQLite nu mai este alegerea potrivită

Pentru o carte de bucate de familie, SQLite este alegerea corectă în majoritatea cazurilor. PostgreSQL începe să aibă sens când una dintre condițiile de mai jos devine adevărată:

  • vrei fuzzy search
  • te aștepți la utilizare concurentă mai intensă
  • integrezi Mealie într-un stack intern mai mare
  • plănuiești să ții datele pe NAS și vrei să eviți riscurile evidente ale SQLite în acel context

Nu complica aplicația fără motiv. Dar nici nu te agăța de SQLite dacă use case-ul a trecut clar dincolo de zona confortabilă pentru o familie mică.

Ce plan VPS are sens pentru Mealie

Mealie este un proiect foarte bun de self-hosting și pentru că nu este o aplicație grea. Nu ai nevoie de un server uriaș ca să rulezi bine o carte de bucate privată pentru familie.

Pentru majoritatea familiilor, vm.Entry este suficient dacă serverul rulează în principal Mealie și un proxy invers. vm.Ready este opțiunea mai comodă dacă vrei și backupuri, încă o aplicație de familie sau pur și simplu mai mult spațiu de respirație. Asta este partea onestă din vânzare. Motivul pentru care pui Mealie pe un VPS adevărat nu este puterea brută. Este controlul, rețeaua curată, HTTPS-ul făcut bine și posibilitatea de a păstra serviciul sub controlul tău pe termen lung.

Dacă vrei un stack de aplicații de familie care să rămână privat și previzibil, găzduirea VPS ServerSpan este pagina-părinte corectă pentru articolul acesta.

Checklistul care contează mai mult decât comanda de instalare

  • folosește un subdomeniu dedicat
  • setează BASE_URL corect înainte să inviți pe altcineva
  • dezactivează înregistrările
  • folosește SQLite dacă nu ai un motiv real să faci altfel
  • nu pune SQLite pe NAS
  • fă backup atât aplicației, cât și directorului de date
  • începe cu o bibliotecă de rețete curată, nu cu un dump de internet
  • pune în funcțiune o rutină săptămânală de planificare a meselor înainte să adaugi complexitate

Checklistul acesta contează mai mult decât comanda de Docker. Majoritatea aplicațiilor self-hosted nu eșuează pentru că comanda de instalare a fost greșită. Eșuează pentru că operatorul nu a decis niciodată cum arată „folosit cu succes” în viața reală.

Dacă vrei lecturi adiacente înainte sau după instalare, Gestionarea Docker și a containerelor pe un VPS acoperă partea de disciplină la nivel de containere, iar Ghid complet de configurare VPS Linux pentru începători acoperă logica mai largă de configurare a hostului, care se aplică și aici.

Răspunsul practic

Dacă ai obosit să faci capturi de ecran la rețete, să pierzi liste de cumpărături prin conversații și să uiți unde era mâncarea bună, găzduirea lui Mealie pe un VPS este unul dintre cele mai practice proiecte de self-hosting pentru o familie. Rezolvă o problemă umană, nu doar una tehnică. Configurația potrivită este mică, privată, banală și bine întreținută: un VPS, un domeniu real, HTTPS, înregistrări dezactivate, backupuri puse la punct și o bibliotecă de rețete construită pentru uz repetat, nu pentru aglomerație.

Scopul nu este să construiești cea mai avansată platformă de rețete din lume. Scopul este să construiești aplicația pe care familia ta chiar o deschide marți seara, când cineva trebuie să decidă rapid ce gătește și ce trebuie cumpărat. Exact la asta este bun Mealie și exact de aceea își are locul pe un VPS ServerSpan, nu în galeria telefonului și nu în memoria ta.

Sursă și Atribuire

Aceast articol se bazează pe date originale ale serverspan.com. Pentru metodologia completă și pentru a asigura integritatea datelor, articolul original trebuie citat. Sursa canonică este disponibilă la: Nu mai face capturi de ecran la rețete: găzduiește Mealie și construiește o carte de bucate de familie care chiar este folosită.