Audio Pixel Studio部署教程Traefik动态路由Lets Encrypt自动证书签发想快速搭建一个属于自己的在线音频工作站吗Audio Pixel Studio就是这样一个开箱即用的工具。它界面清爽功能直接能帮你把文字变成语音也能把歌曲里的人声和伴奏分开。但今天我们不只讲怎么用而是要把它部署到你的服务器上并通过域名安全地访问。整个过程我们会用Traefik这个“智能交通警察”来管理网络请求并用Lets Encrypt自动搞定HTTPS证书实现全自动化的部署和运维。无论你是个人开发者想做个玩具还是小团队需要一个轻量的音频处理工具这篇教程都会带你一步步走通。我们尽量避开复杂的术语用最直白的方式让你在10分钟内看到成果。1. 项目初探Audio Pixel Studio是什么在动手部署之前我们先花一分钟了解一下我们要部署的这个“像素工作站”到底能做什么。这能帮你判断它是不是你需要的工具。1.1 核心功能一览Audio Pixel Studio的核心功能非常聚焦就两大块说和分。说语音合成你输入一段文字它就能用你选择的“声音”读出来。它背后用的是微软Edge浏览器的TTS文字转语音引擎所以音质不错支持的语言和音色也很多。比如你可以让一个叫“晓晓”的女生用中文读新闻或者让一个叫“Guy”的男生用英文朗读你的博客。分人声分离你上传一首歌它能尝试把唱歌的人声和背景的伴奏音乐分开生成两个独立的音频文件。这个功能基于一个简化版的UVR5算法对于一般的流行歌曲效果尚可适合快速处理但不是那种需要训练好几个小时的顶级分离效果。1.2 技术栈与特点这个项目的技术选型决定了它为什么适合我们这样部署Web框架基于Streamlit开发。这是一个专门为数据科学和机器学习应用快速构建界面的Python库。好处是开发快一个Python脚本就能变成一个带有交互组件的网页。对我们部署者来说这意味着它本质上是一个Python Web服务。设计风格自称“明亮像素风”界面比较简洁直观。轻量从项目结构看它没有复杂的数据库、消息队列等依赖就是一个相对独立的Web应用。简单来说它是一个功能单一、依赖清晰、用Streamlit写的Python Web应用。我们的任务就是把这个应用在服务器上跑起来并安全地暴露到公网。2. 部署环境准备工欲善其事必先利其器。在开始部署前我们需要准备好服务器和必要的工具。这里我假设你有一台安装了Linux系统如Ubuntu 22.04的云服务器并且拥有它的root或sudo权限。2.1 服务器基础配置首先通过SSH连接到你的服务器。我们进行一些基础配置更新系统包确保系统软件包是最新的。sudo apt update sudo apt upgrade -y安装必要工具安装一些后续会用到的工具比如用于下载文件的wget。sudo apt install -y wget curl git vim2.2 安装Docker与Docker Compose我们将使用Docker来运行Audio Pixel Studio和Traefik。Docker能帮我们解决环境依赖问题让部署变得一致且简单。安装Docker使用Docker官方提供的便捷安装脚本。curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh启动Docker并设置开机自启sudo systemctl start docker sudo systemctl enable docker将当前用户加入docker组避免每次都要用sudosudo usermod -aG docker $USER注意执行此命令后你需要退出当前SSH会话并重新登录这个改动才会生效。安装Docker ComposeDocker Compose用于定义和运行多容器的应用。我们用它来编排服务。sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose验证安装分别运行以下命令如果能看到版本号说明安装成功。docker --version docker-compose --version环境准备好了接下来就是重头戏配置我们的“智能网关”Traefik。3. 配置Traefik作为反向代理你可以把Traefik想象成你们公司的前台或者小区的门卫。所有外来访问HTTP/HTTPS请求都要先经过它。它的职责是问路根据来访者请求想找谁域名或路径把它指引到正确的内部服务比如我们的Audio Pixel Studio。办通行证自动为来访者办理HTTPS加密通行证SSL证书。负载均衡如果同一个服务有多个实例它还能平均分配流量。3.1 创建项目目录与Traefik配置我们在服务器上创建一个目录来存放所有配置和文件。mkdir -p ~/audio-pixel-studio cd ~/audio-pixel-studio在这个目录下我们首先为Traefik创建配置。Traefik的配置通常通过动态文件和Docker标签完成非常灵活。创建Traefik的动态配置文件目录mkdir -p traefik/config创建Traefik的静态配置文件(traefik.yml)这个文件告诉Traefik一些基础运行方式。vim traefik/traefik.yml将以下内容粘贴进去vim中按i进入编辑模式粘贴后按ESC输入:wq保存退出# traefik/traefik.yml api: dashboard: true # 启用管理仪表板 debug: true # 启用调试模式生产环境可关闭 providers: docker: endpoint: unix:///var/run/docker.sock # 监听Docker事件 exposedByDefault: false # 默认不暴露所有容器需要手动标签指定 file: directory: /etc/traefik/config # 动态配置文件的目录 watch: true # 监听文件变化自动重载配置 entryPoints: web: address: :80 # HTTP入口点用于HTTP到HTTPS的重定向和证书申请验证 websecure: address: :443 # HTTPS入口点 certificatesResolvers: myresolver: acme: email: your-emailexample.com # 替换为你的邮箱用于证书到期提醒 storage: /etc/traefik/acme/acme.json # 存储ACME证书的位置 httpChallenge: entryPoint: web # 使用HTTP-01挑战方式验证域名所有权重要请务必将your-emailexample.com替换为你自己的真实邮箱地址。创建动态配置文件(dynamic_conf.yml)这个文件可以定义一些共享的、不依赖于具体Docker容器的配置比如中间件。vim traefik/config/dynamic_conf.yml粘贴以下内容# traefik/config/dynamic_conf.yml http: middlewares: https-redirect: redirectScheme: scheme: https permanent: true # 将HTTP请求永久重定向到HTTPS这个中间件的作用是当有人用http://访问你的站点时自动跳转到https://。3.2 创建Docker Compose文件编排服务现在我们来创建主力的docker-compose.yml文件它将定义两个服务traefik和audio-pixel-studio。在项目根目录 (~/audio-pixel-studio) 下创建该文件vim docker-compose.yml粘贴以下内容并仔细阅读注释特别是需要替换的部分# docker-compose.yml version: 3.8 networks: web: external: true # 使用外部网络方便其他服务接入 internal: driver: bridge # 内部网络用于服务间通信 services: traefik: image: traefik:v3.0 container_name: traefik restart: unless-stopped security_opt: - no-new-privileges:true networks: - web - internal ports: - 80:80 # HTTP端口 - 443:443 # HTTPS端口 # - 8080:8080 # Traefik仪表板端口默认关闭按需开启 volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro # 挂载Docker套接字让Traefik能发现其他容器 - ./traefik/traefik.yml:/etc/traefik/traefik.yml:ro - ./traefik/config:/etc/traefik/config:ro - ./traefik/acme:/etc/traefik/acme # 挂载证书存储目录 labels: # 为Traefik自身启用仪表板并配置路由规则谨慎暴露到公网 # - traefik.enabletrue # - traefik.http.routers.traefik.ruleHost(traefik.your-domain.com) # 替换为你的域名 # - traefik.http.routers.traefik.serviceapiinternal # - traefik.http.routers.traefik.entrypointswebsecure # - traefik.http.routers.traefik.tls.certresolvermyresolver # - traefik.http.routers.traefik.middlewaresauth # 可以添加基础认证中间件 command: - --log.levelDEBUG # 日志级别调试用INFO或DEBUG生产用ERROR audio-pixel-studio: image: ccr.ccs.tencentyun.com/mirrors/audio-pixel-studio:latest # 使用合适的镜像 container_name: audio-pixel-studio restart: unless-stopped networks: - internal # 只接入内部网络不直接暴露端口 # 端口映射已由Traefik处理此处无需暴露 # ports: # - 8501:8501 environment: - STREAMLIT_SERVER_PORT8501 # Streamlit默认端口 - STREAMLIT_SERVER_ADDRESS0.0.0.0 volumes: - ./app_data/logs:/app/logs # 挂载日志目录持久化数据 labels: - traefik.enabletrue # 启用Traefik代理 - traefik.http.routers.audio-pixel-studio.ruleHost(audio.your-domain.com) # 核心定义域名规则请替换 - traefik.http.routers.audio-pixel-studio.entrypointswebsecure # 使用HTTPS入口点 - traefik.http.routers.audio-pixel-studio.tls.certresolvermyresolver # 使用上面定义的证书解析器 - traefik.http.services.audio-pixel-studio.loadbalancer.server.port8501 # 告诉Traefik后端服务端口 # 将HTTP流量重定向到HTTPS应用全局中间件 - traefik.http.routers.audio-pixel-studio-http.ruleHost(audio.your-domain.com) - traefik.http.routers.audio-pixel-studio-http.entrypointsweb - traefik.http.routers.audio-pixel-studio-http.middlewareshttps-redirectfile关键修改点务必操作域名将文件中所有的audio.your-domain.com替换为你实际想要绑定的域名例如audio.example.com。你需要确保这个域名的DNS记录已经指向了你当前服务器的公网IP地址。镜像ccr.ccs.tencentyun.com/mirrors/audio-pixel-studio:latest是一个示例镜像地址。你需要替换为Audio Pixel Studio项目提供的正确Docker镜像地址。如果项目没有官方镜像你可能需要自己构建这超出了本基础教程的范围。Traefik仪表板配置中注释掉了Traefik仪表板的外部访问。如果你需要可以取消注释那几行labels并将traefik.your-domain.com替换为一个域名如traefik-admin.example.com并强烈建议配置HTTP基础认证等安全措施后再暴露到公网。3.3 创建Docker网络并启动服务创建外部网络我们在Compose文件中声明了要使用一个外部的web网络。docker network create web启动所有服务在docker-compose.yml所在目录执行。docker-compose up -d-d参数表示在后台运行。查看服务状态docker-compose ps你应该看到traefik和audio-pixel-studio两个服务的状态都是Up。查看实时日志如果需要调试# 查看所有服务日志 docker-compose logs -f # 查看特定服务日志 docker-compose logs -f audio-pixel-studio4. 验证部署与使用如果一切顺利现在你应该可以通过浏览器访问你的Audio Pixel Studio了。访问应用打开浏览器输入https://你设置的域名例如https://audio.example.com。首次访问可能会稍慢因为Traefik正在后台通过Let‘s Encrypt自动为你申请和配置SSL证书。如果看到证书错误请等待一两分钟再刷新。成功后浏览器地址栏会显示绿色的锁标志表示连接是安全的HTTPS。使用Audio Pixel Studio界面加载后你应该能看到简洁的“像素风格”界面。尝试在“语音合成”标签页输入文字选择音色点击合成。如果网络通畅很快就能听到生成的语音。在“人声分离”标签页上传一个MP3文件测试分离功能。验证自动证书证书是自动管理的。你可以通过查看Traefik的挂载卷来确认证书是否已生成。ls -la ~/audio-pixel-studio/traefik/acme/你应该能看到一个acme.json文件里面就存储着你的HTTPS证书信息。证书到期前Traefik会自动续期你完全不用操心。5. 总结与后续管理至此我们已经完成了Audio Pixel Studio基于Traefik的自动化部署。我们来回顾一下这个方案带来的好处自动化HTTPSLet‘s Encrypt提供免费证书Traefik自动申请和续期省去手动管理的麻烦。动态服务发现未来如果你想在同一个服务器上部署其他Web应用比如另一个博客或工具只需要在新的Docker Compose服务中添加类似的traefik标签指定一个新的域名规则Traefik就会自动识别并为其配置路由和HTTPS无需修改Traefik本身的配置。安全隔离应用服务如audio-pixel-studio只接入内部网络不直接暴露端口由Traefik统一对外提升了安全性。统一入口所有服务都通过80/443端口对外由域名区分管理起来非常清晰。常用管理命令停止服务docker-compose down重启服务docker-compose restart查看日志docker-compose logs -f [服务名]更新镜像并重启假设镜像有更新docker-compose pull docker-compose up -d注意事项确保服务器防火墙开放了80和443端口。妥善保管traefik/acme/acme.json文件它包含了你的证书私钥。如果应用无法访问首先检查docker-compose logs查看错误信息并确认域名DNS解析已生效。这个部署框架具有很强的通用性。掌握了它你就能轻松地将许多类似的Docker化Web应用部署上线并享受自动化的HTTPS和路由管理带来的便利。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。