Skip to content

安装部署

本页用于完成 FlowMedia 的首次部署,并解释 docker-compose.yml 中每个关键参数的作用。

FlowMedia 推荐以 Docker Compose 方式部署。整体链路通常为:

CloudDrive2 挂载网盘 → FlowMedia 归档/同步 → Emby / Jellyfin / Plex / Navidrome 索引 → 客户端播放

系统要求

项目要求说明
操作系统Linux,推荐 Ubuntu 22.04+ / Debian 12+ / 群晖 / 飞牛 / Unraid需要能正常运行 Docker 和 FUSE 挂载
Docker24.0 或更高版本用于运行 FlowMedia、Emby、Navidrome、CloudDrive2 等容器
Docker Composev2推荐使用 docker compose 命令
CPU / 内存建议 2 核 CPU、8 GB 内存以上大库扫描、刮削、封面处理会占用一定资源
磁盘建议为配置目录预留 5 GB 以上用于数据库、日志、缓存、封面与字体
网络国内环境访问 TMDB / Telegram 通常需要代理代理只解决访问外部 API,不提供任何资源
可选组件CloudDrive2用于把 115 / 123 / 阿里云盘挂载到宿主机目录

目录准备

建议先在宿主机创建固定目录,后续升级容器时配置和数据不会丢失。

bash
mkdir -p /volume1/docker/flowmedia/config
mkdir -p /volume1/docker/flowmedia/cover
mkdir -p /volume1/docker/flowmedia/fonts
mkdir -p /volume1/media
mkdir -p /volume1/music
mkdir -p /volume1/CloudNAS
mkdir -p /volume1/docker/emby
mkdir -p /volume1/docker/navidrome/data
mkdir -p /volume1/docker/clouddrive2/config
宿主机目录容器内路径用途是否必填
/volume1/docker/flowmedia/config/configFlowMedia 数据库、日志、缓存、运行配置必填
/volume1/docker/flowmedia/cover/cover自定义媒体库封面,可覆盖内置封面可选
/volume1/docker/flowmedia/fonts/fonts自定义封面字体可选
/volume1/media/media视频 STRM / 软链接输出目录,也可作为本地视频库目录推荐
/volume1/music/music音乐软链接输出目录,也可作为本地音乐库目录推荐
/volume1/CloudNAS/CloudNASCloudDrive2 网盘挂载根目录推荐
/volume1/docker/emby/configEmby 配置目录使用 Emby 时必填
/volume1/docker/navidrome/data/dataNavidrome 数据目录使用 Navidrome 时必填
/volume1/docker/clouddrive2/config/configCloudDrive2 配置目录使用 CloudDrive2 时必填

路径可以按你的系统改成 /mnt/.../data/... 等,但同一条链路中的路径必须保持一致。例如 FlowMedia 输出到 /media,Emby 容器也要能看到同一个宿主机目录。

docker-compose.yml

下面是常见的单机部署示例。请先把 LICENSE_KEY、账号密码、宿主机目录按自己的环境改好。

yaml
version: "3.8"

services:
  flowmedia:
    image: treehello/flowmedia:latest
    container_name: flowmedia
    restart: always
    privileged: true
    ports:
      - "6688:6688"
      - "6689:6689"
      - "6699:6699"
    volumes:
      - /volume1/docker/flowmedia/config:/config
      - /volume1/docker/flowmedia/cover:/cover
      - /volume1/docker/flowmedia/fonts:/fonts
      - /volume1/media:/media
      - /volume1/music:/music
      - /volume1/CloudNAS:/CloudNAS:rslave
    environment:
      - LICENSE_KEY=请替换为你的授权码
      - DEFAULT_USERNAME=admin
      - DEFAULT_PASSWORD=请替换为强密码
      - TZ=Asia/Shanghai
      - PUID=0
      - PGID=0
      # 国内访问 TMDB / Telegram 时按需启用
      # - HTTP_PROXY=http://192.168.1.10:7890
      # - HTTPS_PROXY=http://192.168.1.10:7890
      # - ALL_PROXY=socks5://192.168.1.10:7890

  emby:
    image: emby/embyserver:latest
    container_name: emby
    privileged: true
    restart: always
    ports:
      - "8096:8096"
    volumes:
      - /volume1/docker/emby:/config
      - /volume1/media:/media
    environment:
      - PUID=0
      - PGID=0
      - UID=0
      - GID=0

  navidrome:
    image: deluan/navidrome:latest
    container_name: navidrome
    restart: always
    ports:
      - "4533:4533"
    volumes:
      - /volume1/docker/navidrome/data:/data
      - /volume1/music:/music
    environment:
      - ND_SCANSCHEDULE=5m
      - ND_LOGLEVEL=info

  clouddrive2:
    image: cloudnas/clouddrive2:latest
    container_name: clouddrive2
    restart: always
    privileged: true
    network_mode: host
    pid: host
    devices:
      - /dev/fuse:/dev/fuse
    environment:
      - CLOUDDRIVE_HOME=/config
    volumes:
      - /volume1/CloudNAS:/CloudNAS:rslave
      - /volume1/docker/clouddrive2/config:/config

FlowMedia 服务参数

