Give the host a cohesive vault-terminal look: header wordmark with a live status pill that glows green while running, sectioned configuration card with per-field labels, a terminal-style server log, richer player rows (id, name, address, packet counts), and a bold Start/Stop control bar. All existing bindings are unchanged. Add publish-host.yml to build self-contained, single-file win-x64 and linux-x64 binaries on the self-hosted runner and upload them as artifacts, and document the untrimmed publish commands in the host README.
Commonwealth Online — Server Host (Avalonia)
Cross-platform C# GUI (.NET 8 + Avalonia) for running a Commonwealth Online
dedicated server. Replaces the former Qt/C++ host, so the whole project now
builds on one dotnet toolchain.
Run
dotnet run --project host/CommonwealthOnline.Host.csproj
Launch it from (or point its working directory at) a folder that holds the
server — a published CommonwealthOnline.Server executable, the framework
CommonwealthOnline.Server.dll, or a source checkout — alongside
commonwealth-server.json.
Features
- Edit and save
commonwealth-server.json(host, port, name, max players, admin port, log verbosity, GNS toggle). - Start / Stop the server and stream its output to a live log.
- Live player list with Kick / Ban, driven by the server's token-authenticated admin port.
Publish
Self-contained, single-file builds that need no .NET runtime on the target. The host uses reflection-based Avalonia bindings, so publish untrimmed.
dotnet publish host/CommonwealthOnline.Host.csproj -c Release -r win-x64 \
--self-contained true -p:PublishSingleFile=true \
-p:IncludeNativeLibrariesForSelfExtract=true -o out/win-x64
dotnet publish host/CommonwealthOnline.Host.csproj -c Release -r linux-x64 \
--self-contained true -p:PublishSingleFile=true \
-p:IncludeNativeLibrariesForSelfExtract=true -o out/linux-x64
CI builds both runtimes and uploads them as artifacts — run the
Publish Host (Avalonia) workflow (.github/workflows/publish-host.yml)
manually, or push a host-v* tag.