Auddly Music Server的编译和安装

news2025/7/27 12:04:04

本文始于 202111 月,已经忘记了是什么原因一直没发,这次基本上全部重写了一遍,除了官方的图,所有图片都是重新截取的;

什么是 auddly ?

auddly 是一款自托管音乐流应用程序。

什么是 auddly-server ?

auddly-server 是一款开源、简单的自托管音乐流媒体服务器,之前叫 waveline-server,主要提供 API 接口服务。

在这里插入图片描述

关于 API 可以看官方的文档:https://github.com/Wellenline/auddly-server#api

构建镜像

如果你不想自己构建,可以跳过,直接阅读下一章节

Auddly 分为前、后端,dockhub 上虽然能搜到前端的镜像 wellenline/auddly,但是架构是 arm64 的,而且时间也有点久远了

服务端只能找到两年前的 wellenline/waveline-server

但这没什么关系,官方提供了 Dockerfile,只需要我们重新构建一下就可以了

服务端

构建服务端镜像的基本命令如下👇

# 下载代码
git clone https://github.com/Wellenline/auddly-server.git
  
# 或者加个代理  
git clone https://ghproxy.com/github.com/Wellenline/auddly-server.git
  
# 进入目录  
cd auddly-server
  
# 构建镜像
docker build -t wbsu2003/auddly-server:v1 .

Web 端

构建网页端镜像运行的基本命令如下👇

# 下载代码
git clone https://github.com/Wellenline/auddly.git
  
# 或者加个代理  
git clone https://ghproxy.com/github.com/Wellenline/auddly.git
  
# 进入目录  
cd auddly

# 修改 Dockerfile,解决报错
  
# 构建镜像
docker build -t wbsu2003/auddly:v1 .

# 运行容器
docker run -d \
   --name auddly-web
   -p 5121:80 \
   wbsu2003/auddly:v1

需要注意的是,Web 端官方的 Dockerfile 直接编译镜像会报错,需要做两处修改:

  1. 修改 node 的版本; 从 node:15-alpine3.10 更换为 node:lts-alpine
  2. Dockerfile 中需要屏蔽 COPY package-lock.json /app

安装

服务端

服务端涉及到两个镜像,我们采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: "3"

services:
  app:
    image: wbsu2003/auddly-server:latest
    container_name: auddly-server
    restart: always
    environment:
      - MONGO_URL=mongodb://auddly:YkdQ7iEBWTL7N2yk@mongodb/auddly?authSource=admin
      - MUSIC_PATH=/music
      - CACHE_PATH=/cache
      - JWT_SECRET=674666487456875
      - PORT=5000
      - HOST=http://192.168.0.197:5122
      - ADMIN_EMAIL=wbsu2003@gmail.com
      - ADMIN_PASSWORD=123456
    volumes:
      - ./music:/music
      - ./cache:/cache
    ports:
      - 5122:5000
    links:
      - mongodb
    depends_on:
      - mongodb

  mongodb:
    image: mongo:latest
    container_name: auddly-mongo
    environment:
      - MONGO_DATA_DIR=/data
      - MONGO_LOG_DIR=/dev/null
      - MONGO_INITDB_ROOT_USERNAME=auddly
      - MONGO_INITDB_ROOT_PASSWORD=YkdQ7iEBWTL7N2yk
    volumes:
      - ./data:/data
    command: mongod --auth --logpath=/dev/null

其中 mongodb 部分的变量说明👇:

可变
MONGO_DATA_DIR默认设为 /data
MONGO_LOG_DIR默认设为 /dev/null
MONGO_INITDB_ROOT_USERNAME用户,默认设为 auddly
MONGO_INITDB_ROOT_PASSWORD密码,用密码生成器生成

auddly-server 部分的变量说明👇:

可变
MONGO_URL数据库库地址
MUSIC_PATH音乐路径,默认为 /music
CACHE_PATH缓存路径,默认为 /cache
JWT_SECRET默认为 12345,似乎只能使用数字
SPOTIFY_IDSpotify 客户端 ID
SPOTIFY_SECRETSpotify 客户端 Secret
LAST_FM_API_KEYLast.fm 获取的 API Key
LAST_FM_API_SECRETLast.fm 获取的 Shared Secret
LAST_FM_USERNAMELast.fm 用户
LAST_FM_PASSWORDLast.fm 密码
PORT容器端口,默认为 5000
HOST主机地址:用的群晖主机+本机端口
ADMIN_EMAIL管理员账号
ADMIN_PASSWORD管理员密码
  1. 关于 SpotifyLast.fm,可以参考老苏写的『 音乐流媒体服务器Navidrome 』相关部分,但老苏觉得在国内作用不大,所以没设
  2. MONGO_URL 按前面的设置,拼接为 mongodb://auddly:YkdQ7iEBWTL7N2yk@adb/auddly?authSource=admin
  3. JWT_SECRET 用密码生成随机生成了一个纯数字的 674666487456875

