LifeFrame
部署指南

NAS 用户进阶版

本文档面向已完成 NAS 快速上手 或需要自定义存储、资源、备份与排错的用户,补充数据卷、资源限制、反向代理与常见问题。


一、适用型号与前置

1.1 支持的 NAS 与 Docker 入口

品牌要求Docker 入口
群晖 SynologyDSM 7.0+,支持 Btrfs 的机型套件中心Container Manager(原 Docker)
威联通 QNAPQTS 4.3.4+ 或 QuTSContainer Station
绿联、极空间等系统内提供 Docker / 容器功能按品牌说明进入容器管理

1.2 前置条件

  • 已安装并启用 Docker / Container Manager / Container Station
  • 若需在 NAS 上执行 docker compose 等命令,可开启 SSH(群晖:控制面板 → 终端机和 SNMP → 启动 SSH);仅用 Web 创建项目则不必。
  • 端口 388090009001 未被占用;防火墙需放行或仅内网访问。

1.3 资源建议

  • 内存:至少 2GB,推荐 4GB;lifeframe 建议不少于 1GB。
  • 存储:系统与镜像约 2–5GB;数据库与 MinIO 按使用量预留。

二、获取编排与 .env

从项目仓库获取 docker-compose.yml

.env 可不创建:镜像与各项均有默认。若需覆盖(如 POSTGRES_PASSWORDMINIO_ROOT_USERMINIO_PUBLIC_URL 等),在同目录创建 .env 并填写。部署后内网访问 **http://你的NAS的IP:3880**。


三、在 NAS 上创建并启动

3.1 群晖(Container Manager)

  1. Container Manager项目新增
  2. 项目名称:如 lifeframe
  3. 路径:选择 docker-compose.yml 所在目录(若有 .env 可同目录,非必须),如 /volume1/docker/lifeframe
  4. 若提供 配置文件 / 环境文件,指定 docker-compose.yml.env
  5. 勾选 启动时启用此项目,创建并启动

若项目不支持从 .env 加载,可不填变量,使用 compose 默认;需覆盖时在 编辑 中为对应容器添加环境变量。

3.2 威联通(Container Station)

  1. Container Station创建创建应用程序(或 Compose)
  2. 粘贴或选择 docker-compose.yml
  3. 若支持 .env 可选用;不必填 NEXT_PUBLIC_APP_URL 等,镜像已写死在 docker-compose.yml
  4. 创建并启动

3.3 绿联、极空间等

  • 支持 Compose / docker-compose:选择 docker-compose.yml 所在目录并启动。
  • 单容器:需分别创建 postgres、minio、lifeframe,并手动配置网络、数据卷与环境变量;建议用支持 Compose 的型号或 SSH 执行 docker compose up -d

3.4 通过 SSH 使用命令行

在存放 docker-compose.yml 的目录执行:

cd /path/to/lifeframe   # 如 /volume1/docker/lifeframe
docker compose up -d

迁移与 MinIO 建桶已自动完成,无需额外命令。


四、数据卷与存储位置

默认使用 Docker 命名卷postgres_dataminio_datalifeframe_datalifeframe_uploads),数据由 Docker 管理。

若要将数据放到 指定共享文件夹(便于备份、扩容),可修改 docker-compose.yml 中对应服务的 volumes,例如:

# 示例:群晖,需先在控制面板创建共享文件夹
volumes:
  - /volume1/docker/lifeframe/postgres_data:/var/lib/postgresql/data
  - /volume1/docker/lifeframe/minio_data:/data
  - /volume1/docker/lifeframe/lifeframe_data:/app/data
  - /volume1/docker/lifeframe/lifeframe_uploads:/app/uploads

路径按 NAS 实际共享目录填写,并确保容器有读写权限。


五、首次部署:迁移与 MinIO 建桶(已自动完成)

  • 数据库迁移:lifeframe 启动时自动执行 prisma migrate deploy
  • MinIO 桶init-minio-bucket 会在 minio 就绪后自动创建 lifeframe 桶。

无需任何终端或手动操作。创建并启动项目后,访问 http://你的NAS的IP:3880 即可。

5.1 初始化套餐(可选)

用于应用内配额与首用户;自托管无需配置付费。多数 NAS 用户可跳过。
若确需执行,需在能访问数据库且安装 Node/pnpm 的环境运行 pnpm run init:plans,详见 Docker 自托管部署指南


六、访问与端口

服务地址
LifeFrame 应用http://你的NAS的IP:3880
MinIO 控制台http://你的NAS的IP:9001

应用端口 3880 以降低与 3000、8080 等的冲突。
若经 Nginx / 域名:在 控制面板 → 登录门户 → 高级 → 反向代理服务器 将 80/443 转到 NAS:3880;HTTPS 需证书(Let's Encrypt 或 DSM 证书)。


七、资源限制(可选)

docker-compose.yml 中为 lifeframe 增加,例如:

lifeframe:
  deploy:
    resources:
      limits:
        memory: 1536M

群晖、威联通等若在 UI 提供「内存限制」,也可在界面设置。


八、备份与更新

  • 备份:定期备份 postgres_dataminio_data 所在卷或共享文件夹,以及 .envdocker-compose.yml
  • 更新:在项目目录执行 docker compose pulldocker compose up -d。lifeframe 每次启动会自动执行数据库迁移。

九、常见问题

9.1 容器反复重启

  • 查看 lifeframepostgres 日志(Container Manager / Container Station 的「日志」,或 SSH:docker compose logs lifeframedocker compose logs postgres)。
  • 常见原因:镜像拉取失败、端口 3880/9000/9001 被占用或防火墙拦截。

9.2 无法访问 3880 / 9000 / 9001

  • 检查 NAS 防火墙、路由器端口转发;群晖在 控制面板 → 网络 → 防火墙 中放行 3880、9000、9001。

9.3 照片上传或列表异常

  • MinIO 桶已自动创建;检查 MINIO_PUBLIC_URL:仅内网时可填 http://NAS的IP:9000,经 Nginx 代理时填实际访问根地址。

9.4 群晖「项目」中看不到 .env

  • 可不填任何变量,使用 compose 默认;仅在需覆盖(如自定义 POSTGRES_PASSWORD)时在 编辑 中添加。

相关链接