配置
几乎所有设置都在界面的设置中完成。配置文件和环境变量只在安装时(端口、数据库位置)和特殊情况下才需要。本页同时介绍这两者。
设置
设置的各个标签页,按顺序如下。部分标签页只在“高级”或“专家”界面级别下显示(账户菜单 › 界面)。
| 标签页 | 主要内容 |
|---|---|
| 通用 | 播放(循环、随机、发烧友模式下的音量)、界面(主题、语言、启动视图、默认区域、音量显示、侧边栏顺序)、配置文件 |
| 音频 | 本地音频输出(音频后端、WASAPI 模式、ReplayGain、后台分析速度)、网络设备、Squeezebox / Lyrion、HQPlayer、向网络渲染器播放 DSD、音频诊断、Wi-Fi 网络 |
| 音乐库 | 扫描音乐库、位置(文件夹和 SMB 共享)、扫描选项、自动分析、元数据、丰富、添加内容 |
| 区域 | 自动创建区域、“跟随我” |
| 设备 | 每区域设置(DSD、最大采样率、固定音量、严格 Bit-Perfect、单声道输出等)、设置备份 |
| 显示 | 曲目列表的列、收藏集封面拼贴、停止按钮、侧边栏中的来源 |
| 扩展(专家) | 已安装的扩展和目录 |
| 访问与令牌(高级) | 流媒体服务、服务密钥(Last.fm 等) |
| 系统 | 关于与更新、服务器状态(日志级别、清理)、数据库(备份 / 恢复、迁移到 PostgreSQL)、数据位置、从其他播放器导入(Roon、Plex)、CSV 导出 |
| 声学分析(专家) | 音乐库的声学分析 |
| Tune Premium 许可证 | 激活或释放许可证 |
要快速找到某项设置,请使用账户菜单中的搜索设置…。
更新
有新版本可用时,Tune 会在侧边栏中提示(“有可用更新”)。要自行检查,请使用检查更新,位于设置 › 系统 › 关于 › 更新。在 Windows、macOS、.deb 软件包和 Tune OS 上,更新会在 Tune 内部安装;正在运行的扫描会先被停止。使用 Homebrew 时,Tune 会运行 brew upgrade,或提示你去运行。使用 Docker 时,请自行拉取新镜像。
关于 .deb 的说明:从 Tune 中安装的更新会直接替换 /opt/tune 中的文件,而不经过 apt。之后再重新安装较旧的 .deb,会恢复该软件包的版本。
备份
设置 › 系统 › 数据库 › 备份 / 恢复会复制一份数据库。副本存放在数据库旁边的 backups 文件夹中,Tune 保留最近的五份。使用 PostgreSQL 时此功能不可用:请改用 pg_dump。设置 › 设备 › 设置备份会把你的区域设置保存到一个文件中。音量、播放队列和分组不包含在内。可通过打开备份…重新载入该文件。
tune.toml 配置文件
Tune 启动时不需要任何文件。如果你创建了配置文件,Tune 会按以下顺序使用找到的第一个 tune.toml:
- Windows:
%APPDATA%\Tune\tune.toml - 启动 Tune 的文件夹:
./tune.toml /etc/tune/tune.toml- macOS:
~/.config/tune/tune.toml
port = 8888
db_path = "tune.db"
auto_scan = false
log_level = "info"
music_dirs = ["/srv/music"]
# local_audio_backend = "asio" # Windows: auto, wasapi or asio
# dlna_play_delay_ms = 0
注意:格式错误的文件会被跳过,且没有任何错误提示,Tune 会转而使用下一个文件或默认值。
环境变量
环境变量的优先级高于 tune.toml。Tune 还会读取其启动文件夹中的 .env 文件(在 Windows 上,还会读取 %LOCALAPPDATA%\TuneServer\ 中或 tune-server.exe 旁边的该文件)。使用 .deb 软件包时,请把它们写在 /etc/default/tune-server 中(每行一个,不加引号),然后运行 sudo systemctl restart tune-server。
| 变量 | 默认值 | 用途 |
|---|---|---|
TUNE_PORT | 8888 | 网页界面和 API 的端口 |
TUNE_DB_PATH | 见下文 | SQLite 数据库文件 |
TUNE_MUSIC_DIRS | 无 | 音乐文件夹,以逗号分隔或使用 JSON 数组。仅在首次启动时读取(见下文)。 |
TUNE_AUTO_SCAN | false | 启动时扫描音乐库(设为 true 以启用) |
TUNE_LOG_LEVEL | info | 日志级别:error、warn、info、debug、trace |
TUNE_LOG_FILE | 因平台而异 | 日志文件路径 |
TUNE_ARTWORK_DIR | 因平台而异 | 封面缓存文件夹 |
TUNE_ADVERTISED_IP | 自动检测 | Tune 向渲染器公布的 IP 地址。当机器有多个网络接口时很有用。 |
TUNE_DATABASE_URL | 无 | 用于使用 PostgreSQL 的 postgres://… URL |
TUNE_LOCAL_AUDIO_BACKEND | auto | Windows:auto(WASAPI)、wasapi 或 asio。在“设置 › 音频”中所做的选择优先。 |
TUNE_LOCAL_EXCLUSIVE_MODE | false | 本地输出的独占模式 |
TUNE_TIDAL_QUALITY | HI_RES_LOSSLESS | 请求的 TIDAL 音质 |
TUNE_SLIMPROTO_PORT | 3483 | Squeezebox(SlimProto)服务器端口 |
TUNE_CLI_PORT | 9090 | 与 LMS 兼容的命令端口 |
TUNE_SCAN_IO_CONCURRENCY | auto | 扫描时并行读取的文件数(机械硬盘为 4,其他为 32) |
TUNE_DISCOGS_TOKEN | 无 | Discogs 个人令牌 |
TUNE_LASTFM_API_KEY、TUNE_LASTFM_API_SECRET | 无 | Last.fm 密钥,会一次性复制到设置中 |
TUNE_TELEMETRY | 开启 | 设为 false 可关闭遥测(也可在“设置 › 系统”中设置) |
RUST_LOG | 无 | 高级日志过滤器;优先于 TUNE_LOG_LEVEL |
音乐文件夹。TUNE_MUSIC_DIRS(或 music_dirs)只会在首次启动时复制到设置中。此后,以设置 › 音乐库 › 位置中的列表为准,修改该变量不再有任何效果。不存在或为空的文件夹不会被复制。
已移除的变量。旧变量 PORT、HOST、MUSIC_DIRS、DB_DRIVER、API_KEY、AUDIO_DEVICE、DSD_MODE、WRITE_TAGS、WATCH_FILESYSTEM 及类似变量不再被读取。.env.tune.example 中的几个变量也没有任何作用:TUNE_TIDAL_ENABLED、TUNE_QOBUZ_ENABLED、TUNE_DEEZER_ENABLED、TUNE_SPOTIFY_ENABLED、TUNE_YOUTUBE_ENABLED、TUNE_DEFAULT_OUTPUT_FORMAT。服务在界面中开启。
数据存放位置
| 安装方式 | 数据库 | 日志 |
|---|---|---|
| Windows | %LOCALAPPDATA%\TuneServer\tune.db | %LOCALAPPDATA%\TuneServer\tune-server.log |
| macOS | ~/Library/Application Support/Tune/tune.db | ~/Library/Logs/tune-server.log |
| .deb 软件包 | /var/lib/tune/tune.db | journalctl -u tune-server |
| Linux 压缩包 | ./tune.db(启动文件夹) | ~/.local/state/tune/tune-server.log |
| Docker | /data/tune.db | 容器输出(docker logs tune) |
| Tune OS | /opt/tune/data/tune.db | journalctl -u tune |
封面缓存位于旁边:Windows 上是 %LOCALAPPDATA%\TuneServer\artwork_cache,macOS 上是 ~/Library/Application Support/Tune/artwork_cache,Docker 上是 /data/artwork_cache,Tune OS 上是 /opt/tune/data/artwork_cache。日志文件上限为 10 MiB,并保留一份备份副本(.1)。在 Tune OS 上,1.0 之前安装的设备会继续使用原来的缓存 /opt/tune/artwork_cache。
数据库:SQLite 或 PostgreSQL
Tune 默认使用 SQLite,无需任何设置。已发布的 Windows、macOS 和 Linux(x86-64 和 aarch64)版本支持 PostgreSQL。不支持 PostgreSQL 的是 Docker 镜像和 Linux aarch64-musl 版本。有两种启用方式:
- 在界面中:设置 › 系统 › 数据库 › 迁移到 PostgreSQL(专家级别);
- 在启动时:
TUNE_DATABASE_URL=postgres://user:password@host:5432/tune,或者TUNE_DB_ENGINE=postgres加上TUNE_DB_HOST、TUNE_DB_PORT、TUNE_DB_NAME、TUNE_DB_USER和TUNE_DB_PASS。
网络端口
| 端口 | 用途 |
|---|---|
| TCP 8888 | 网页界面、API、WebSocket 以及发送给渲染器的音频流 |
| UDP 1900 | SSDP 发现(DLNA/UPnP) |
| UDP 5353 | mDNS 发现(AirPlay、Chromecast 等) |
| TCP/UDP 3483 | Squeezebox(SlimProto)服务器。与同一台机器上运行的 LMS 冲突。 |
| TCP 9090 | 与 LMS 兼容的命令端口。如果 9090 被占用,Tune 会尝试 9091 到 9098。 |
| TCP 8890 | UPnP/OpenHome 事件监听器(如被占用,会改用其他端口) |
Tune 会监听所有网络接口;监听地址无法更改。在 Tune OS 上,80 端口会转发到 8888。
安全
默认情况下,Tune 没有密码,也没有 HTTPS:能访问你本地网络的任何人都可以打开该界面。请勿把 8888 端口暴露到互联网。API 中提供账户和令牌身份验证(见技术指南),但无法在界面中设置。