Folia 私有音乐站 Docker 部署:2 个文件拉起 6 个容器,10 分钟上线 Folia 私有音乐站 Docker 部署2 个文件拉起 6 个容器10 分钟上线【免费下载链接】folia-major专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器项目地址: https://gitcode.com/GitHub_Trending/fo/folia-majorFolia 是以全屏歌词动画为核心的音乐播放器支持网易云、酷狗、QQ 音乐与 Navidrome 曲库。部署完成后浏览器打开 Folia 首页登录后搜索播放在线歌曲或连上 Navidrome 直接管理 NAS 上的本地音乐播放时歌词铺满整屏做动画。跑完之后能干什么这一节只回答值不值得折腾。三个核心能力在线多源播放登录网易云、酷狗、QQ 音乐QQ 支持扫码后搜索、播放、切歌全在网页里完成全屏歌词动画歌词按歌曲节奏铺满整屏填入 AI 密钥后还能给当前歌曲生成专属配色主题Navidrome 曲库接入NAS 上的本地音乐以卡片形式管理搜索、播放、歌词匹配同样可用。能力先看清楚下面进入正题怎么把它跑起来。最简部署两个文件到第一次打开页面前提一句话NAS 或服务器上要有 Docker Engine 24 和 Docker Compose v2。全程不下载源码、不编译。新建空目录例如docker/folia-docker从仓库的 deploy/docker/ 目录取两个文件放进去文件作用deploy/docker/compose.yaml定义 6 个容器的完整栈deploy/docker/.env.example环境变量模板复制后改名为.env.env里有两处必须动手。第一处是同步令牌这是 Sync Server 校验客户端身份用的必填项不填的话docker compose config会直接拒绝解析省得你启动后才发现openssl rand -hex 32把输出的 64 位十六进制串粘进SYNC_TOKEN。第二处确认FOLIA_IMAGE_NAMESPACEpapersman还在它指定从哪个镜像空间拉取缺失时整个栈拒绝启动。其余变量按模板默认即可。接下来四条命令逐条说明在干什么docker compose config只解析不执行先验证配置语法和必填项有没有写错。docker compose pull按.env里的命名空间和版本标签拉取全部 6 个镜像。docker compose up -d --wait启动并等待每个服务的健康检查通过后才返回。--wait是关键参数栈里每个容器都配了healthcheck用它等就绪不用自己猜启动时机。docker compose ps核对容器状态准备做成功判定。✅ 以下三条全部满足才算部署成功docker compose ps里 6 个容器gateway、backend、netease-api、kugou-api、qq-api、sync-server全部healthy浏览器打开http://NAS-IP:18080能看到 Folia 首页curl http://NAS-IP:13000/health返回正常说明 Sync Server 已就绪。页面能打开了下一步是真正用起来。第一次体验闭环登录、接曲库、看动画光打开页面不算部署完成按这个顺序走一遍登录在线源。在登录页选网易云或 QQ 音乐登录QQ 支持手机 QQ、微信和 QQ 音乐 App 三种扫码方式登录后从首页搜索一首歌播放。QQ 的装置识别信息会存在qq-api-state卷里容器重启后不需要重新注册装置。接入 Navidrome 曲库。Folia 本身不存音乐文件本地曲库由 Navidrome 托管。进入 Folia 的 Navidrome 设置页填入地址如http://NAS-IP:4533和任意一组 Navidrome 凭证。连接成功后本地专辑、歌单、文件夹会整理成卡片触发 AI 主题。在.env填入GEMINI_API_KEY或OPENAI_API_KEY二选一由FOLIA_AI_PROVIDER决定走哪家重建容器后就能为当前歌曲生成配色主题不填密钥播放和搜索完全不受影响只是没有 AI 功能。想要手机、平板打开新浏览器就自动连上 Navidrome 的在.env填NAVIDROME_URL/NAVIDROME_USERNAME/NAVIDROME_PASSWORD三项即可backend 会自动下发凭据。能打开 Folia 页面的人都能读到这组凭据建议为此建一个专用账号。体验闭环走完看看底下这套栈为什么长成这样。架构透视把信任面压到最小6 个容器各司其职容器职责gatewayNginx托管前端并路由所有请求/netease/、/kugou/、/qq/分流到平台接口/api/进 backend其余落到前端页面backendWeb API承接 AI 主题生成与歌词分词netease-api/kugou-api/qq-api三个平台的接口服务sync-server独立的数据同步服务SQLite 存储这套拆法买到的好处比多几个容器重要得多对外只开 18080 和 13000 两个端口。三个平台接口待在内网网络里没有任何宿主机端口设备无法绕过 gateway 直连 NAS 上的平台 APIsync-server 还在独立网络上不与 Web 内部服务互通。即使被攻破也难以落盘。所有容器都设了read_only: true和no-new-privileges文件系统只读且不允许提权攻击面被锁得很死。升级只换两个文件。目录里常年只有 compose.yaml 和 .env发新版时替换即可数据始终集中在FOLIA_SYNC_DATA_DIR一个目录里。长期对外使用上 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代理配好后改.env的FOLIA_HTTP_BIND与FOLIA_SYNC_BIND为127.0.0.1让流量只从代理进来。恰好三条注意事项证书要是浏览器信任的完整链自签名证书不算数反向代理需转发X-Forwarded-Host/X-Forwarded-Proto: https/X-Forwarded-For并把 HTTP 重定向到 HTTPSFolia 前面挂了代理时把代理自身地址填进FOLIA_TRUSTED_PROXIESgateway 才能还原真实客户端 IPHTTP 与 HTTPS 是两个不同 origin切换后原 HTTP 下的 IndexedDB、登录态、本地曲库索引不会自动迁移需重新登录一次。日常会碰到的事就四件更新、回滚、备份、排障。日常运维更新、回滚、备份、排障更新。latest标签不会自动拉取新镜像手动执行下面两条即可拉新并重建docker compose pull docker compose up -d回滚。在.env固定FOLIA_STACK_VERSION1.1.2现行版本号见 deploy/docker/VERSION再跑上面两条命令就能退到指定版本。备份。数据都集中在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变量多、记不住下面是速查表。配置速查镜像与端口变量默认值作用FOLIA_IMAGE_NAMESPACEpapersman镜像命名空间缺失即拒绝启动FOLIA_STACK_VERSIONlatest5 个 Web 镜像的统一版本标签FOLIA_SYNC_VERSIONlatestSync Server 独立版本标签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 主题与歌词分词走哪家模型GEMINI_API_KEY/OPENAI_API_KEY空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 预置与 QQ 登录态变量默认值作用NAVIDROME_URL/NAVIDROME_USERNAME/NAVIDROME_PASSWORD空三项齐填后新浏览器自动登录该 NavidromeNAVIDROME_PRESET_ALLOWprivate允许读取预置凭据的来源private表示仅局域网QQ_AUTH_SESSION_PATH/QQ_SESSION_SECRET空两项齐填后 QQ 登录态加密保存到qq-api-state卷重启免扫码更多细节包括 QQ 扫码的完整配置说明见 deploy/docker/README.md。两个文件、六个容器、十分钟你的私有音乐站就在了。【免费下载链接】folia-major专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考