Mealie: VPS에서 운영하는 나만의 레시피북, 식단 플래너, 장보기 목록
어떤 레시피는 북마크에, 다른 레시피는 대화방에, 세 번째 레시피는 스크린샷에 남아 있고, 네 번째 레시피는 광고와 긴 도입부 사이에서 다시 찾아야 합니다. Mealie는 이 모든 것을 한곳에 모아 줍니다. 링크를 붙여 넣으면 재료, 조리 방법, 사진이 포함된 레시피 카드가 만들어집니다. 이후 요리를 캘린더에 추가하고 필요한 식재료를 공동 장보기 목록으로 옮길 수 있습니다.
아래에서는 Mealie로 무엇을 할 수 있는지, 누구에게 유용한지, 어떤 서버가 필요한지, Docker Compose를 이용해 VPS에서 나만의 레시피 관리자를 실행하는 방법을 살펴보겠습니다.
Mealie란 무엇인가
Mealie는 레시피 저장, 식단 계획, 장보기 목록 관리를 위한 무료 셀프 호스팅 애플리케이션입니다. 서비스가 자신의 서버에서 실행되므로 데이터베이스를 어디에 저장할지, 누가 접근할지, 백업을 어떻게 만들지 직접 결정할 수 있습니다.
인터페이스는 컴퓨터나 휴대전화의 브라우저에서 열립니다. 레시피를 직접 만들거나 웹사이트에서 가져오고, 카테고리와 요리책으로 정리하며, 주간 식단에 추가하고 가족과 함께 사용할 수 있습니다.
Mealie와 일반 메모 폴더의 가장 큰 차이는 각 요소가 서로 연결된다는 점입니다. 레시피를 식단 계획에 추가하고, 장보기 목록과 연결하고, 태그로 필터링하며, API를 통해 자동화에 활용할 수 있습니다.
Mealie의 주요 기능
링크 하나로 레시피 가져오기
사용자가 URL을 붙여 넣으면 Mealie가 요리 이름, 인분 수, 재료, 조리 단계, 이미지를 추출하려고 시도합니다. 북마크 하나가 더 늘어나는 대신 수정하고 저장할 수 있는 깔끔한 레시피 카드가 남습니다.
이 기능은 레시피 주변에 광고와 불필요한 글이 많은 웹사이트에서 특히 유용합니다. 페이지가 표준적이지 않은 구조를 사용하면 일부 데이터를 직접 수정해야 할 수도 있습니다.
Mealie는 Paprika, Tandoor, Nextcloud Cookbooks를 비롯한 여러 레시피 관리자에서 컬렉션을 이전할 수도 있습니다. 빈 라이브러리에서 시작할 필요가 없습니다.
사진, 텍스트 또는 동영상에서 가져오기
선택형 AI 연동 기능은 텍스트, 요리책 페이지 사진 또는 동영상 링크를 바탕으로 레시피를 구성할 수 있습니다. 동영상의 경우 서비스가 음성 기록을 가져온 뒤 재료와 조리 순서를 추출합니다.
이 기능을 사용하려면 호환되는 AI 제공업체가 필요합니다. 외부 API 또는 Ollama와 같은 자체 OpenAI 호환 서비스를 연결할 수 있습니다. 활성화하기 전에 요청 비용과 선택한 제공업체의 데이터 처리 정책을 고려해야 합니다.
식단 플래너와 장보기 목록
요리는 날짜와 식사 종류별로 배치됩니다. 레시피, “어제 먹고 남은 음식”과 같은 메모 또는 규칙에 따라 무작위로 선택되는 요리를 추가할 수 있습니다. 예를 들어 금요일에는 빠르게 만들 수 있는 저녁 메뉴만 선택하도록 설정할 수 있습니다.
레시피의 재료는 장보기 목록으로 옮겨집니다. 휴대전화에서 항목을 체크하고 매장 구역별로 분류할 수 있습니다. 그 결과 Mealie는 단순한 보관함이 아니라 한 주 전체에 활용하는 실용적인 도구가 됩니다.
가족 공유와 자동화
Mealie는 사용자, 그룹, 가구 단위를 지원합니다. 가족은 하나의 공용 레시피 컬렉션을 사용하면서 필요에 따라 식단 계획과 장보기 목록을 별도로 유지할 수 있습니다.
REST API, 알림, Webhook을 이용하면 서비스를 다른 시스템과 연결할 수 있습니다. 예를 들어 공식 Home Assistant 연동은 예정된 식사를 캘린더에 표시하고 장보기 목록과 함께 작동합니다.
Mealie가 적합한 사람
레시피가 웹사이트, 메모, 사진에 흩어져 있거나, 매번 식단을 다시 짜야 하거나, 여러 사람이 같은 장보기 목록을 사용하거나, 자체 데이터베이스를 직접 관리하고 싶거나, 자동화가 필요한 경우 Mealie가 유용합니다.
늘 만드는 요리가 몇 가지뿐이고 Docker를 관리하고 싶지 않다면 이 서비스는 지나치게 복잡할 수 있습니다. 셀프 호스팅은 타사 클라우드 계정에 대한 의존을 없애지만, 서버는 여전히 업데이트하고 보호하며 백업해야 합니다.
Mealie에 필요한 서버 사양
공식 Docker Compose 구성에서 컨테이너 메모리는 1000MB로 제한됩니다. 소규모 설치에는 1 vCPU와 1GB RAM이면 충분하지만, 2GB VPS를 사용하면 Linux, Docker, 리버스 프록시, 업데이트를 위한 여유가 생깁니다. 디스크 공간은 주로 사진과 백업에 사용됩니다.
| 사용 시나리오 | CPU | RAM | 디스크 |
|---|---|---|---|
| SQLite를 사용하는 개인 데이터베이스 | 1 vCPU | 1GB | 10–20GB SSD |
| 가족 사용, HTTPS 및 다른 컨테이너 | 1–2 vCPU | 2GB | 20GB 이상 SSD |
| PostgreSQL 또는 많은 사용자 | 2 vCPU | 2–4GB | 20GB 이상 SSD |
이는 실용적인 시작값이며 엄격한 공식 최소 사양은 아닙니다. AI가 외부 API를 통해 작동하면 연산은 VPS에서 수행되지 않습니다. 로컬 모델에 필요한 리소스는 별도로 계산해야 합니다.
SQLite와 PostgreSQL 중 무엇을 선택할까
SQLite는 더 간단하며, Mealie 문서는 동시 작업이 많지 않은 1–20명 규모에 SQLite를 권장합니다. 개인 또는 가족용 설치에서는 일반적으로 가장 좋은 시작점입니다.
동시 부하가 높거나 퍼지 검색이 필요하거나 데이터를 네트워크 스토리지에 보관한다면 PostgreSQL을 선택하는 것이 좋습니다. NAS에서 SQLite를 사용하는 것은 권장되지 않습니다. 데이터베이스 잠금이나 데이터 손상이 발생할 수 있기 때문입니다.
Docker Compose로 VPS에 Mealie 설치하기
아래 예시는 SQLite를 사용합니다. 서버에 Docker Engine과 Docker Compose가 이미 설치되어 있어야 합니다. amd64 또는 arm64 기반의 64비트 Ubuntu나 Debian을 사용할 수 있습니다.
1. 디렉터리 만들기
sudo mkdir -p /opt/mealie
cd /opt/mealie
sudo nano docker-compose.yml2. 구성 추가하기
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:v3.24.0
container_name: mealie
restart: unless-stopped
ports:
- "9925:9000"
deploy:
resources:
limits:
memory: 1000M
volumes:
- mealie-data:/app/data/
environment:
ALLOW_SIGNUP: "false"
PUID: "1000"
PGID: "1000"
TZ: "Etc/UTC"
BASE_URL: "https://recipes.example.com"
volumes:
mealie-data:TZ와 BASE_URL을 자신의 값으로 바꾸세요. 2026년 8월 29일 기준 최신 릴리스는 v3.24.0입니다. 설치 전에 최신 버전을 확인하고, 예기치 않은 업데이트를 피하려면 latest 대신 구체적인 태그를 사용하세요.
3. Mealie 실행하기
sudo docker compose up -d
sudo docker compose pshttp://서버_IP:9925를 여세요. 기본 로그인은 [email protected], 비밀번호는 MyPassword입니다. 관리자 인증 정보를 즉시 변경하세요.
4. HTTPS 연결하기
지속적으로 접속하려면 도메인을 연결하고 Mealie 앞에 Nginx, Caddy 또는 Traefik을 배치한 뒤 TLS 인증서를 발급하세요. 이후 포트를 localhost로 제한합니다.
ports:
- "127.0.0.1:9925:9000"집 안에서만 서비스가 필요하다면 인터넷에 공개하지 않고 VPN을 통해 접속할 수 있습니다.
실행 후 설정할 항목
비밀번호를 변경하고, 공개 회원가입이 비활성화되어 있는지 확인한 뒤 가족 계정을 만드세요. 그다음 “빠른 요리”, “냉동 가능”, “저녁”과 같은 간단한 태그를 몇 개 추가하세요. 처음부터 구조를 지나치게 복잡하게 만들면 오히려 사용하기 불편합니다.
실제 레시피를 몇 개 가져오고, 인분과 측정 단위를 확인하고, 요리를 플래너에 추가한 뒤 첫 장보기 목록을 만들어 보세요. 이렇게 하면 Mealie의 핵심 사용 흐름을 하루 저녁이면 이해할 수 있습니다.
보안과 백업
인터넷에 공개하는 설치에는 강력한 비밀번호, HTTPS, 회원가입 차단, 정기 업데이트가 필요합니다. 문서는 URL을 가져오는 API 메서드에 대해서도 별도로 경고합니다. 요청 빈도를 제한하지 않으면 불필요한 부하가 발생할 수 있으므로 리버스 프록시에서 요청 속도 제한을 설정하는 것이 좋습니다.
가져오기 과정에서 컨테이너가 외부 주소에 접속하므로, 보안이 중요한 가정용 네트워크에서는 Mealie를 내부 서비스와 격리하는 것이 좋습니다.
관리자 패널에서는 전체 백업을 만들고 다운로드하고 복원할 수 있습니다. 하지만 Mealie는 더 이상 예약된 자동 백업을 수행하지 않습니다. SQLite를 사용할 때는 /app/data 볼륨 전체를 외부 저장소로 복사하는 것이 더 안전합니다. 같은 VPS에 저장된 백업은 서버 자체를 잃었을 때 보호해 주지 못합니다.
Mealie의 한계
가져오기 결과는 웹사이트의 마크업에 따라 달라지므로 일부 레시피 카드는 직접 수정해야 합니다. 원본 레시피가 표준 단위 대신 자유 형식 텍스트를 사용하면 재료 양을 비례 조정할 때 오류가 생길 수도 있습니다.
주요 클라이언트는 웹 인터페이스입니다. 모바일 브라우저에서도 편리하지만 네이티브 앱은 별도로 개발됩니다. 또한 Docker, HTTPS, 업데이트, 백업은 운영자가 직접 책임져야 합니다.
Mealie는 찾은 레시피를 저장하고, 먹을 날짜를 계획하고, 재료 구매를 잊지 않는 하나의 연속된 과정으로 사용할 때 특히 강력합니다.
tropic.host VPS에서 Mealie 실행하기
가정용 서버가 계속 켜져 있고 원격 접속이 이미 설정되어 있다면 충분히 사용할 수 있습니다. 하지만 가정용 라우터에서 포트 포워딩을 하지 않고 어디서든 레시피와 장보기 목록에 접근하려면 VPS가 더 편리합니다.
가족용 설치에는 RAM 2GB의 tropic.host Linux VPS를 사용할 수 있습니다. Mealie, Docker, 리버스 프록시를 실행하면서 합리적인 여유를 확보하기에 충분합니다. SQLite로 시작한 뒤 부하가 늘어나면 리소스를 확장하거나 PostgreSQL로 이전할 수 있습니다.
VPS는 백업을 대신하지 않습니다. 데이터베이스와 레시피 사진은 정기적으로 별도 위치에 내보내야 합니다.
간단한 결론
Mealie는 레시피를 깔끔한 형태로 저장하고, 식단 계획을 도우며, 재료를 공동 장보기 목록에 모아 줍니다. 가장 강력한 기능은 링크를 통한 가져오기이며, 가족 공유, 플래너, 다양한 연동 기능은 레시피 라이브러리를 일상적인 도구로 바꿔 줍니다.
개인 또는 가족용이라면 소형 VPS, Docker, SQLite로 충분합니다. 대신 업데이트, HTTPS, 백업을 지속적으로 관리해야 합니다.
FAQ
Mealie는 무료인가요?
네. 이 프로젝트는 AGPL-3.0 라이선스로 배포됩니다. VPS, 도메인, 외부 AI 요청에는 비용이 발생할 수 있습니다.
러시아어 웹사이트에서도 레시피를 가져올 수 있나요?
네. 페이지에 알아볼 수 있는 레시피 마크업이 포함되어 있다면 가능합니다. 품질은 사이트에 따라 달라지며, 오류는 직접 수정하거나 AI 가져오기 기능으로 보완할 수 있습니다.
Mealie에는 RAM이 얼마나 필요한가요?
SQLite를 사용하는 소규모 설치는 1GB부터 시작할 수 있습니다. Linux, 리버스 프록시, 다른 컨테이너도 실행하는 VPS라면 2GB가 더 실용적입니다.
도메인이 필요한가요?
아니요. 로컬 네트워크나 VPN을 통해 사용할 때는 IP 주소면 충분합니다. 인터넷에서 안전하게 접속하려면 도메인과 HTTPS가 더 편리합니다.
SQLite와 PostgreSQL 중 무엇을 선택해야 하나요?
SQLite는 더 간단하며 1–20명 규모의 대부분 설치에 적합합니다. 동시 부하가 높거나 NAS에 저장하거나 퍼지 검색이 필요하다면 PostgreSQL이 더 좋습니다.