参数示例作用填写建议
imagetreehello/flowmedia:latestFlowMedia 镜像名和版本一般保持 latest,需要固定版本时改为具体 tag
container_nameflowmedia容器名称保持默认即可
restartalways容器异常退出或宿主机重启后自动启动推荐 always
privilegedtrue允许容器访问挂载、文件权限等底层能力使用 CloudDrive2/FUSE 挂载目录时建议开启
6688:6688主服务端口Web UI、API、设置、任务管理都走该端口浏览器访问 http://服务器IP:6688
6689:6689Emby 反代端口Emby 客户端通过该端口走 302 直连使用 Emby 302 直连时必须映射
6699:6699Navidrome 反代端口Subsonic 客户端通过该端口走 302 直连使用 Navidrome 302 直连时必须映射
/config/volume1/docker/flowmedia/config:/config保存数据库、日志、缓存、运行配置必须持久化,不要放临时目录
/cover/volume1/docker/flowmedia/cover:/cover自定义媒体库封面不需要自定义封面可保留空目录
/fonts/volume1/docker/flowmedia/fonts:/fonts自定义封面字体不需要自定义字体可保留空目录
/media/volume1/media:/media视频输出目录,通常给 Emby / Jellyfin / Plex 索引FlowMedia 和媒体服务器必须挂同一个宿主机目录
/music/volume1/music:/music音乐输出目录,通常给 Navidrome 索引FlowMedia 和 Navidrome 必须挂同一个宿主机目录
/CloudNAS/volume1/CloudNAS:/CloudNAS:rslaveCloudDrive2 网盘挂载根目录群晖/Ubuntu 通常用 rslave;飞牛系统可改 rshared

环境变量参数

参数示例作用注意事项
LICENSE_KEYFlowMedia-xxxx-xxxx授权码必填。捐赠后获得,一机一容器一码
DEFAULT_USERNAMEadmin首次登录用户名只影响初始管理员创建,后续可在设置中修改
DEFAULT_PASSWORD强密码首次登录密码请不要使用示例弱密码,首次登录后建议立即修改
TZAsia/Shanghai容器时区影响日志、任务历史、Cron 定时判断
PUID0容器运行用户 UID权限不熟悉时可先用 0;想降权运行时填宿主机目录所有者 UID
PGID0容器运行用户 GIDPUID 配套使用
HTTP_PROXYhttp://192.168.1.10:7890HTTP 代理国内访问 TMDB / Telegram 时常用
HTTPS_PROXYhttp://192.168.1.10:7890HTTPS 代理建议与 HTTP_PROXY 一起配置
ALL_PROXYsocks5://192.168.1.10:7890SOCKS 代理使用 SOCKS5 代理时配置

Emby 参数说明

参数作用填写建议
8096:8096Emby 原生 Web 端口管理 Emby 用 8096,客户端 302 播放用 FlowMedia 6689
/configEmby 配置和数据库必须持久化
/mediaEmby 媒体库目录与 FlowMedia 的 /media 指向同一个宿主机目录
PUID/PGID/UID/GID文件权限与宿主机媒体目录权限保持一致,权限不熟悉时可先用 0
参数作用填写建议
4533:4533Navidrome 原生 Web 端口管理 Navidrome 用 4533,Subsonic 客户端 302 播放用 FlowMedia 6699
/dataNavidrome 数据目录必须持久化
/musicNavidrome 音乐库目录与 FlowMedia 的 /music 指向同一个宿主机目录
ND_SCANSCHEDULE自动扫描周期5m 表示每 5 分钟扫描一次;大库可改为 30m 或手动扫描
ND_LOGLEVEL日志级别一般保持 info

CloudDrive2 参数说明

参数作用填写建议
network_mode: host让 CloudDrive2 直接使用宿主机网络挂载和回调更稳定,推荐保留
pid: host与宿主机共享 PID 命名空间CloudDrive2/FUSE 场景常用配置
privileged: true允许使用 FUSE 挂载能力必须保留
/dev/fuse:/dev/fuseFUSE 设备映射必须保留,否则无法挂载网盘
CLOUDDRIVE_HOME=/configCloudDrive2 配置目录/config 卷配套
/CloudNAS:rslave网盘挂载根目录共享给其他容器飞牛系统如挂载不刷新,可尝试改为 rshared

启动与更新

首次启动:

bash
docker compose up -d
docker compose logs -f flowmedia

更新 FlowMedia:

bash
docker compose pull flowmedia
docker compose up -d flowmedia

停止服务:

bash
docker compose down

不要删除 /config 对应的宿主机目录,否则任务、历史、设置等运行数据会丢失。

首次登录

  1. 等待容器启动完成,首次启动通常需要几十秒。
  2. 浏览器访问 http://<服务器IP>:6688
  3. 使用 DEFAULT_USERNAME / DEFAULT_PASSWORD 中配置的账号密码登录。
  4. 进入「核心配置 → 用户」修改密码。
  5. 先配置网盘、CloudDrive2、TMDB、媒体服务器,再创建归档和同步任务。

部署前检查清单

检查项为什么重要
LICENSE_KEY 已填写未授权会导致服务无法正常使用
/config 已持久化防止升级或重建容器后数据丢失
/CloudNAS 能在 FlowMedia 容器中看到文件归档、同步、Webhook 都依赖该路径
/media 与 Emby 看到的是同一目录否则 Emby 无法索引 FlowMedia 生成的 STRM
/music 与 Navidrome 看到的是同一目录否则 Navidrome 无法索引音乐软链接
6688 / 6689 / 6699 已放通分别对应管理页面、Emby 反代、Navidrome 反代
代理可访问 TMDB / Telegram国内环境下刮削和订阅通常需要

下一步