upgrade to Dotnet10#1081
Open
ValiOff8 wants to merge 8 commits into
Open
Conversation
Update project target frameworks and required hosting references for .NET 10 compatibility. Preserve existing bot, plugin, Web API, config, persistence, and WebInterface behavior while fixing version generation, RID publishes, and the local WebInterface build on current Node/OpenSSL.
Upgrade SixLabors.ImageSharp from 1.0.4 to 2.1.11. Preserve existing image handling behavior. Verify build, tests, win-x64 publish, and linux-x64 publish. Confirm ImageSharp vulnerability warning is cleared. Leave LiteDB unchanged for compatibility reasons.
- Use async response writing for Web API responses under Kestrel - Avoid disposing ASP.NET Core response.Body during streamed responses - Fix runtime detection for self-contained .NET 10 publishes - Add regression tests for the .NET 10 Web API and runtime detection fixes - Update AppVeyor to run restore, build, and tests before publish - Verify build, tests, version run, win-x64 publish, and linux-x64 publish
On Debian and similar distros, only the versioned soname libopus.so.0 is installed by default. The unversioned libopus.so symlink requires libopus-dev. Register a DllImportResolver on Linux that tries libopus.so.0 before falling back to default resolution. Windows behavior is unchanged.
- Multi-stage Dockerfile: sdk:10.0 build -> debian:trixie-slim runtime - Runtime installs libopus0 and ffmpeg via apt-get - docker-compose.yml wires ts3server + bot services with named volume - docker/config/ts3audiobot.toml: main bot config (API on 58913) - docker/config/bots/bot0.toml: bot instance (run=true, address=ts3server:9987)
- Dockerfile: add node:18-slim stage to build WebInterface/dist -> /app/WebInterface - Dockerfile: add libicu-dev to runtime stage (.NET globalization requirement) - TsDnsResolver: fall through to system DNS for single-label hostnames (fixes Docker service name resolution) - docker/config/bots: restructure to bots/bot0/bot.toml subdirectory layout (required by bot) - docker/config/bots/bot0/bot.toml: remove [bot] wrapper, use flat ConfBot root fields - docker-compose.yml: fix image name teamspeak/teamspeak3-server -> teamspeak
- Dockerfile: add yt-dlp to runtime apt packages - ts3audiobot.toml: set youtube-dl path to /usr/bin/yt-dlp, switch prefer_resolver to YoutubeDl (internal resolver uses deprecated get_video_info endpoint and always fails) - bot0/bot.toml: add 'yt = play' alias so !yt routes to play instead of fuzzy-matching 'system quit' via ic3 (y+t appear at index 1,3 in 'system quit', beating all other commands)
yt-dlp writes WARNING: lines to stderr during nsig fallback even when it succeeds. The old check (any stderr = error) would throw on these. Also, --no-warnings suppressed the nsig fallback mechanism itself, causing YouTube bot-detection errors instead. - Remove --no-warnings from ParamGetSingleVideo - Only treat ERROR:-prefixed stderr lines as fatal; log WARNING: lines at debug level and continue - Add System.Linq import for the Where/ToList filter
|
| FROM node:18-slim AS webui | ||
| WORKDIR /webui | ||
| COPY WebInterface/package*.json ./ | ||
| RUN npm ci |
|
That's an awesome change! I would love to contribute as well with some QoL changes once this is merged. Dark mode is top of my list right now 👀 |
Citr0s
approved these changes
May 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




This pull request migrates TS3AudioBot to .NET 10 and fixes the main compatibility issues needed to build, run, publish, and test the project on the new runtime.
Fixed / improved:
.NET 10 migration
Updated the project to target .NET 10 and fixed build/runtime compatibility issues.
Publishing compatibility
Web API compatibility
Adjusted response handling for newer Kestrel behavior.
Linux and Docker support
WebInterface build
Added/fixed WebInterface build support in the Docker workflow.
Fixed YouTube playback by using yt-dlp and improved handling of yt-dlp warnings.
Dependency updates
Updated outdated dependencies required for compatibility and security.
Tested with .NET 10:
restore
build
tests
Windows publish
Linux publish
Docker runtime
WebInterface build
basic bot functionality
The goal of this pull request is to keep the existing TS3AudioBot behavior unchanged while making the project work correctly on .NET 10.