
Mealie 如何在 PostgreSQL 上部署并配置数据库连接与内存限制【免费下载链接】mealieMealie is a self hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. Easily add recipes into your database by providing the url and mealie will automatically import the relevant data or add a family recipe with the UI editor项目地址: https://gitcode.com/GitHub_Trending/me/mealie当你需要让 Mealie一个自托管的食谱管理与菜单规划应用支持较多并发用户或者想启用模糊搜索这类仅在 PostgreSQL 后端才可用的功能时就需要用 Docker Compose 部署 Mealie 并挂一个 PostgreSQL 数据库。本文基于 Mealie 官方安装文档给出一条完整路径准备 Docker 环境、写入 PostgreSQL 版 docker-compose、配置数据库连接变量、设置内存限制、启动并通过/admin/site-settings验证安装结果。准备条件Mealie 推荐使用 Docker 直接从 GitHub 容器镜像仓库拉取部署先确认主机上已安装 Docker 与 Docker Compose安装文档为 installation-checklist.md。架构支持范围以文档为准linux/amd64linux/arm64文档明确说明由于构建依赖限制Mealie 不支持 32 位 ARM 系统如果目标设备是较新的 Raspberry Pi 但跑在 32 位系统上文档建议升级到 64 位操作系统。镜像版本方面官方建议固定使用具体版本号格式vX.Y.Z而不是latest标签首次部署时去 README 顶部 latest release 徽标核对当前版本文档示例中使用的是v3.26.0。写入 PostgreSQL 版 docker-compose在服务器上为 Mealie 建一个目录文档示例mkdir mealie cd mealie创建docker-compose.yaml并写入下面这份官方 PostgreSQL 安装文档 中的模板services: mealie: image: ghcr.io/mealie-recipes/mealie:v3.26.0 # (3) container_name: mealie restart: always ports: - 9925:9000 # (1) deploy: resources: limits: memory: 1000M # (2) volumes: - mealie-data:/app/data/ environment: # Set Backend ENV Variables Here ALLOW_SIGNUP: false PUID: 1000 PGID: 1000 TZ: America/Anchorage BASE_URL: https://mealie.yourdomain.com # Database Settings DB_ENGINE: postgres POSTGRES_USER: mealie POSTGRES_PASSWORD: mealie POSTGRES_SERVER: postgres POSTGRES_PORT: 5432 POSTGRES_DB: mealie depends_on: postgres: condition: service_healthy postgres: container_name: postgres image: postgres:17 restart: always volumes: - mealie-pgdata:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: mealie POSTGRES_USER: mealie PGUSER: mealie POSTGRES_DB: mealie healthcheck: test: [CMD, pg_isready] interval: 30s timeout: 20s retries: 3 volumes: mealie-data: mealie-pgdata:其中几处按文档说明需要理解的点端口9925:9000Mealie 容器只需要暴露 9000 端口即可访问界面宿主机侧这里映射为 9925可改成任意你喜欢的端口。注意API_PORT的默认值就是 9000文档明确提示在 Docker 中运行不要修改它。memory: 1000M内存限制文档推荐显式设置。原因是当宿主机内存较大时Python 会预分配比实际需要的更多的内存导致容器在空闲时也占用较高内存设置内存限制可以改善空闲时的内存表现。image: ghcr.io/mealie-recipes/mealie:v3.26.0这是文档示例中的固定版本。部署前按 README 顶部 latest release 徽标核对当前最新版本号再填入文档建议固定版本号以便有意识地跟随版本升级。postgres服务使用postgres:17镜像并通过pg_isready做健康检查mealie 侧用depends_on的condition: service_healthy保证数据库就绪后再启动。BASE_URL: https://mealie.yourdomain.com是文档中的示例值需替换为你实际的访问地址该变量用于通知和 OIDC 回调 URL。示例中的TZ、PUID、PGID同样是文档示例值可按你的时区和宿主机用户权限调整。数据库连接变量的配置规则Mealie 通过环境变量连接数据库完整的变量表见 Backend Configuration。与数据库相关的变量及默认值如下变量默认值说明DB_ENGINEsqlite可选sqlite或postgres必须显式设为postgresPOSTGRES_USERmealiePostgres 数据库用户POSTGRES_PASSWORDmealiePostgres 数据库密码POSTGRES_SERVERpostgresPostgres 数据库服务器地址POSTGRES_PORT5432Postgres 数据库端口POSTGRES_DBmealiePostgres 数据库名POSTGRES_URL_OVERRIDENone可选用完整的 Postgres URL 覆盖上面这些POSTGRES_*变量两个可选分支POSTGRES_URL_OVERRIDE文档说明它是Optional Postgres URL override to use instead of POSTGRES_* variables即当你想直接用一条完整的连接 URL 而不是拆分变量时用它。Docker Compose secrets自 v2.4.2 起上述带标记的变量支持 Docker secrets 模式——给变量名加_FILE后缀并指向 secret 文件例如POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password。若基础变量与 secret 同时设置secret 优先。文档建议至少在共享环境中对POSTGRES_PASSWORD、SMTP_PASSWORD、LDAP_QUERY_PASSWORD使用 secret 模式示例中把POSTGRES_SERVER、POSTGRES_PORT、POSTGRES_DB、POSTGRES_USER、POSTGRES_PASSWORD都放进了 secret 文件。compose 中的POSTGRES_PASSWORD: mealie只是文档示例密码正式部署时请替换为强密码或改用上述 secret 方式。启动确认docker-compose.yaml位于你创建的 mealie 目录下在该目录执行docker compose up -d文档预期容器正常启动且无报错之后可以通过http://localhost:9925对应上面宿主机端口映射访问 Mealie 前端。验证安装按 Installation Checklist 的 Step 5启动完成后应看到登录界面使用默认凭据登录用户名changemeexample.com密码MyPassword登录后进入/admin/site-settings页面这里会汇总你的配置详情及各自状态。页面会对任何需要核实的警告或错误给出提示确认配置无误后再继续使用。边界与已知限制PostgreSQL 大版本升级文档在开头就警告升级 PostgreSQL 主版本时需要手动步骤参考 docker-library/postgres 的 issue 37不要期望只改镜像号就能平滑升级。选 PostgreSQL 的理由需要支持较多并发用户时考虑 PostgreSQL模糊搜索fuzzy search例如搜 brocolli 也能找到 broccoli soup只在 PostgreSQL 后端可用见 FAQ。如果计划把 Mealie 部署在 Network Attached StorageNAS上文档也建议使用 PostgreSQL 而不是 SQLite因为 SQLite 不适合配合 NAS 使用可能出现数据损坏或数据库锁错误。webworker 内存修改UVICORN_WORKERS等 webworker 设置可能带来未知的内存泄漏问题文档建议除非在多用户下确实遇到问题否则保持默认值 1。下一步安装验证通过后按 Installation Checklist 的 Step 6通过 Mealie UI 建立全站点数据备份——备份为普通.zip文件可下载或从挂载卷访问文档要求将备份存放在部署服务器之外的安全位置。【免费下载链接】mealieMealie is a self hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. Easily add recipes into your database by providing the url and mealie will automatically import the relevant data or add a family recipe with the UI editor项目地址: https://gitcode.com/GitHub_Trending/me/mealie创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考