惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
H
Help Net Security
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 司徒正美
量子位
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
Recorded Future
Recorded Future
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
aimingoo的专栏
aimingoo的专栏
I
InfoQ
Microsoft Security Blog
Microsoft Security Blog
Scott Helme
Scott Helme
The Last Watchdog
The Last Watchdog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
AI
AI
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
U
Unit 42
V2EX - 技术
V2EX - 技术
MongoDB | Blog
MongoDB | Blog
Schneier on Security
Schneier on Security
博客园 - Franky
H
Heimdal Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
W
WeLiveSecurity
P
Privacy & Cybersecurity Law Blog
Cloudbric
Cloudbric
B
Blog RSS Feed
N
News | PayPal Newsroom
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
雷峰网
雷峰网

iyear - 记录本是反抗

LFX Mentorship: 与 KubeVela 社区在开源相遇 - iyear OSPP2022 + DevStream社区 复盘 - iyear 《图解TCP/IP》读后感 - iyear - 记录本是反抗 Redis · 为什么哈希槽数为16384? - iyear 分布式 · 一致性哈希 - iyear 3200元32G1TSSD开发机DIY选型经历 - iyear - 记录本是反抗 企鹅电竞WebSocket弹幕协议浅析 - iyear - 记录本是反抗 2021 - iyear - 记录本是反抗 尝试理解前后端分离 - iyear - 记录本是反抗
在N1小钢炮上搭建私有音乐库koel - iyear - 记录本是反抗
博主: iyear · 2021-12-09 · via iyear - 记录本是反抗
  • 发布时间:
  • 2437次浏览
  • 暂无评论
  • 2501字数
  • 分类: 技术研究
  1. 首页
  2. 正文  

起源

高中开始一直有一个 Sony Walkman A55 ,里面放着不同平台聚合的喜欢的歌,但是一到大学就难受了,一个一半手机大小的砖一直要带着跑来跑去。但是在每个设备上都同步一遍几十G的音乐不现实,所以想着怎么在云端搭一个私人音乐库,所有新歌只需要在上面传一次就行。

选择

  1. SMB 。这是我一开始的选择,也是我认为最理想的。因为这样我就可以用 foobox 无缝切换,手机再搞个支持 SMB 的文件浏览器就实现了这个功能。

但是暴露 SMB 竟然成为了最麻烦的地方,由于 445 端口成为众多病毒的攻击点,运营商基本关闭了公网 445 端口,所以要暴露,必须在服务端和客户端各转发一次端口,而 Windows 又无法修改 SMB 的默认端口。所以这个计划真的要实行也很麻烦了。

  1. WebDav FTP ,最大的弱点就是没有支持良好的播放器,暴露倒是不难。
  2. Web Player ,所以只能找私人音乐库的在线播放器,最终找到了开源中还算不错的 koel (虽然功能其实也挺简陋的,性能可能因为 PHP 写的,也不太行)。

所需

  • 安装了小钢炮的 N1 (armbian openwrt 都可以,只要能装 docker)
  • 一个外接硬盘,并且已经挂载(自带8G Flash太小了)

目标

  • 完整的 koel 安装,使用轻量的 sqlite 数据库,官方推荐的 docker-compose 用的 mysqlN1 可能会跑不动
  • 白嫖钉钉内网穿透暴露公网
  • 写个 golang 小脚本批量导入 Sony A55 的歌单

安装

踩了不少坑,一定要按顺序操作

把官方提供的 https://github.com/koel/docker 跑起来

docker run -d --name koel -v 媒体目录(外接硬盘挂载点):/music -p 本地端口:80 hyzual/koel
# docker run -d --name koel -v /media/music:/music -p 7777:80 hyzual/koel

进入小钢炮 docker 控制面板,进入容器内部命令行,以下均在容器内执行

安装 vim ,编辑 .env 文件

apt-get install -y vim && vi .env

修改为以下内容

# 不要随便动KEY
APP_KEY=rUvKWgs38Fe/jJfnzWHVJEBg4gRBRlvUe392MsWMgIc=
DB_CONNECTION=sqlite-persistent
# 数据库位置
DB_DATABASE=/var/www/html/database/data.db
APP_NAME=Koel
# 指定容器内的读取目录
MEDIA_PATH=/music
APP_ENV=production
APP_DEBUG=true
# 同步目录歌曲时内存限制 MB
MEMORY_LIMIT=512
# hyzual/koel镜像自带ffmpeg
FFMPEG_PATH=/usr/bin/ffmpeg
# 输出比特率
OUTPUT_BIT_RATE=320
# 允许下载
ALLOW_DOWNLOAD=true

创建数据库

touch database/data.db

给予文件夹权限

chmod -R 777 .

初始化 koel

php artisan koel:init --no-assets

重新生成 APP_KEY

php artisan key:generate --force

打开 <ip>:<port> ,默认账号密码如下:

Email: [email protected]
Password: KoelIsCool