然后执行下面的命令

# 新建文件夹 auddly 和 子目录
mkdir -p /volume2/docker/auddly/{cache,data,music}

# 进入目录
cd /volume2/docker/auddly

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

如果没什么意外应该会正常启动

Web 端

Web 端就一个镜像 ,用 docker cli 安装更快捷

# 运行容器
docker run -d \
   --name auddly-web \
   -p 5121:80 \
   wbsu2003/auddly:latest

运行

在浏览器中输入 http://群晖IP:5122 就能看到服务端的界面,只有 JSON 格式的数据

格式化之后

{  
    "load":{  
        "idle":2951412165,  
        "total":3066084135  
    },  
    "version":"5.0.1",  
    "arch":"x64",  
    "node_version":"v15.14.0",  
    "num_cpus":4,  
    "uptime":229.572266431,  
    "free_mem":366473216  
}

在浏览器中输入 http://群晖IP:5121 就能看到 Web 端的界面

这里需要输入服务端的地址,就是我们前面 docker-compose.yml 文件中设定的 HOST=http://192.168.0.197:5122

如果要从互联网访问,服务端和 Web 端都需要反代

接下来需要用前面设定的 ADMIN_EMAILADMIN_PASSWORD 登录

登录成功后的主界面还是空空的

测试用的音频还是那几个

主要是剪来剪去可以节省空间 😂

应该是没设定 SpotifyLastfm 的缘故,没有专辑封面

其实专辑内有 cover.jpg 文件

音轨模式也是一样

直接可以播放

在这里插入图片描述

进入右上角的 Queue 有播放列表和界面

再回到首页的 Dashboard,就会有统计信息了

小结

没有找到 Auddly支持的音频格式的说明,反正老苏能确定的是,mp3 没问题,整轨的 wav 肯定是不支持的

参考文档

GitHub - Wellenline/waveline-server: Simple self-hosted music streaming server
地址:https://github.com/Wellenline/waveline-server

Auddly - self hosted music streaming
地址:https://auddly.app/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/35325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

模拟实现ATM系统——Java

目录 一、内容简介 二、基本流程 三、具体步骤 1.定义Account类 2.菜单栏 3.账户注册 (1)根据卡号查询账户信息 (2)生成随机卡号 (3)注册账户 4.账户登录 (1)验证码 (2)登录 5.账户展示界面 6.用户操作 (1)查询账户 (2)存款 (3)取款 (4)转账 (5)修改密码 …

旋转的骰子(二)

1.动画——旋转的骰子 上一次我们做了一个旋转的骰子(参看第2讲),这次我们想要点击按钮,让骰子旋转到特定的点数停下来! 2.分析需求——庖丁解牛 a.立方体特定的朝向

LiveData源码分析

先放整理流程图: 1.postValue调2次只触发1次? postValue本质是把新值保存到LiveData的mPendingData成员变量里,版本号1,把执行Runnable post到主线程,在主线程setValue。 多次调用会更新mPendingData的值&#xff0c…

opencv的极线几何

一、理论介绍 当我们使用针孔相机拍摄图像时,我们会丢失一个重要的信息,即图像的深度。一个解决方案如我们的眼睛的方式使用两个相机(两只眼睛),这就是所谓的立体视觉。 PO1O2为极平面,l1和l2为极线,e1和…

基于webrtc的数据传输研究总结

什么是webrtc WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或&…

最新阿里云ECS服务器S6/C6/G6/N4/R6/sn2ne/sn1ne/se1ne处理器CPU性能详解

阿里云ECS服务器S6/C6/G6/N4/R6/sn2ne/sn1ne/se1ne处理器CPU性能怎么样?阿里云服务器优惠活动机型有云服务器S6、计算型C6、通用型G6、内存型R6、云服务器N4、云服务器sn2ne、云服务器sn1ne、云服务器se1ne处理器CPU性能详解及使用场景说明。 1、阿里云服务器活动机…

全局唯一ID

文章目录前言MongoDB ObjectIdTwitter SnowflakeUUID前言 基于数据库设置其实初始值,以及增量步长。基于ZK,Redis,改良雪花集中式服务生成,远程调用获取id。基于并行空间划分,Snowflake(8Byte字节64bit位)&#xff0c…

供应化学试剂mPEG-Azide,mPEG-N3,甲氧基-聚乙二醇-叠氮,CAS:89485-61-0

