# AudioDock Windows 本地 Docker 部署完整教程# 适用Windows 10/11 Docker Desktop 本地硬盘不依赖 NAS# 样板压缩包wsl2、docker之类的都可以网上学最主要的nginx.conf、docker-compose.yml、.jwt_secret、文件夹架构、webroot压缩包里都有如果不知道怎么回事可以问ai教程不100%详细爱动手的小伙伴可以试试本人设备已实现未进行复现测试可能存在不足。部分引用来源网络侵删。链接https://pan.quark.cn/s/ce80cc1ae079?pwd3rvT提取码3rvT解压码柠檬美汁汁# 一、环境准备 # 1. 启用 Windows 子系统WSL # 解释/all 在所有用户上启用该功能/norestart 启用功能后不会立即重启dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart# 2. 启用虚拟机平台功能WSL2 依赖# 解释WSL2 依赖 Windows 虚拟机功能需要额外启用dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart# 3. 将 WSL 默认版本设置为 WSL2视情况而定wsl --set-default-version 2# 这里可能会提示# 未安装适用于 Linux 的 Windows 子系统。可通过运行 wsl.exe --install 进行安装。# 按任意键安装适用于 Linux 的 Windows 子系统。按 CTRL-C 或关闭此窗口以取消。# 此提示将在 60 秒后超时。新手不会设 Linux 用户名密码百度# 个人建议安装一下一般默认在 C 盘可以先装后搬本段可跳过# 搬迁步骤# 1. 关所有 WSL 实例wsl --shutdown# 2. 看发行版名字wsl -l -v# 假设叫 Ubuntu-22.04# 3. 导出 tar 备份中间文件随便放wsl --export Ubuntu-22.04 D:\wsl-backup.tar# 4. 注销 C 盘那份删 ext4.vhdx腾 C 盘空间wsl --unregister Ubuntu-22.04# 5. 导入到 D 盘wsl --import Ubuntu-22.04 D:\WSL\Ubuntu D:\wsl-backup.tar --version 2# 6. 删掉 tar可选Remove-Item D:\wsl-backup.tar# 验证wsl -d Ubuntu-22.04 进去后 df -h /看挂载路径是不是 /mnt/d/WSL/Ubuntu 那路。# 参考https://blog.csdn.net/dcdsc/article/details/148676255# 方法二、离线包直接 import 到 D跳过 C 盘# 不想在 C 盘留痕迹就下载官方 .appx 离线包装# 下载 Ubuntu 22.04 的 appxPowerShell 里Invoke-WebRequest -Uri https://aka.ms/wslubuntu2204 -OutFile Ubuntu.appx# 改后缀解压Rename-Item Ubuntu.appx Ubuntu.zipExpand-Archive Ubuntu.zip -DestinationPath D:\WSL\Ubuntu-raw# 直接 import 到 D 盘install.tar.gz 在解压目录里wsl --import Ubuntu-22.04 D:\WSL\Ubuntu D:\WSL\Ubuntu-raw\install.tar.gz --version 2# 全程 C 盘不沾边。# 将 WSL 默认版本设置为 WSL2 后就可以重启。# 二、装 Docker Desktop # 去官网下https://www.docker.com/products/docker-desktop/# win 下载 AMD64 就行# 安装时一路 Next重点出现 Use WSL 2 instead of Hyper-V 这种选项要勾上你 WSL2 已配好它一般会自认。# 装完启动 logout注销重启第一次打开会初始化一会儿看到鲸鱼图标稳住、系统托盘不红了就 OK。# 启动后顺手确认一下 WSL 集成新手容易漏# Docker Desktop → 右上齿轮 ⚙️ Settings → Resources → WSL Integration# 勾 ✅ Enable integration with my default WSL distro# 下面列表里把你装的 Ubuntu比如 Ubuntu-22.04也勾上# Apply Restart# 三、验一下 Docker 能不能用 # Windows 搜 PowerShell 打开不用管理员也行跑docker --versiondocker run hello-world# 出 Hello from Docker! 就说明通了可以继续。# 四、规划目录 # D:\Media\# ├── 有声书\# ├── 音乐\# ├── MV\# │# └── audiodock\ ← AudioDock 的工作目录不是媒体# ├── docker-compose.yml 待会建# ├── nginx.conf 待会建# ├── .jwt_secret 待会建密钥文件# ├── webroot 空文件夹下载前端静态文件# └── covers\ 空文件夹容器写封面缓存用# 五、Docker Desktop 的 File Sharing必做 # Docker Desktop → Settings → Resources → File Sharing# 点 ➕ 把 D:\或者至少 D:\Media加进去 → Apply Restart。# 这步意思是允许 Docker 容器读你 D 盘不加的话后面 docker-compose up 会报 permission denied。# 六、核心配置文件 # ----- 1. .jwt_secret 怎么建 -----# 在 audiodock 目录右键 → 新建 → 文本文档改名 .jwt_secret要点显示文件扩展名把 .txt 也删掉只剩 .jwt_secret。# 右键用记事本打开里面粘这串96d3a8befe2e2fbcc0eb4a9403b6ce556631c946c7019b076515528a79ca5a08# 建议随便改其中几个字母/数字比如把 96d3 改成 a6d3防爆破不改也能跑。# ----- 2. docker-compose.yml -----# D:\Media\audiodock\新建一个 docker-compose.yml内容整段复制# (提示- BACKEND_URLhttp://192.168.10.11:8860改成自己的 ipv4 地址这段不复制)services:app:platform: linux/amd64image: mmdctjj/audiodockcontainer_name: audiodock-appports:- 8860:3000 # Node API给桌面端用- 9961:9958 # Web UI对应 nginx.conf 的 9958environment:- NODE_ENVproduction- TXT_BASE_DIR/txt- AUDIO_BOOK_DIR/audio- MUSIC_BASE_DIR/music- MV_BASE_DIR/mv- CACHE_DIR/covers- DATABASE_URLfile:/data/dev.db- JWT_SECRET/.jwt_secret- PORT3000# 关键告诉前端后端地址必须与 nginx.conf 里的 $backend 对应- BACKEND_URLhttp://192.168.10.11:8860volumes:# 媒体文件使用命名卷解决 Windows 权限问题- media_txt:/txt- media_audio:/audio- media_music:/music- media_mv:/mv- media_covers:/covers# 服务目录 - ./webroot:/usr/share/nginx/html:ro # 前端文件- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro # Nginx 配置- ./data:/data # 数据库- ./.jwt_secret:/.jwt_secret # 密钥restart: unless-stoppednetworks:- audiodock-network# 命名卷定义绑定 Windows 文件夹volumes:media_txt:driver: localdriver_opts:type: nonedevice: D:\Media\书籍o: bindmedia_audio:driver: localdriver_opts:type: nonedevice: D:\Media\有声书o: bindmedia_music:driver: localdriver_opts:type: nonedevice: D:\Media\音乐o: bindmedia_mv:driver: localdriver_opts:type: nonedevice: D:\Media\MVo: bindmedia_covers:driver: localdriver_opts:type: nonedevice: D:\Media\封面o: binddata:driver: localdriver_opts:type: nonedevice: D:\Media\audiodock\datao: bindnetworks:audiodock-network:driver: bridge# ----- 3. nginx.conf -----# D:\Media\audiodock\新建一个 nginx.conf内容整段复制worker_processes 1;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 9958;server_name localhost;# 1. 静态文件 (前端 SPA)location / {root /usr/share/nginx/html;index index.html index.htm;# 针对 index.html: 永远不缓存if ($request_filename ~* ^.*?.(html|htm)$) {add_header Cache-Control no-store, no-cache, must-revalidate;}# 针对静态资源: 长期缓存if ($request_filename ~* ^.*?.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$) {add_header Cache-Control public, max-age31536000, immutable;}try_files $uri $uri/ /index.html;}# 2. API 代理完整版解决桌面端连接问题location /api/ {# 转发到后端 Node 服务proxy_pass http://127.0.0.1:3000/;# WebSocket 支持proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection upgrade;# 关键传递真实客户端信息proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;# 超时设置防止大文件扫描卡死proxy_connect_timeout 60s;proxy_send_timeout 60s;proxy_read_timeout 60s;}}}# ----- 4. 下载前端静态文件 -----# 在 D:\Media\audiodock 下新建 webroot 文件夹从 GitHub 下载前端文件# 访问 https://github.com/mmdctjj/AudioDock/tree/main/apps/web# 下载 dist 文件夹里的所有文件放到 D:\Media\audiodock\webroot# 七、启动 AudioDock # 在 D:\Media\audiodock\ 目录下右键 → 在终端中打开或 PowerShell 切进去 cd D:\Media\audiodock跑docker-compose up -d# 第一次会拉镜像等个一两分钟。跑完后docker ps# 能看到 audiodock-app 状态 Up 就对了。# 回到 PowerShell输入以下命令启动项目cd D:\Media\audiodockdocker-compose up -d# 国内拉 docker.ioDocker Hub被墙/超时了mmdctjj/audiodock 这个镜像在 Docker Hub 上没梯子/没加速器拉不下来。# 解决办法给 Docker Desktop 配国内镜像加速最快# Docker Desktop 图形界面推荐# 打开 Docker Desktop → 右上角 ⚙️ Settings# 左侧点 Docker Engine不是 Resources# 会看到一个 JSON在里面加一段 registry-mirrors完整示例{builder: {gc: {defaultKeepStorage: 20GB,enabled: true}},experimental: false,registry-mirrors: [https://docker.m.daocloud.io,https://hub-mirror.c.163.com,https://mirror.baidubce.com]}# 八、开网页初始化 # 浏览器打开http://localhost:9961同局域网设备用 http://你的Win IP:9961Win IP 在 ipconfig 里看一般是 192.168.x.x# 首次进来是登录页 → 点注册 → 用户名 密码 确认密码 → 注册完自动进首页。# 桌面端内网地址 http://你的WinIP:8860# 九、存音乐、有声书 # 注意他俩是分隔开的一本有声书文件夹直接拖到 D:\Media\有声书# 封面照片也放进去命名cover.jpg就可以加载了。