# 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.