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.
44 lines
1.6 KiB
Markdown
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.
|