Folia 私有音乐站 NAS 部署教程Docker Compose 6 个容器10 分钟上线【免费下载链接】folia-major专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major想在同一个页面里搜网易云、酷狗、QQ 音乐顺便放 NAS 上的本地曲库Folia 把浏览器变成一个私有音乐站。在 NAS 上用 Docker Compose 拉起 6 个容器全程约 10 分钟不下载源码、不编译。你将得到在线多源播放登录网易云、酷狗、QQ 音乐QQ 支持扫码后即可直接搜索、播放全屏歌词动画播放时歌词铺满整屏做动画还能用 AI 给当前歌曲生成一套配色Navidrome 本地曲库接入后专辑、歌单、文件夹都以卡片浏览播放同样带全屏歌词多设备共用手机、平板、电脑打开同一地址就是一个站。部署前要准备什么NAS 上有 Docker Engine 24 和 Docker Compose v2 即可这是唯一的环境要求。新建一个空目录如docker/folia-docker从仓库里只放两个文件进去文件作用compose.yaml定义 6 个容器的完整栈.env.example环境变量模板拷过来后改名为.envfolia-docker/ ├── compose.yaml └── .env目录里只留这两个文件日后升级只需替换它们。再生成一把同步令牌openssl rand -hex 32把输出的随机串填进.env的SYNC_TOKEN。 它是同步客户端对接 Sync Server 时出示的凭据至少 8 位compose 文件里对它做了必填校验留空时docker compose config会直接报错栈起不来。.env里至少确认这两项其余保持模板默认FOLIA_IMAGE_NAMESPACEpapersman SYNC_TOKEN填入刚生成的随机串FOLIA_IMAGE_NAMESPACE指定镜像从哪个空间拉取缺失时整个栈拒绝启动。四条命令把栈跑起来docker compose config # 先校验配置变量写错在启动前就暴露 docker compose pull # 拉取全部 6 个镜像 docker compose up -d --wait # 启动并等每个服务通过健康检查 docker compose ps # 查看各容器状态--wait的意义在于命令会等到所有容器健康检查通过才返回不用自己猜启动时机。✅ 三条都满足即部署成功docker compose ps里 6 个容器全部healthy浏览器打开http://NAS-IP:18080能看到 Folia 首页curl http://NAS-IP:13000/health返回正常Sync Server 就绪。顺带看清这 6 个容器gatewayNginx托管前端并做全部对外路由/netease/、/kugou/、/qq/、/api/的分流规则写在 nginx.conf.templatebackend 承接 AI 主题、歌词分词等 Web APInetease-api / kugou-api / qq-api 是三个平台接口sync-server 是独立的数据同步服务用 SQLite 存储。三个平台接口被放在internal: true的私有网络里只能经 gateway 到达外部设备无法绕路直连每个容器还都设了read_only: true与no-new-privileges单个容器被打穿也难以落盘文件或提权。用好它Folia 接入 Navidrome两个字段让本地曲库跑起来Folia 自己不存音乐文件本地曲库交给 Navidrome 托管。进入 Folia 的 Navidrome 设置页填两项地址http://NAS-IP:4533Navidrome 的 Web 端口账号 / 密码任意一组 Navidrome 凭证连接成功后本地专辑、歌单、文件夹会整理成卡片搜索、播放、歌词匹配直接可用AI 密钥要不要填GEMINI_API_KEY 与 OPENAI_API_KEY 可留空两个 key 都留空播放、在线搜索、歌词都不受影响缺的只是 AI 主题生成与 AI 歌词分词。想让新打开的浏览器自动连上曲库的话在.env填NAVIDROME_URL/NAVIDROME_USERNAME/NAVIDROME_PASSWORD三项backend 会自动下发凭据。注意能打开 Folia 页面的人都能读到这组凭据建议在 Navidrome 里单开一个专用账号给它。Folia 反代 HTTPS 配置正式使用必做项局域网 HTTP 能正常搜索播放但浏览器不把它当安全上下文本地音乐目录导入File System Access API、PWA 离线安装、音频输出设备选择都会被关掉。正式使用要由 NAS 上现成的反向代理Nginx Proxy Manager、Traefik 等终结 HTTPShttps://folia.example.com/ - http://127.0.0.1:18080 https://sync.example.com/ - http://127.0.0.1:13000必做的三件事证书必须是浏览器信任的完整链自签名不算数反代要转发X-Forwarded-Host/X-Forwarded-Proto: https/X-Forwarded-For并把 HTTP 重定向到 HTTPSFolia 前面挂了代理时把代理自身地址填进FOLIA_TRUSTED_PROXIESgateway 才能还原真实客户端 IP把.env的FOLIA_HTTP_BIND与FOLIA_SYNC_BIND改为127.0.0.1流量只从代理进来。⚠️ 再提一个坑HTTP 与 HTTPS 是两个不同 origin切换之后原 HTTP 下的 IndexedDB、登录态、本地曲库索引不会自动迁移。长期运营更新镜像latest 不会自动拉新docker compose pull docker compose up -d回滚固定 FOLIA_STACK_VERSION 到旧版本在.env里加FOLIA_STACK_VERSION1.2.0现行版本号见 VERSION再跑上面两条更新命令。备份只需打包 FOLIA_SYNC_DATA_DIR数据都集中在FOLIA_SYNC_DATA_DIR默认./data/sync停服、打包、启动docker compose stop sync-server tar -czf folia-sync-backup.tar.gz ./data/sync docker compose start sync-server排障三条命令打底docker compose ps docker compose logs --tail200 gateway backend sync-server curl http://NAS-IP:18080/healthz变量细节与 QQ 登录态持久化的做法见 deploy/docker/README.md。附录 · 配置速查镜像与端口变量默认值作用FOLIA_IMAGE_NAMESPACEpapersman镜像命名空间缺失即拒绝启动FOLIA_STACK_VERSIONlatest5 个 Web 镜像的统一版本标签FOLIA_HTTP_PORT/FOLIA_SYNC_PORT18080/13000两个对外监听端口FOLIA_HTTP_BIND/FOLIA_SYNC_BIND0.0.0.0绑定地址走反向代理时改127.0.0.1AI 与行为变量默认值作用FOLIA_AI_PROVIDERgooglegoogle/gemini/openai决定 AI 主题与歌词分词走哪家模型FOLIA_FORWARD_CLIENT_IPfalse是否把浏览器 IP 转发给音乐平台保持false可避免登录地点显示“局域网”ENABLE_GENERAL_UNBLOCKfalse网易云接口的通用解锁开关Sync Server变量默认值作用SYNC_TOKEN无必填同步客户端 Bearer 令牌至少 8 位FOLIA_SYNC_DATA_DIR./data/syncSQLite 数据库持久化目录DASHBOARD_TOKEN空Sync 隐藏看板的访问令牌Navidrome 预置变量默认值作用NAVIDROME_URL/NAVIDROME_USERNAME/NAVIDROME_PASSWORD空三项齐填后新浏览器自动登录该 NavidromeNAVIDROME_PRESET_ALLOWprivate允许读取预置凭据的来源private表示仅局域网以后无论手机还是电脑打开同一个地址在线三源、NAS 曲库、全屏歌词动画就都在手边。【免费下载链接】folia-major专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考