Files
Nomads_ReachandGitHub ea275210cd Restyle the Avalonia server host and add a single-file publish workflow (#18)
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.
2026-08-16 18:47:14 -04:00

44 lines
1.6 KiB
Markdown

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