1、名称 英文:mPEG-Azide,mPEG-N3 中文:甲氧基-聚乙二醇-叠氮 2、CAS编号:89485-61-0 3、所属分类:Azide PEG Methoxy PEG 4、分子量:可定制,甲氧基-聚乙二醇-叠氮 5k、甲氧基-PEG-叠氮 10…

Higress 实战: 30行代码写一个 Wasm Go 插件

前言 在11月15号的直播 《Higress 开源背后的发展历程和上手 Demo 演示》中,为大家演示了 Higress 的 Wasm 插件如何面向 Ingress 资源进行配置生效,本文对当天的 Demo 进行一个回顾,并说明背后的原理机制。 本文中 Demo 运行的前提&#x…

PPOCR车牌定位模型推理后处理优化研究

综述 最近在研究基于PPOCR算法的车牌识别(LPR),部署模型后发现之前关于OCR文本定位的后处理策略在车牌识别中存在定位精度不够高,文本框偏移的问题,如: 经分析发现是之前的OCR后处理策略存在一定局限&am…

java刷题day 03

选择题: 解析: 父类private的成员变量,根据权限修饰符的访问控制范围,只有在类内部才能被访问,就算是他的子类,也不能访问。这里如果将Person p new Child();改成 Person p new Person();代码依然无法通过…

乐趣国学—品读《弟子规》中的“余力学文”之道

文章目录余力学文不力行 但学文 长浮华 成何人但力行 不学文 任己见 昧理真读书法 有三到 心眼口 信皆要方读此 勿慕彼 此未终 彼勿起宽为限 紧用功 工夫到 滞塞通心有疑 随札记 就人问 求确义房室清 墙壁净 几案洁 笔砚正墨磨偏 心不端 字不敬 心先病列典籍 有定处 读看毕 还原…

信号完整性测试,关于SMA装配的细节,很多人都忽视了

作者 | 萧隐君,仿真秀专栏作者 SMA转接头是射频微波、天线和高速电路测试经常用到的一种连接器,应用非常广泛,种类也很多。在信号完整性的测试夹具中,2.92mm的SMA用的较多,它的带宽可以到40GHz,对于25Gbps…

【全网独家,收藏吧】10年全部《信息资源管理》真题整理,第2章 信息化规划与组织

文章目录🔥 11 年 4 月《信息资源管理》真卷选择题名词解释综合分析题🔥 11 年 7 月《信息资源管理》真卷选择题名词解释题简答题⭐ 12 年 4 月《信息资源管理》真卷选择题简答题⭐ 12 年 7 月《信息资源管理》真卷选择题简答题⭐ 13 年 4 月《信息资源管…

计算机网络--- 电子邮件

(一)电子邮件系统的组成 电子邮件是一种异步通信方式,通信时不需要双方同时在场。电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可以随时上网到自己使用的邮件服务器进行读取。 一…

补盲激光雷达大爆发,各路产品谁领风骚?

11月伊始车载激光雷达赛道上演了冰火两重天的景象。国外Ouster与Velodyne LiDAR宣布合并以抱团取暖,主打OPA技术的Quanergy甚至股市停牌,一时风声鹤唳,寒意阵阵;而反观国内,禾赛、速腾、亮道相继发布纯固态补盲激光雷达…

龙格-库塔法(Runge-Kutta methods)

非线性的常微分方程通常是难以求出解析解的,只能通过多次迭代求近似的数值解。 龙格-库塔法(Runge-Kutta methods)是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。简写做RK法。 对于任意的Yf(X),假设某点(Xi,Yi)的斜…

固定资产管理系统能帮助企业解决哪些问题?

固定资产管理系统是企业信息化转型中重要的工具之一。固定资产在企业整体资金和运营管理中的占比非同一般,因此企业管理者对固定资产的重视程度也逐渐提升。随着企业固定资产数量和种类的增多、人员的增多,以及分支机构和部门的增多,单纯依靠…

数据安全治理白皮书4.0(附下载link)

数据安全治理白皮书是国内最早的数据安全治理白皮书系列,围绕数据安全治理,“新理论、新技术、新实践”,一次系统汇总、梳理分析与集中呈现,2018年-2021年,已发布1.0/2.0/3.0三个版本,2022年,已…

LeetCode | 循环队列的爱情【恋爱法则——环游世界】

兜兜转转⚪还是你❤✒前言环形队列的概念拓展:生产者与消费者一、题目描述二、思路分析🍑初次遇见她♀【是心动的感觉】🍑阻碍一:队空还是队满不好区分【性格互异】🍑解决方案🍑阻碍二:很难获取…