第一次提交
This commit is contained in:
97
src/apps/01Jellyfin.md
Normal file
97
src/apps/01Jellyfin.md
Normal file
@@ -0,0 +1,97 @@
|
||||
---
|
||||
title: Jellyfin音乐目录结构规范总结
|
||||
icon: music
|
||||
date: 2025-05-23
|
||||
category:
|
||||
- 应用
|
||||
tag:
|
||||
- jellyfin
|
||||
---
|
||||
|
||||
|
||||
Jellyfin音乐目录结构规范总结
|
||||
<!-- more -->
|
||||
|
||||
|
||||
# Jellyfin音乐目录结构规范总结
|
||||
|
||||
Jellyfin作为一款优秀的媒体服务器,对音乐文件的组织有着特定的规范和建议,以确保最佳的识别和播放体验。本文将详细总结Jellyfin音乐目录的结构规范,包括专辑组织、多碟片处理、歌词文件管理、图片资源使用以及文件格式兼容性等方面。
|
||||
|
||||
## 专辑组织基本原则
|
||||
|
||||
Jellyfin的音乐库管理遵循"一个文件夹一个专辑"的基本原则。每个专辑必须被包含在单独的文件夹中,这是Jellyfin识别专辑的基础。值得注意的是,Jellyfin并不严格要求您如何组织这些专辑文件夹,只要确保每个专辑都有其独立的文件夹即可。例如,您可以按艺术家创建上层文件夹,然后在其中放置该艺术家的各个专辑文件夹;也可以直接在音乐根目录下放置各个专辑文件夹。
|
||||
|
||||
文件命名方面,Jellyfin主要依赖音频文件中嵌入的元数据进行识别,而非文件名本身。这意味着即使文件名不规范,只要音频文件中包含正确的元数据信息(如曲目标题、艺术家、专辑名等),Jellyfin仍能正确识别。只有在找不到其他元数据的情况下,Jellyfin才会使用文件名作为曲目标题。
|
||||
|
||||
尽管如此,文件命名时仍应避免使用特殊字符,因为它们可能导致问题。已知会引起问题的字符包括:`<`、`>`、`:`、`"`、`/`、`\`、`|`、`?`、`*`。这些字符在文件系统中有特殊含义,可能导致文件访问或识别错误。
|
||||
|
||||
## 多碟片专辑处理
|
||||
|
||||
对于包含多张碟片的专辑,Jellyfin主要通过音频文件元数据中的"碟片编号"和"总碟片数"字段进行识别。处理多碟片专辑时,有两种组织方式:
|
||||
|
||||
第一种方式是将所有碟片的曲目放在同一个专辑文件夹中,通过元数据区分不同碟片的曲目。这种方式简单直接,完全依赖元数据进行组织。
|
||||
|
||||
第二种方式是在专辑文件夹内为每张碟片创建单独的子文件夹(如"Disc 1"、"Disc 2"等),然后将相应碟片的曲目放入对应子文件夹。这种方式在视觉上更加清晰,但需要注意的是,嵌入的元数据优先级仍高于文件夹结构,因此确保元数据正确尤为重要。
|
||||
|
||||
无论采用哪种组织方式,确保音频文件中包含正确的碟片信息元数据是关键,这样Jellyfin才能准确识别和组织多碟片专辑的内容。
|
||||
|
||||
## 歌词文件管理
|
||||
|
||||
Jellyfin支持为音乐文件添加歌词,实现边听歌边看歌词的功能。歌词文件必须与对应的音频文件位于同一文件夹中,且文件名(不含扩展名)必须完全匹配。例如,音频文件"01 Death Eternal.mp3"对应的歌词文件应为"01 Death Eternal.lrc"、"01 Death Eternal.elrc"或"01 Death Eternal.txt"。
|
||||
|
||||
Jellyfin支持两种类型的歌词文件:同步歌词和非同步歌词。同步歌词是交互式的,允许用户点击任意行跳转到歌曲中对应的时间点。同步歌词文件通常包含时间戳信息,格式如下:
|
||||
|
||||
```
|
||||
[ar: 艺术家名称]
|
||||
[ti: 歌曲标题]
|
||||
[al: 专辑名称]
|
||||
[by: 作者]
|
||||
[length: 2:57]
|
||||
[00:10.89]第一行歌词
|
||||
[00:14.58]第二行歌词
|
||||
...
|
||||
```
|
||||
|
||||
创建同步歌词可以手动完成,但这可能耗时且不够精确,建议使用如MiniLyrics等歌词同步软件辅助完成。
|
||||
|
||||
非同步歌词则更容易实现,但用户跟唱时可能不够方便。非同步歌词文件格式简单,仅包含按顺序排列的歌词文本,没有时间戳信息:
|
||||
|
||||
```
|
||||
第一行歌词
|
||||
第二行歌词
|
||||
...
|
||||
```
|
||||
|
||||
## 图片资源管理
|
||||
|
||||
Jellyfin音乐库中的图片资源主要有三种类型:封面图(Primary)、背景图(Backdrop)和标志图(Logo)。这些图片可以来自不同来源,但外部图片文件优先级最高。
|
||||
|
||||
外部图片文件应放置在媒体文件旁边,即与音频文件位于同一文件夹中。如果没有提供封面图,Jellyfin会回退使用第一个带有嵌入专辑图片的音轨。如果没有可用的背景图或标志图,Jellyfin会回退使用专辑艺术家的相应图片。
|
||||
|
||||
不同类型的图片文件可以使用以下命名:
|
||||
- 封面图(Primary):folder、poster、cover、default
|
||||
- 背景图(Backdrop):backdrop、fanart、background、art、extrafanart
|
||||
- 标志图(Logo):logo
|
||||
|
||||
对于背景图,可以提供多张图片实现循环切换效果。只需在文件名后直接或在连字符后添加数字即可,如"backdrop1.jpg"、"backdrop-2.jpg"等。
|
||||
|
||||
## 文件格式兼容性
|
||||
|
||||
Jellyfin支持大多数常见的音乐格式,但有一些例外情况需要注意:
|
||||
|
||||
1. 仅包含音频的MP4文件:".mp4"文件不会被识别为音乐,应将其重命名为".m4a"。
|
||||
2. 仅包含音频的MKV/WebM文件:".mkv"和".webm"文件不会被识别为音乐,应将其重命名为".mka"。
|
||||
3. WebA文件:".weba"文件不受支持,应将其重命名为".mka"。
|
||||
4. 带有嵌入WebP图片或ID3标签的".flac"文件可能在基于Chromium的浏览器(Chrome、Edge、Opera、Brave等)或Firefox中无法播放。如遇此问题,请在客户端设置中启用"始终重新封装FLAC音频文件"选项。
|
||||
5. 使用ID3v1标签的文件大多数字段长度限制为30字节,超出部分将被截断。建议升级到ID3v2.4。
|
||||
|
||||
对于有问题的文件,可以使用ffmpeg将其重新封装为".mka"容器,命令如下:
|
||||
```
|
||||
ffmpeg -i <输入文件> -c:a copy <输出文件>.mka
|
||||
```
|
||||
|
||||
需要注意的是,重新封装过程可能会导致元数据混乱,嵌入的图片可能无法保留,因此可能需要手动或使用其他程序恢复元数据。
|
||||
|
||||
## 总结
|
||||
|
||||
Jellyfin的音乐目录结构规范主要围绕"一个文件夹一个专辑"的核心原则展开,同时提供了灵活的组织方式。正确的元数据是Jellyfin识别音乐内容的关键,而外部资源如歌词和图片则需要遵循特定的命名和放置规则。了解并遵循这些规范,可以帮助用户构建一个组织良好、功能完善的Jellyfin音乐库,获得最佳的音乐欣赏体验。
|
||||
258
src/apps/07RustDesk自建远程桌面服务器.md
Normal file
258
src/apps/07RustDesk自建远程桌面服务器.md
Normal file
@@ -0,0 +1,258 @@
|
||||
---
|
||||
icon: tabler:device-desktop-analytics
|
||||
date: 2025-07-04
|
||||
category:
|
||||
- 实用工具
|
||||
tag:
|
||||
- RustDesk
|
||||
title: RustDesk自建远程桌面服务器
|
||||
---
|
||||
在日常工作中,我们经常需要远程控制电脑,比如远程家中电脑进行下载、远程办公,或者帮助朋友解决技术问题。除了向日葵、QQ远程、ToDesk等商业软件,RustDesk提供了一个开源、安全、高效的替代方案。
|
||||
<!-- more -->
|
||||
# RustDesk自建远程桌面服务器
|
||||
|
||||
## 为什么选择RustDesk?
|
||||
|
||||
在日常工作中,我们经常需要远程控制电脑,比如远程家中电脑进行下载、远程办公,或者帮助朋友解决技术问题。除了向日葵、QQ远程、ToDesk等商业软件,RustDesk提供了一个开源、安全、高效的替代方案。
|
||||
|
||||
### RustDesk的主要优势
|
||||
|
||||
- **安全性**:使用安全的加密通信协议,确保数据传输安全
|
||||
- **跨平台**:支持Windows、macOS、Linux、Android等多个平台
|
||||
- **高性能**:使用Rust编写,具有高效和并发的特点
|
||||
- **低成本**:一台1C1G的服务器就能满足个人或小团队使用
|
||||
|
||||
## 服务器准备
|
||||
|
||||
### 服务器配置要求
|
||||
|
||||
- **Linux服务器**:推荐1C1G配置(如AWS EC2或Lightsail)
|
||||
- **Windows服务器**:建议至少2C4G配置
|
||||
- **网络要求**:需要开放特定端口
|
||||
|
||||
### 需要开放的端口
|
||||
|
||||
- **TCP端口**:21115, 21116, 21117, 21118, 21119
|
||||
- **UDP端口**:21116
|
||||
|
||||
## 服务器初始化
|
||||
|
||||
### 1. 连接服务器
|
||||
|
||||
使用SSH连接服务器:
|
||||
```bash
|
||||
ssh admin@<服务器IP> -i <RSA密钥文件>
|
||||
```
|
||||
|
||||
### 2. 更新系统
|
||||
|
||||
```bash
|
||||
# 更新软件包
|
||||
sudo apt update -y
|
||||
|
||||
# 设置时区(可选)
|
||||
sudo timedatectl set-timezone Asia/Shanghai
|
||||
```
|
||||
|
||||
### 3. 创建用户(可选)
|
||||
|
||||
```bash
|
||||
# 创建新用户
|
||||
sudo useradd -m rustdesk
|
||||
|
||||
# 设置密码
|
||||
sudo passwd rustdesk
|
||||
|
||||
# 切换用户
|
||||
sudo su - rustdesk
|
||||
```
|
||||
|
||||
## RustDesk服务端部署
|
||||
|
||||
### 1. 下载服务端程序
|
||||
|
||||
```bash
|
||||
# 创建目录
|
||||
mkdir ~/rustdesk && cd ~/rustdesk
|
||||
|
||||
# 下载最新版本(请到GitHub查看最新版本号)
|
||||
wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.8-2/rustdesk-server-linux-amd64.zip
|
||||
|
||||
# 解压
|
||||
unzip rustdesk-server-linux-amd64.zip
|
||||
mv amd64 server
|
||||
cd server
|
||||
```
|
||||
|
||||
### 2. 测试运行
|
||||
|
||||
安装screen用于管理进程:
|
||||
```bash
|
||||
sudo apt install screen
|
||||
```
|
||||
|
||||
启动hbbs(ID服务):
|
||||
```bash
|
||||
screen -S hbbs
|
||||
./hbbs
|
||||
# 按Ctrl+A然后按D退出screen
|
||||
```
|
||||
|
||||
启动hbbr(中继服务):
|
||||
```bash
|
||||
screen -S hbbr
|
||||
./hbbr
|
||||
# 按Ctrl+A然后按D退出screen
|
||||
```
|
||||
|
||||
### 3. 获取公钥
|
||||
|
||||
运行后会生成公钥文件,查看并复制公钥内容:
|
||||
```bash
|
||||
cat id_ed25519.pub
|
||||
```
|
||||
|
||||
保存这个公钥,客户端配置时需要使用。
|
||||
|
||||
## 注册为系统服务
|
||||
|
||||
### 创建hbbs服务
|
||||
|
||||
创建服务文件:
|
||||
```bash
|
||||
sudo nano /etc/systemd/system/rustdesk-hbbs.service
|
||||
```
|
||||
|
||||
写入以下内容:
|
||||
```ini
|
||||
[Unit]
|
||||
Description=RustDesk Hbbs
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=rustdesk
|
||||
Type=simple
|
||||
WorkingDirectory=/home/rustdesk/rustdesk/server
|
||||
ExecStart=/home/rustdesk/rustdesk/server/hbbs
|
||||
ExecStop=/bin/kill -TERM $MAINPID
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
### 创建hbbr服务
|
||||
|
||||
```bash
|
||||
sudo nano /etc/systemd/system/rustdesk-hbbr.service
|
||||
```
|
||||
|
||||
写入以下内容:
|
||||
```ini
|
||||
[Unit]
|
||||
Description=RustDesk Hbbr
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=rustdesk
|
||||
Type=simple
|
||||
WorkingDirectory=/home/rustdesk/rustdesk/server
|
||||
ExecStart=/home/rustdesk/rustdesk/server/hbbr
|
||||
ExecStop=/bin/kill -TERM $MAINPID
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
### 启动服务
|
||||
|
||||
```bash
|
||||
# 重载systemd配置
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
# 启动服务
|
||||
sudo systemctl start rustdesk-hbbs
|
||||
sudo systemctl start rustdesk-hbbr
|
||||
|
||||
# 设置开机自启
|
||||
sudo systemctl enable rustdesk-hbbs
|
||||
sudo systemctl enable rustdesk-hbbr
|
||||
|
||||
# 查看服务状态
|
||||
sudo systemctl status rustdesk-hbbs
|
||||
sudo systemctl status rustdesk-hbbr
|
||||
```
|
||||
|
||||
## 客户端配置
|
||||
|
||||
### 1. 下载客户端
|
||||
|
||||
访问[RustDesk官方发布页面](https://github.com/rustdesk/rustdesk/releases)下载对应系统的客户端。
|
||||
|
||||
### 2. 配置客户端
|
||||
|
||||
1. 打开RustDesk客户端
|
||||
2. 点击右上角的三个点,进入设置
|
||||
3. 选择"网络"选项
|
||||
4. 解锁网络配置
|
||||
5. 填入配置信息:
|
||||
- **ID服务器**:你的服务器IP地址
|
||||
- **中继服务器**:你的服务器IP地址
|
||||
- **公钥**:之前复制的公钥内容
|
||||
|
||||
### 3. 测试连接
|
||||
|
||||
配置完成后,客户端会显示一个ID号码。在另一台设备上安装并配置好RustDesk客户端,输入这个ID即可建立连接。
|
||||
|
||||
## 进阶配置
|
||||
|
||||
### 启用强制加密
|
||||
|
||||
如果希望强制使用密钥验证,可以在启动服务时添加参数:
|
||||
|
||||
修改服务文件中的ExecStart行:
|
||||
```ini
|
||||
ExecStart=/home/rustdesk/rustdesk/server/hbbs -k _
|
||||
ExecStart=/home/rustdesk/rustdesk/server/hbbr -k _
|
||||
```
|
||||
|
||||
这样客户端必须配置正确的公钥才能连接。
|
||||
|
||||
### 使用域名
|
||||
|
||||
如果你有域名,可以在客户端配置中使用域名替代IP地址,但请注意:
|
||||
- 域名必须直接解析到服务器IP
|
||||
- 不支持CDN加速的域名
|
||||
|
||||
## 常见问题解决
|
||||
|
||||
### 1. 连接失败
|
||||
|
||||
检查以下几点:
|
||||
- 服务器防火墙是否开放了必要端口
|
||||
- 服务是否正常运行:`sudo systemctl status rustdesk-hbbs rustdesk-hbbr`
|
||||
- 客户端配置是否正确
|
||||
|
||||
### 2. 性能问题
|
||||
|
||||
- 确保服务器网络带宽充足
|
||||
- 可以考虑升级服务器配置
|
||||
- 检查是否有其他程序占用资源
|
||||
|
||||
### 3. 安全考虑
|
||||
|
||||
- 建议启用强制加密
|
||||
- 定期更新RustDesk版本
|
||||
- 使用防火墙限制访问来源
|
||||
|
||||
## 总结
|
||||
|
||||
通过本教程,你已经成功搭建了自己的RustDesk远程桌面服务器。这个方案具有以下优势:
|
||||
|
||||
1. **完全掌控**:数据不经过第三方服务器
|
||||
2. **成本低廉**:最低1C1G服务器即可满足需求
|
||||
3. **安全可靠**:开源代码,支持端到端加密
|
||||
4. **性能优秀**:基于Rust的高效实现
|
||||
|
||||
现在你可以享受安全、高效的远程桌面服务了!如果遇到问题,建议查看官方文档或者在GitHub上寻求帮助。
|
||||
13
src/apps/README.md
Normal file
13
src/apps/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: 自建应用
|
||||
index: false
|
||||
icon: mdi:apps
|
||||
category:
|
||||
- 应用
|
||||
---
|
||||
|
||||
## 自建应用列表
|
||||
|
||||
记录个人搭建的各类应用服务。
|
||||
|
||||
<Catalog />
|
||||
Reference in New Issue
Block a user