Tune by Mozaiklabs

配置

几乎所有设置都在界面的设置中完成。配置文件和环境变量只在安装时(端口、数据库位置)和特殊情况下才需要。本页同时介绍这两者。

设置

设置的各个标签页,按顺序如下。部分标签页只在“高级”或“专家”界面级别下显示(账户菜单 › 界面)。

标签页主要内容
通用播放(循环、随机、发烧友模式下的音量)、界面(主题、语言、启动视图、默认区域、音量显示、侧边栏顺序)、配置文件
音频本地音频输出(音频后端、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:

  1. Windows:%APPDATA%\Tune\tune.toml
  2. 启动 Tune 的文件夹:./tune.toml
  3. /etc/tune/tune.toml
  4. 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_PORT8888网页界面和 API 的端口
TUNE_DB_PATH见下文SQLite 数据库文件
TUNE_MUSIC_DIRS无音乐文件夹,以逗号分隔或使用 JSON 数组。仅在首次启动时读取(见下文)。
TUNE_AUTO_SCANfalse启动时扫描音乐库(设为 true 以启用)
TUNE_LOG_LEVELinfo日志级别: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_BACKENDautoWindows:auto(WASAPI)、wasapi 或 asio。在“设置 › 音频”中所做的选择优先。
TUNE_LOCAL_EXCLUSIVE_MODEfalse本地输出的独占模式
TUNE_TIDAL_QUALITYHI_RES_LOSSLESS请求的 TIDAL 音质
TUNE_SLIMPROTO_PORT3483Squeezebox(SlimProto)服务器端口
TUNE_CLI_PORT9090与 LMS 兼容的命令端口
TUNE_SCAN_IO_CONCURRENCYauto扫描时并行读取的文件数(机械硬盘为 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.dbjournalctl -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.dbjournalctl -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 1900SSDP 发现(DLNA/UPnP)
UDP 5353mDNS 发现(AirPlay、Chromecast 等)
TCP/UDP 3483Squeezebox(SlimProto)服务器。与同一台机器上运行的 LMS 冲突。
TCP 9090与 LMS 兼容的命令端口。如果 9090 被占用,Tune 会尝试 9091 到 9098。
TCP 8890UPnP/OpenHome 事件监听器(如被占用,会改用其他端口)

Tune 会监听所有网络接口;监听地址无法更改。在 Tune OS 上,80 端口会转发到 8888。

安全

默认情况下,Tune 没有密码,也没有 HTTPS:能访问你本地网络的任何人都可以打开该界面。请勿把 8888 端口暴露到互联网。API 中提供账户和令牌身份验证(见技术指南),但无法在界面中设置。

另请参阅