成功登录!记得修改默认密码

同步媒体文件夹

php artisan koel:sync

重建搜索索引

php artisan koel:search:import

设置管理员密码

php artisan koel:admin:change-password

内网穿透

以下在 ssh 小钢炮后台操作

下载钉钉内网穿透 arm64 版及配置文件: https://github.com/open-dingtalk/pierced/tree/113bab7e397a6471775f6534f4b277961b7a345f/linux_arm

通过各种途径上传到小钢炮中

安装 screen

https://www.right.com.cn/forum/thread-801304-1-1.html

启动 ding

./ding -config=./ding.cfg -subdomain=<子域名> <启动容器的宿主机端口号>
# ./ding -config=./ding.cfg -subdomain=mykoel 7777
# Ctrl + A + D 

然后就可以从外网访问了

迁移歌单

TODO

在N1小钢炮上搭建私有音乐库koel

 • 

起源

高中开始一直有一个 Sony Walkman A55 ,里面放着不同平台聚合的喜欢的歌,但是一到大学就难受了,一个一半手机大小的砖一直要带着跑来跑去。但是在每个设备上都同步一遍几十G的音乐不现实,所以想着怎么在云端搭一个私人音乐库,所有新歌只需要在上面传一次就行。

选择

  1. SMB 。这是我一开始的选择,也是我认为最理想的。因为这样我就可以用 foobox 无缝切换,手机再搞个支持 SMB 的文件浏览器就实现了这个功能。

但是暴露 SMB 竟然成为了最麻烦的地方,由于 445 端口成为众多病毒的攻击点,运营商基本关闭了公网 445 端口,所以要暴露,必须在服务端和客户端各转发一次端口,而 Windows 又无法修改 SMB 的默认端口。所以这个计划真的要实行也很麻烦了。

  1. WebDav FTP ,最大的弱点就是没有支持良好的播放器,暴露倒是不难。
  2. Web Player ,所以只能找私人音乐库的在线播放器,最终找到了开源中还算不错的 koel (虽然功能其实也挺简陋的,性能可能因为 PHP 写的,也不太行)。

所需

  • 安装了小钢炮的 N1 (armbian openwrt 都可以,只要能装 docker)
  • 一个外接硬盘,并且已经挂载(自带8G Flash太小了)

目标

  • 完整的 koel 安装,使用轻量的 sqlite 数据库,官方推荐的 docker-compose 用的 mysqlN1 可能会跑不动
  • 白嫖钉钉内网穿透暴露公网
  • 写个 golang 小脚本批量导入 Sony A55 的歌单

安装

踩了不少坑,一定要按顺序操作

把官方提供的 https://github.com/koel/docker 跑起来

docker run -d --name koel -v 媒体目录(外接硬盘挂载点):/music -p 本地端口:80 hyzual/koel
# docker run -d --name koel -v /media/music:/music -p 7777:80 hyzual/koel

进入小钢炮 docker 控制面板,进入容器内部命令行,以下均在容器内执行

安装 vim ,编辑 .env 文件

apt-get install -y vim && vi .env

修改为以下内容

# 不要随便动KEY
APP_KEY=rUvKWgs38Fe/jJfnzWHVJEBg4gRBRlvUe392MsWMgIc=
DB_CONNECTION=sqlite-persistent
# 数据库位置
DB_DATABASE=/var/www/html/database/data.db
APP_NAME=Koel
# 指定容器内的读取目录
MEDIA_PATH=/music
APP_ENV=production
APP_DEBUG=true
# 同步目录歌曲时内存限制 MB
MEMORY_LIMIT=512
# hyzual/koel镜像自带ffmpeg
FFMPEG_PATH=/usr/bin/ffmpeg
# 输出比特率
OUTPUT_BIT_RATE=320
# 允许下载
ALLOW_DOWNLOAD=true

创建数据库

touch database/data.db

给予文件夹权限

chmod -R 777 .

初始化 koel

php artisan koel:init --no-assets

重新生成 APP_KEY

php artisan key:generate --force

打开 <ip>:<port> ,默认账号密码如下:

Email: [email protected]
Password: KoelIsCool

成功登录!记得修改默认密码

同步媒体文件夹

php artisan koel:sync

重建搜索索引

php artisan koel:search:import

设置管理员密码

php artisan koel:admin:change-password

内网穿透

以下在 ssh 小钢炮后台操作

下载钉钉内网穿透 arm64 版及配置文件: https://github.com/open-dingtalk/pierced/tree/113bab7e397a6471775f6534f4b277961b7a345f/linux_arm

通过各种途径上传到小钢炮中

安装 screen

https://www.right.com.cn/forum/thread-801304-1-1.html

启动 ding

./ding -config=./ding.cfg -subdomain=<子域名> <启动容器的宿主机端口号>
# ./ding -config=./ding.cfg -subdomain=mykoel 7777
# Ctrl + A + D 

然后就可以从外网访问了

迁移歌单

TODO