VPS-ல் Mealie மூலம் சொந்தமாக Recipe Manager உருவாக்குவது
Docker Compose பயன்படுத்தி உங்கள் VPS-ல் Mealie-ஐ நிறுவுவது எப்படி என்று அறிக. இணையதள சமையல் குறிப்புகளை தானாக சேமிக்கவும், உணவு திட்டமிடல் மற்றும் மளிகை பட்டியல் வசதிகளை பெறவும்.
Self-hosted recipe manager-ன் செயல்பாடுகள்
ஒரு self-hosted recipe manager உங்கள் சமையல் குறிப்புகளை நீங்கள் சொந்தமாக வைத்திருக்கும் server-ல் உள்ள database-ல் சேமித்து வைக்கிறது. பெரும்பாலான இல்லங்களுக்கு Mealie சிறந்த தேர்வாக உள்ளது. நீங்கள் ஒரு recipe பக்கத்தின் முகவரியை நகலெடுத்துப் பதிவிட்டால், Mealie அதிலுள்ள பொருட்கள், செய்முறை, அளவு மற்றும் சமையல் நேரம் ஆகியவற்றை மட்டும் பிரித்தெடுத்து, தேவையற்ற கதைகளையும் விளம்பரங்களையும் நீக்கிவிடும். உங்கள் சேகரிப்பில் சமையல் குறிப்பு மட்டுமே எஞ்சியிருக்கும்.
இந்த application-ன் பிற அம்சங்கள் எளிமையானவை. வாராந்திர உணவுத் திட்டத்தில் (meal plan) நீங்கள் குறிப்புகளை இழுத்துச் சேர்க்கலாம், அந்தத் திட்டத்தின் அடிப்படையில் தானாகவே ஒரு மளிகைப் பட்டியல் (shopping list) உருவாகும். சமைக்கும் ஒவ்வொருவருக்கும் தனித்தனி login வசதி உண்டு. இது முழுவதுமாக ஒரே container-ல் இயங்குகிறது. கோரிக்கைகள் இல்லாத நேரத்தில் இது செயலற்று இருப்பதால், மிகக் குறைந்த திறன் கொண்ட VPS-ல் கூட இதை எந்தச் சுமையுமின்றி இயக்க முடியும்.
இந்த வழிகாட்டி Docker Compose-ஐப் பயன்படுத்துகிறது. services: மற்றும் volumes: ஆகிய சொற்கள் உங்களுக்குப் புதியவை என்றால், முதலில் Docker Compose கோப்புகள் எவ்வாறு கட்டமைக்கப்படுகின்றன என்பதைப் படியுங்கள். ஏனெனில், கீழே உள்ள அனைத்தும் ஒரே compose கோப்பு மற்றும் நான்கு கட்டளைகளைக் கொண்டவை.
Docker Compose மூலம் Mealie-ஐ நிறுவுதல்
Mealie தனது images-களை GitHub container registry-ல் வெளியிடுகிறது. அக்டோபர் 2026 நிலவரப்படி, தற்போதைய stable tag v3.28.0 ஆகும். latest-ஐப் பயன்படுத்துவதற்குப் பதிலாக ஒரு குறிப்பிட்ட version-ஐ pin செய்யவும்: latest-ஐப் பயன்படுத்தினால், நீங்கள் தயாராக இல்லாத ஒரு database migration-க்கு ஒரு docker compose pull உங்களை அறியாமலேயே தள்ளக்கூடும்.
sudo mkdir -p /srv/mealie
cd /srv/mealie
sudo nano docker-compose.ymlservices:
mealie:
image: ghcr.io/mealie-recipes/mealie:v3.28.0
container_name: mealie
restart: always
ports:
- "127.0.0.1:9925:9000"
deploy:
resources:
limits:
memory: 1000M
volumes:
- mealie-data:/app/data/
environment:
ALLOW_SIGNUP: "false"
PUID: 1000
PGID: 1000
TZ: Europe/Amsterdam
BASE_URL: https://recipes.example.com
volumes:
mealie-data:நீங்கள் தொடங்குவதற்கு முன் இரண்டு வரிகளைக் கவனிக்க வேண்டும்.
Port ஆனது 127.0.0.1:9925:9000 என்று எழுதப்பட்டுள்ளது, 9925:9000 என்று அல்ல. Container உள்ளே 9000-ல் இயங்குகிறது, host அதை 9925-க்கு map செய்கிறது. அந்த map-ஐ loopback address-உடன் இணைப்பதன் மூலம், Nginx-ஆல் Mealie-ஐ அணுக முடியும், ஆனால் இணையத்தால் முடியாது. Docker தனது சொந்த விதிகளை packet filter-ல் எழுதும், எனவே உங்கள் firewall port மூடப்பட்டிருப்பதாகக் கூறினாலும், ஒரு சாதாரண 9925:9000 வெளியிலிருந்து அணுகக்கூடியதாக இருக்கும். இந்த ஆச்சரியத்தை ஒருமுறை புரிந்துகொள்வது அவசியம்: Docker published ports ஏன் ufw-ஐப் புறக்கணிக்கின்றன என்பதைப் பார்க்கவும்.
BASE_URL என்பது நீங்கள் பயன்படுத்தப்போகும் சரியான public address ஆக இருக்க வேண்டும்; அதில் scheme இருக்க வேண்டும் மற்றும் இறுதியில் slash இருக்கக்கூடாது. Mealie இதிலிருந்துதான் password reset links மற்றும் invitation links-களை உருவாக்குகிறது. இதை http://localhost:9925 என்று அமைத்தால், நீங்கள் உங்கள் துணைக்கு அனுப்பும் அழைப்பில் உள்ள link, server-ல் மட்டுமே வேலை செய்யும்.
இதைத்தொடங்கி முதல் boot-ஐக் கவனிக்கவும்.
sudo docker compose up -d
sudo docker compose logs -f mealieமுதல் தொடக்கம் SQLite database-ஐ உருவாக்கி migrations-ஐ இயக்கும், இதற்குச் சில நொடிகள் ஆகும். log நிலையானதாகி migration வரிகளை அச்சிடுவதை நிறுத்தியதும், app-ஐ local-ஆகச் சரிபார்க்கவும்.
curl -I http://127.0.0.1:9925200 OK என்பது app இயங்குகிறது என்று பொருள். Connection refused என்பது container இயங்கவில்லை என்று பொருள்: sudo docker compose ps-ஐ இயக்கி exit code-ஐப் படிக்கவும். 137 என்ற code-உடன் நின்ற container, 1000M memory limit-ஐத் தாண்டியதால் நிறுத்தப்பட்டது என்று பொருள்; இது மிகச்சிறிய plans-ல் நடக்கும்.
முதல்முறை உள்நுழைதல் மற்றும் open signup-ஐ முடக்குதல்
இயல்புநிலை கணக்கு changeme@example.com, அதன் கடவுச்சொல் MyPassword. இதைப் பயன்படுத்தி உள்நுழைந்த பிறகு, இரண்டையும் உடனடியாக மாற்றவும். ஏனெனில், இந்த விவரங்கள் ஆவணங்களில் அச்சிடப்பட்டுள்ளதால், அனைத்து ஸ்கேனர்களுக்கும் இது தெரிந்திருக்கும்.
compose கோப்பில் உள்ள ALLOW_SIGNUP: "false" என்பது வேண்டுமென்றே வைக்கப்பட்டது. signup வசதி திறந்திருந்தால், உங்கள் recipe box-ன் முகவரியைக் கண்டறியும் எவரும் கணக்கை உருவாக்க முடியும். இது முடக்கப்பட்டிருந்தால், நீங்கள் admin பகுதியில் இருந்து பயனர்களைச் சேர்க்கலாம்; அப்போது உருவாக்கப்படும் அழைப்பு இணைப்பை (invitation link) நீங்களே அவர்களுக்கு அனுப்பலாம். அந்த இணைப்பு BASE_URL-ஐ அடிப்படையாகக் கொண்டு உருவாக்கப்படுவதால், அதன் மதிப்பு முக்கியமானது. ஒரே server-ல் பல செயலிகளை இயக்கி, அனைத்திற்கும் ஒரே கடவுச்சொல்லைப் பயன்படுத்த விரும்பினால், Mealie தனது login வசதியை self-hosted Authentik instance போன்ற வெளிப்புற identity provider-க்கு மாற்ற முடியும்.
Mealie பயனர்களை ஒரு household-ல் சேர்க்கிறது, மேலும் households ஒரு group-க்குள் அமையும். ஒரே household-ல் உள்ள அனைவரும் meal plan மற்றும் shopping list-ஐப் பகிர்ந்து கொள்வார்கள்; இது ஒரு குடும்பத்திற்குத் தேவையானதாகும். ஆனால், recipe சேகரிப்பு இதைவிட விரிவானது: households தங்கள் recipes, tags மற்றும் categories ஆகியவற்றை ஒரே group-ல் உள்ள மற்ற அனைத்து households-உடனும் பகிர்ந்து கொள்கின்றன. எனவே, ஒரே server-ல் உள்ள தனித்தனி households தங்கள் சொந்த plans மற்றும் lists-ஐத் தனித்தனியாக வைத்திருந்தாலும், ஒரே recipes-ஐப் பயன்படுத்தலாம். இது anchovies போன்ற உணவுகளில் விருப்பம் மாறுபடும் flatshare போன்ற சூழலுக்கு ஏற்றது. பயனர்களுக்கு முற்றிலும் தனித்தனி சேகரிப்புகள் தேவைப்பட்டால், அவர்களுக்குத் தனித்தனி groups-ஐ வழங்கவும், ஏனெனில் groups-க்கு இடையே எதுவும் பகிரப்படாது.
இறக்குமதி செயலி (Importer), இதுவே இதை இயக்குவதற்கான காரணம்
Recipe collection-ஐத் திறந்து, URL-லிருந்து ஒரு recipe-ஐ உருவாக்கத் தேர்ந்தெடுத்து, ஒரு இணைப்பை (link) ஒட்டவும். Mealie அந்தப் பக்கத்தைப் பெற்று, அதில் உள்ள கட்டமைக்கப்பட்ட recipe தரவுகளைத் தேடும். இது பெரும்பாலான recipe தளங்கள் தேடுபொறிகளுக்காக (search engines) உட்பொதிக்கும் இயந்திரத்தால் படிக்கக்கூடிய (machine-readable) தரவுத் தொகுதியாகும். அந்தத் தொகுதி இருக்கும்போது, இறக்குமதி துல்லியமாகவும் உடனடியாகவும் நடைபெறும்.
நீங்கள் ஒரு AI provider-ஐ உள்ளமைத்தால், ஒரு படம் அல்லது நீங்கள் ஒட்டும் plain text மூலமாகவும் இறக்குமதி செய்யலாம். இது சமையல் புத்தகத்தின் பக்கத்தைப் புகைப்படம் எடுத்ததற்கும் பொருந்தும். படங்களை இறக்குமதி செய்ய, படங்களைப் படிக்கக்கூடிய ஒரு provider தேவை. provider இல்லையெனில், இந்த இறக்குமதி வசதிகள் கிடைக்காது. இவை மெதுவான பாதையில் செயல்படுவதால், இறக்குமதிக்குப் பிறகு சரிபார்ப்பு தேவைப்படும்; ஏனெனில் கையால் எழுதப்பட்ட பின்னங்களை (fractions) தவறாகப் புரிந்துகொள்ள வாய்ப்புள்ளது.
மொத்தமாக இறக்குமதி (Bulk imports) செய்யும் வசதியும் அதே திரையிலிருந்து இயங்கும்: முகவரிகளின் பட்டியலை ஒவ்வொன்றாக ஒரு வரியில் ஒட்டவும், Mealie பின்னணியில் அவற்றைச் செயல்படுத்தும். இருநூறு புக்மார்க்குகள் கொண்ட தொகுப்பை ஒரே நேரத்தில் மாற்ற முடியும்.
உணவுத் திட்டங்கள் மற்றும் ஷாப்பிங் பட்டியல்
Meal planner என்பது ஒரு காலண்டர் ஆகும். ஒரு recipe-ஐ இழுத்து ஒரு நாளில் போட்டால், அது திட்டமிடப்பட்டுவிடும். திட்டமிடப்பட்ட recipe-களில் உள்ள மூலப்பொருட்களை (ingredients) ஷாப்பிங் பட்டியல் தானாகவே சேகரித்து ஒரே பட்டியலாக மாற்றும். இது நகல்களை (duplicates) ஒன்றிணைக்கும்; உதாரணமாக, இரண்டு recipe-களுக்கு வெங்காயம் தேவைப்பட்டால், அது இரண்டு வரிகளாக இல்லாமல் ஒரே வரியாகக் காட்டப்படும்.
இந்த பட்டியல் உங்கள் போனில் நேரலையில் (live) இருக்கும், எனவே கடையில் இருக்கும்போது இதைப் பயன்படுத்தலாம். இது உங்கள் சொந்த server-ல் இருப்பதால், வீட்டில் உள்ள அனைவரும் ஒரே பட்டியலை ஒரே நேரத்தில் பார்க்க முடியும். ஒருவர் பால் வாங்கியதை டிக் (tick) செய்தால், அது மற்றவர்களின் திரையிலும் தானாகவே மறைந்துவிடும்.
Nginx மற்றும் TLS-ஐ முன்னால் அமைத்தல்
Mealie சாதாரண HTTP-ல் மட்டுமே இயங்கும், அதற்குச் சொந்தமாக certificate கையாளும் வசதி இல்லை. எனவே, அதற்கு முன்னால் Nginx-ல் transport layer security (TLS)-ஐ முடிவுக்குக் கொண்டு வரவும் (terminate). முதலில் உங்கள் server-க்கு ஒரு DNS A record-ஐச் சுட்டிக்காட்டவும், ஏனெனில் certificate பெறுவதற்கான சரிபார்ப்பு அந்தப் பெயரை வைத்தே நடக்கும்.
sudo apt update && sudo apt install -y nginx
sudo nano /etc/nginx/sites-available/mealieserver {
listen 80;
server_name recipes.example.com;
client_max_body_size 64M;
location / {
proxy_pass http://127.0.0.1:9925;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}sudo ln -s /etc/nginx/sites-available/mealie /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginxnginx -t-ஐப் பயன்படுத்தி syntax is ok மற்றும் test is successful-ஐச் சரிபார்ப்பதே முதல் கட்டமாகும். பிழையான configuration-ஐ reload செய்தால், பழைய configuration-யே தொடர்ந்து இயங்கும் மற்றும் அடுத்த restart வரை பிழை தெரியாது என்பதால், சரிபார்ப்பு முடிந்த பிறகு மட்டுமே reload செய்யவும்.
client_max_body_size 64M இங்கே சேர்க்கப்பட்டுள்ளது, ஏனெனில் Nginx-ன் default அளவு 1 MB மட்டுமே. browser வழியாக recipe photo-வை upload செய்யும்போதோ அல்லது backup-ஐ restore செய்யும்போதோ, அதைவிடப் பெரிய கோப்புகள் அனுப்பப்படும். இந்த வரி இல்லையென்றால், Mealie-லிருந்து அல்லாமல் Nginx-லிருந்து 413 Request Entity Too Large பிழை வரும்; இதனால் application log-ல் எந்தத் தகவலும் பதிவாகாது.
அதன்பிறகு certificate-ஐப் பெறவும். அந்தப் படிநிலை மற்றும் அதன் renewal timer பற்றிய விவரங்கள் certbot மூலம் Nginx-க்கு Let's Encrypt certificate பெறுதல் பகுதியில் உள்ளன.
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d recipes.example.comCertbot, server block-ஐ மாற்றி 443 port-ல் கேட்கும்படி செய்யும் மற்றும் port 80-லிருந்து redirect-ஐச் சேர்க்கும். https:// வழியாகத் தளத்தை ஏற்றி, browser certificate-ஐ ஏற்கிறதா என்பதை உறுதிப்படுத்தவும். Mealie இயங்கினாலும் அதன் இணைப்புகள் உங்களை http://-க்கு அனுப்பினால், BASE_URL இன்னும் http என்றே உள்ளது என்று அர்த்தம். அதைச் சரிசெய்து, புதிய மதிப்புடன் container-ஐ மீண்டும் உருவாக்க sudo docker compose up -d-ஐப் பயன்படுத்தவும்.
Mealie-ஐ example.com/recipes போன்ற subpath-ல் இயக்குவது வேலை செய்யாது, ஏனெனில் frontend-ஐ ஒரு subpath-லிருந்து இயக்க முடியாது. எனவே, subdomain-ஐப் பயன்படுத்தவும்.
Backups, மற்றும் ஒரு restore உண்மையில் என்ன செய்கிறது
Mealie-ன் அனைத்து தரவுகளும் container-க்குள் உள்ள /app/data/-ல், அதாவது mealie-data volume-ல் சேமிக்கப்படுகின்றன. அந்த volume-ஐ நகலெடுப்பதன் மூலம், recipes, படங்கள் மற்றும் database ஆகிய அனைத்தையும் நீங்கள் நகலெடுத்துவிடலாம். Mealie-ன் சொந்த ஆவணங்களின்படி, container-ஐ நிறுத்திவிட்டு இந்த folder-ஐ நகலெடுப்பதே SQLite install-ஐ backup செய்வதற்கான சிறந்த வழியாகும்.
sudo docker volume ls
sudo docker compose stop mealie
sudo docker run --rm -v mealie_mealie-data:/data -v "$PWD":/backup \
alpine tar czf /backup/mealie-data.tgz -C /data .
sudo docker compose start mealieVolume பெயரானது project பெயரைக் கொண்டு தொடங்கும்; compose file இருக்கும் directory-யே project பெயர் ஆகும். /srv/mealie-லிருந்து பார்த்தால், volume-ன் பெயர் mealie_mealie-data ஆகும். இதனால்தான் முதல் கட்டளை docker volume ls என்று கொடுக்கப்பட்டுள்ளது: இந்த வழிகாட்டியில் உள்ள பெயரைப் பயன்படுத்தாமல், அந்த கட்டளை காட்டும் பெயரைப் பயன்படுத்தவும். Container-ஐ முதலில் நிறுத்துவது அவசியம், ஏனெனில் SQLite அடிக்கடி தரவுகளை எழுதிக்கொண்டே இருக்கும்; எனவே, இயங்கிக்கொண்டிருக்கும்போது நகலெடுத்தால், அந்த backup-ஐ மீண்டும் பயன்படுத்த முடியாமல் போகலாம்.
Mealie-ன் admin பகுதியில் இதற்கென பிரத்யேக backup பக்கம் உள்ளது; இது database-ஐ database.json என்ற zip கோப்பாக மாற்றும். ஒரு version-லிருந்து மற்றொரு version-க்கு மாறும்போது இதை மட்டும் நம்ப வேண்டாம்: எந்த Mealie version-ல் backup எடுக்கப்பட்டதோ, அதே version-ல் தான் அதை restore செய்ய முடியும்; version மாறினால் restore செய்யும்போது பிழை ஏற்படும். ஒரு server-லிருந்து மற்றொரு server-க்கு மாற, புதிய server-ல் அதே pinned version-ஐ இயக்கி, பின் volume-ஐ நகலெடுக்கவும் அல்லது archive-ஐ restore செய்யவும். Restore செய்யும் செயல்முறை தரவுகளை அழிக்கும் தன்மை கொண்டது: இது archive-ஐ ஏற்றுவதற்கு முன் தற்போதுள்ள database-ஐ நீக்கிவிடும், இதைத் திரும்பப் பெற முடியாது. செயல்முறை முடிந்ததும் நீங்கள் தானாகவே logout செய்யப்படுவீர்கள்.
ஒரே server-ல் இருக்கும் நகல் எப்போதுமே backup ஆகாது. எனவே, ஒரு கால அட்டவணையின்படி archive-ஐ வேறொரு இடத்திற்கு அனுப்ப வேண்டும்; இதற்காகத்தான் encrypted off-server backups with restic பயன்படுத்தப்படுகிறது.
Mealie-ஐ மேம்படுத்துதல்
cd /srv/mealie
sudo nano docker-compose.yml
sudo docker compose pull
sudo docker compose up -d
sudo docker compose logs -f mealieகோப்பில் உள்ள pinned version-ஐ உயர்த்தி, பின் புதிய image-ஐ pull செய்து recreate செய்யவும். புதிய image முதல்முறை தொடங்கும்போதே migrations தானாகவே இயங்கும். ஒரு major version மாற்றத்திற்கு முன் volume-ன் நகலை (copy) எடுத்துக்கொள்ளவும்; ஏனெனில், பாதியில் தோல்வியடையும் migration, பழைய image-ஆல் திறக்க முடியாத அளவிற்கு database-ஐ மாற்றக்கூடும். உங்கள் தற்போதைய version-க்கும் புதிய version-க்கும் இடைப்பட்ட அனைத்து release notes-களையும் வாசிக்கவும்.
இறக்குமதி (importer) தோல்வியடையும் போது
சில தளங்கள் எந்தவிதமான கட்டமைக்கப்பட்ட recipe தரவுகளையும் வெளியிடுவதில்லை. அத்தகைய சூழலில், Mealie ஒரு தலைப்பை மட்டும் இறக்குமதி செய்துவிட்டு, ingredient பட்டியலை காலியாக விட்டுவிடும். இதை எந்த configuration மூலமும் சரிசெய்ய முடியாது. அதற்குப் பதிலாக, recipe உரையை நீங்களே கைமுறையாக நகலெடுத்து ஒட்டவும்.
மற்றொரு வகை தோல்வி, recipe தளத்திற்கு முன்னால் உள்ள bot protection-ஆல் ஏற்படுகிறது. இது Mealie-க்கு recipe-க்கு பதிலாக ஒரு challenge பக்கத்தை அளிக்கிறது. Mealie ஏற்கனவே ஒரு browser போலச் செயல்பட்டு, தனது user agent-ஐ மாற்றுவதன் மூலம் இதைத் தவிர்க்க முயல்கிறது. ஒரு தளம் இன்னும் மறுத்தால், ஆவணப்படுத்தப்பட்ட விருப்பங்கள் இவை: சிறந்த reputation கொண்ட proxy வழியாக scraper-ஐ அனுப்புவது, அல்லது ஒரு FlareSolverr instance-ஐ இயக்கி உண்மையான browser மூலம் அந்த challenge-ஐத் தீர்ப்பது. இவை இரண்டுமே விருப்பத்தேர்வுகளே, மேலும் இவை container-ல் environment variables மூலம் அமைக்கப்படுகின்றன.
உங்கள் server-ஆல் அந்தத் தளத்தை அணுக முடியாததால் ஏற்படும் இறக்குமதி தோல்வி ஒரு தனிப்பட்ட சிக்கலாகும். scraper-ஐக் குறை கூறுவதற்கு முன்பு, curl -I https://the-site.example/recipe மூலம் அந்த server-லிருந்து தளத்தை அணுகிச் சோதிக்கவும், அதன் status line-ஐப் படிக்கவும்.
இதன் பயன்பாடு
Mealie ஒரு குடும்பத்திற்குத் தேவையான சிறந்த முதல் self-hosted application ஆகும், ஏனெனில் உங்களுடன் வசிப்பவர்கள் இதைக் கேட்டுக்கொள்ளாமலேயே பயன்படுத்துவார்கள். இது உங்கள் சொந்த புகைப்பட நூலகத்தை Immich மூலம் நிர்வகிப்பது போன்ற அதே வகை வேலையாகும், ஆனால் இது மிகவும் எளிமையானது. மேலும், இது இந்த ஆண்டு self-host செய்ய வேண்டிய பயனுள்ள விஷயங்களின் பட்டியலில் இடம் பெறுகிறது. ஒரு சிறிய server-ல் இவை இரண்டையும் வைத்திருக்க முடியும். அந்த இரண்டாவது பணிக்கு Immich மட்டுமே ஒரே தேர்வாக இருக்க வேண்டிய அவசியமில்லை. நீங்கள் இன்னும் முடிவெடுக்கவில்லை என்றால், PhotoPrism மற்றும் Immich ஆகியவற்றின் memory பயன்பாடு மற்றும் backup கட்டளைகள் குறித்துப் படிப்பது நல்லது, ஏனெனில் உங்கள் disk-ல் மீதமுள்ள இடத்தை ஒதுக்குவதற்கு முன் அவற்றின் வேறுபாடுகளைப் புரிந்துகொள்வது அவசியம். உங்கள் குடும்பத்தினர் உணவுகளைத் தவிர, திட்டங்கள் மற்றும் குறிப்புகளைப் பராமரிக்க விரும்பினால், self-hosted AFFiNE workspace அதே compose-file பயிற்சியைத் தான் மீண்டும் கோருகிறது. ஆனால், இதற்கு நான்கு containers மற்றும் Mealie-ஐ விட அதிக memory தேவைப்படும், எனவே உங்கள் server-ல் எவ்வளவு இடம் உள்ளது என்பதை முதலில் சரிபார்க்கவும். உங்கள் குடும்பத்தினர் உணவுகளுடன் உடற்பயிற்சிகளையும் கண்காணிக்க விரும்பினால், openGym உடற்பயிற்சிகளைப் பராமரிக்கிறது. இதற்கும் நீங்கள் இப்போது செய்த அதே pinned tag, compose file மற்றும் certificate முறையே தேவைப்படும். இரவு உணவிற்குப் பிறகு இதற்கென ஒரு தனி அம்சம் உள்ளது, ஏனெனில் Halcyon ஏற்கனவே உள்ள Jellyfin நூலகத்தை 1990-களின் வாடகை கடை போன்ற தோற்றத்திற்கு மாற்றுகிறது. இது நீங்கள் ஏற்கனவே இயக்கும் ஒரு சேவைக்கு முன்னால் அமையும் சிறிய container ஆகும், இதற்குத் தனியாக backup எடுக்க வேண்டிய database தேவையில்லை. இந்த வரிசையில் உள்ள அனைத்தும் குடும்பத்திற்கான பயன்பாடுகள் அல்ல. இதே பழக்கத்தை நீங்கள் அலுவலகப் பணிகளுக்கும் பயன்படுத்த விரும்பினால், self-hosted Chatwoot support desk அதே pinned tag மற்றும் certificate முறையைப் பயன்படுத்துகிறது. ஆனால், இதற்குப் பின்னால் Postgres, Redis மற்றும் outbound mail வசதிகள் தேவைப்படும். இது ஒரு recipe box-ஐ விட அதிக சுமை கொண்டதால், இதற்குத் தனி server-ஐப் பயன்படுத்துவது சிறந்தது.
FAQ
ஒரு recipe URL-ஐ இறக்குமதி செய்யும்போது ஏன் தோல்வியடைகிறது?
இதற்கு இரண்டு பொதுவான காரணங்கள் உள்ளன. ஒன்று, அந்தப் பக்கத்தில் கட்டமைக்கப்பட்ட recipe தரவுகள் இல்லை; இதனால் scraper எதையும் கண்டறிய முடியாமல், பொருட்கள் ஏதுமற்ற தலைப்பை மட்டும் தருகிறது. மற்றொன்று, அந்தத் தளத்தின் bot-protection அடுக்கு recipe-க்கு பதிலாக ஒரு challenge பக்கத்தைக் காட்டுகிறது. இரண்டாவது காரணத்திற்கு, சிறந்த address reputation கொண்ட ஒரு proxy-ஐ Mealie-ல் பயன்படுத்தலாம் அல்லது உண்மையான browser-ல் challenge-ஐத் தீர்க்கும் ஒரு self-hosted FlareSolverr instance-ஐப் பயன்படுத்தலாம். எதையும் மாற்றும் முன், curl -I மூலம் உங்கள் server அந்தப் பக்கத்தை அணுக முடிகிறதா என்பதை உறுதிப்படுத்தவும்.
எனக்கு PostgreSQL தேவையா, அல்லது SQLite போதுமானதா?
வீட்டு உபயோகத்திற்கு SQLite போதுமானது, அதுவே default-ஆகவும் உள்ளது. தரவு அடைவு (data directory) network attached storage-ல் இருந்தால் PostgreSQL-க்கு மாறவும். ஏனெனில், network filesystem-ல் SQLite பயன்படுத்தும்போது database locked பிழைகள் ஏற்படும் மற்றும் கோப்பு சிதையக்கூடும். PostgreSQL-ல் restore செய்யும்போது, archive-ஐ ஏற்றுவதற்கு முன் அனைத்தையும் நீக்குவதால், database user ஒரு superuser-ஆக இருக்க வேண்டும்.
domain பெயர் இல்லாமலேயே என்னால் Mealie-ஐ இயக்க முடியுமா?
ஆம், உங்கள் சொந்த network-ல் இயக்கலாம். BASE_URL-ஐ நீங்கள் உண்மையில் தட்டச்சு செய்யும் முகவரிக்கு (உதாரணமாக http://192.168.1.20:9925) அமைக்கவும், nginx-ஐத் தவிர்க்கவும். அழைப்பு மற்றும் கடவுச்சொல் மீட்டமைப்பு இணைப்புகள் BASE_URL-லிருந்து உருவாக்கப்படுகின்றன, எனவே தவறான மதிப்பு இருந்தால் மற்றவர்களால் அந்த இணைப்புகளைத் திறக்க முடியாது. இதை plain HTTP மூலம் இணையத்தில் பகிர வேண்டாம், ஏனெனில் அப்போது login விவரங்கள் மறைக்கப்படாமல் (in the clear) அனுப்பப்படும்.
எனது குடும்பத்தினருக்கு எப்படி தனித்தனி login வழங்குவது?
ALLOW_SIGNUP-ஐ "false" என அமைத்துவிட்டு, admin பகுதியில் இருந்து நபர்களைச் சேர்க்கவும்; இது அவர்களுக்கு அனுப்ப வேண்டிய ஒரு அழைப்பு இணைப்பை உருவாக்கும். சமையலறையைப் பகிர்ந்து கொள்ளும் அனைவரையும் ஒரே household-ல் சேர்க்கவும், அப்போதுதான் அவர்கள் meal plan மற்றும் shopping list-ஐப் பகிர்ந்து கொள்ள முடியும். Recipes குழுவில் உள்ள அனைத்து household-களுடனும் பகிரப்படும், எனவே தனித்தனி தொகுப்புகள் தேவைப்படுபவர்களுக்குத் தனித்தனி குழுக்கள் தேவை.
நான் Mealie-ஐ இயக்குவதை நிறுத்திவிட்டால் எனது recipes என்னவாகும்?
அவை அப்படியே இருக்கும். Admin backup உங்கள் தரவை JSON வடிவில் எழுதும். மேலும், Mealie-ஆல் recipes-ஐ plain markdown கோப்புகளாகவும் ஏற்றுமதி செய்ய முடியும். இவை எந்த மென்பொருளும் இல்லாமலேயே எந்த text editor-லும் படிக்கக்கூடியவை. உங்களுக்குத் தேவைப்படுவதற்கு முன்பே ஒருமுறை ஏற்றுமதி செய்து, அதைத் திறக்க முடிகிறதா என்று சரிபார்க்கவும்.