Rebrand dedicated server as straywild

This commit is contained in:
Alexander Sellite 2026-08-25 17:14:33 -04:00
parent 481997b42c
commit c1b228475d
14 changed files with 132 additions and 132 deletions

View file

@ -1,10 +1,10 @@
# NETfishing Dedicated Server
# straywild Dedicated Server
This repository packages the headless NETfishing server produced by the main
game project. Gameplay and networking code remain in the `netfishing`
This repository packages the headless straywild server produced by the main
game project. Gameplay and networking code remain in the `straywild`
repository so clients and servers use the same protocol implementation.
Production tags follow the coordinated NETfishing release train. Package a
Production tags follow the coordinated straywild release train. Package a
game release with the same `vX.Y.Z-alpha` tag checked out in this repository.
The package manifest records both the exact game commit and the exact dedicated
packaging commit; packaging refuses to run when its matching release tag does
@ -16,12 +16,12 @@ Export the `Linux Dedicated Server` preset from the game project, then stage
its executable and PCK with the exact game version and source commit:
```sh
game_commit="$(git -C ../netfishing rev-parse HEAD)"
game_commit="$(git -C ../straywild rev-parse HEAD)"
./scripts/stage-build.sh \
../netfishing/builds/vX.Y.Z-alpha/server-linux-x86_64 \
../straywild/builds/vX.Y.Z-alpha/server-linux-x86_64 \
X.Y.Z-alpha \
"${game_commit}" \
../netfishing
../straywild
```
The staged binaries under `dist/` are release inputs and are intentionally not
@ -46,13 +46,13 @@ both the archive and its adjacent `.sha256` file, then install it:
```sh
sudo ./scripts/install-native-release.sh \
packages/netfishing-dedicated-server-X.Y.Z-alpha-linux-x86_64.tar.gz \
packages/netfishing-dedicated-server-X.Y.Z-alpha-linux-x86_64.tar.gz.sha256
packages/straywild-dedicated-server-X.Y.Z-alpha-linux-x86_64.tar.gz \
packages/straywild-dedicated-server-X.Y.Z-alpha-linux-x86_64.tar.gz.sha256
```
Releases are immutable directories under `/opt/netfishing-server/releases`.
Releases are immutable directories under `/opt/straywild-server/releases`.
The installer verifies the outer archive hash, internal hashes, manifest, and
platform before atomically changing `/opt/netfishing-server/current`. When the
platform before atomically changing `/opt/straywild-server/current`. When the
sample systemd unit is already active, a failed start automatically restores
the prior release. Manually return to the recorded previous release with:
@ -60,9 +60,9 @@ the prior release. Manually return to the recorded previous release with:
sudo ./scripts/rollback-native.sh
```
Copy `config/server.cfg.example` to `/etc/netfishing-server.cfg` and adjust the
Copy `config/server.cfg.example` to `/etc/straywild-server.cfg` and adjust the
room name, UDP port, player limit, and public-listing preference. Set `TZ` in
`/etc/netfishing-server.env` to an IANA timezone such as `America/New_York` when
`/etc/straywild-server.env` to an IANA timezone such as `America/New_York` when
the server's world should follow that region's wall clock and daylight-saving
rules; the packaged default is `UTC`. The timezone must be present before the
server process starts, so restart the service after changing it. Forward the
@ -90,8 +90,8 @@ destroyed when that session ends.
A dedicated-server operator can explicitly opt into logging by setting
`chat_logging=true` under `[privacy]`, setting
`NETFISHING_CHAT_LOGGING=true`, or passing `--chat-logging`. The optional
`chat_log_path`, `NETFISHING_CHAT_LOG_PATH`, or `--chat-log-path` setting must
`straywild_CHAT_LOGGING=true`, or passing `--chat-logging`. The optional
`chat_log_path`, `straywild_CHAT_LOG_PATH`, or `--chat-log-path` setting must
be an absolute path; it defaults to `logs/chat.jsonl` inside the configured
data directory. Players joining a server with logging enabled receive an
in-game privacy warning. The JSON Lines log contains UTC timestamps, player
@ -104,7 +104,7 @@ Headless moderation is granted by authenticated player identity, never by a
display name or shared password. A player can copy their complete 64-character
fingerprint from **Settings → Data & Identity → Copy Player Fingerprint**.
Add trusted fingerprints to `/etc/netfishing-server.cfg`:
Add trusted fingerprints to `/etc/straywild-server.cfg`:
```ini
[moderation]
@ -112,7 +112,7 @@ operators=PackedStringArray("0123456789abcdef0123456789abcdef0123456789abcdef012
```
Alternatively, provide a comma-separated list through
`NETFISHING_SERVER_OPERATORS` or `--operators=fingerprint1,fingerprint2`.
`straywild_SERVER_OPERATORS` or `--operators=fingerprint1,fingerprint2`.
Configuration file values are overridden by the environment, then by the
command line. Restart the server after changing the allowlist.
@ -126,10 +126,10 @@ stored bans.
Public listing requires the discovery URL and a publicly reachable ENet UDP
port. Discovery makes a server findable but does not relay gameplay traffic.
For a systemd installation, create a dedicated `netfishing` system user,
For a systemd installation, create a dedicated `straywild` system user,
install the sample configuration and environment files under `/etc`, and copy
`systemd/netfishing-server.service` to the system unit directory. The unit runs
the atomic `current` release link and expects `/var/lib/netfishing-server` to be
`systemd/straywild-server.service` to the system unit directory. The unit runs
the atomic `current` release link and expects `/var/lib/straywild-server` to be
writable by that user. When migrating an older direct-path installation, stop
the service, run the installer once, replace/reload the unit, and then start it.
After that one-time migration, future upgrades can be applied while the unit
@ -138,28 +138,28 @@ is running.
For a direct foreground run from staged build inputs:
```sh
./dist/NETfishingServer.x86_64 \
./dist/straywildServer.x86_64 \
-- \
--config=/etc/netfishing-server.cfg \
--data-dir=/var/lib/netfishing-server
--config=/etc/straywild-server.cfg \
--data-dir=/var/lib/straywild-server
```
## Run with Docker Compose
```sh
./scripts/stage-build.sh \
../netfishing/builds/vX.Y.Z-alpha/server-linux-x86_64 \
../straywild/builds/vX.Y.Z-alpha/server-linux-x86_64 \
X.Y.Z-alpha \
"$(git -C ../netfishing rev-parse HEAD)" \
../netfishing
"$(git -C ../straywild rev-parse HEAD)" \
../straywild
docker compose build
docker compose up -d
```
Set values such as `NETFISHING_SERVER_NAME`, `NETFISHING_SERVER_PORT`,
`NETFISHING_SERVER_MAX_PLAYERS`, `NETFISHING_SERVER_PUBLIC`, `TZ`, and the
optional comma-separated `NETFISHING_SERVER_OPERATORS` in a local `.env` file.
Chat logging remains off unless `NETFISHING_CHAT_LOGGING=true` is explicitly
Set values such as `straywild_SERVER_NAME`, `straywild_SERVER_PORT`,
`straywild_SERVER_MAX_PLAYERS`, `straywild_SERVER_PUBLIC`, `TZ`, and the
optional comma-separated `straywild_SERVER_OPERATORS` in a local `.env` file.
Chat logging remains off unless `straywild_CHAT_LOGGING=true` is explicitly
set. The Compose service runs without Linux capabilities, uses a read-only root
filesystem, and stores persistent state in a named volume.
@ -177,10 +177,10 @@ server code are licensed under
[GPL-3.0-or-later](LICENSE). Every binary package includes the license and a
corresponding-source record for its exact game commit.
The server PCK contains NETfishing creative assets and third-party material.
The server PCK contains straywild creative assets and third-party material.
Their governing terms, credits, and provenance are maintained once in the
main game's
[`docs/ATTRIBUTION.md`](https://forge.makearmy.io/woofmeow/netfishing/src/branch/main/docs/ATTRIBUTION.md),
[`docs/ATTRIBUTION.md`](https://forge.makearmy.io/woofmeow/straywild/src/branch/main/docs/ATTRIBUTION.md),
with the asset license and trademark terms beside that record. Every staged
server package copies those files from its exact game source commit.