Repository navigation
v0.4.0
Pre-release
Pre-release
·
228 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Pre-release: this is a 0.x version and may change without notice.
Added
- Optional fail2ban instructions and a disabled journal jail/filter for refused HTTP status tokens, with offline
synthetic log checks. Live host bans are unverified; the example leaves game TCP/UDP outside its scope. - A recomp developer integration guide with pinned runtime sources, callback/lifecycle and peer-transport guidance.
A minimal C HELLO/search example runs in the required native-client check; C API comments now clarify blocking
writes, diagnostic state and reply-wait timeout limits without changing implementation or the wire protocol. - Native optional HTTP status in the shared Windows/Linux terminal app: server totals, public-room members/age and
leaderboard summaries, using a local Bearer-token file. Requests and displayed data are bounded, redirects/proxies
are disabled and failures fall back to the game protocol. Initial refresh and changed-source sequencing are corrected. - Linux desktop startup for the shared terminal app: open an installed terminal when no TTY is attached, with literal
arguments and a recursion guard. A desktop entry and the site's favicon artwork are provided as installation inputs;
no release assets are added, and the Windows build retains its normal console behavior. - Bounded per-source UDP admission (per IPv4 address, per IPv6 /64) with
-max-udp-rate/RE_PSN_MAX_UDP_RATE(default 1000 packets/second,
same-size burst; 0 disables it), shared by probes and relay datagrams. Aggregateudp_dropscounters in the
opt-in/api/statsidentify refusal reasons without per-packet logging or source labels. Relay byte/stream budgets
remain planned; the packet format and token checks are unchanged. /healthzon the opt-in status listener, protected by the existing HTTP token. It reports game TCP/UDP readiness
without player data. Shutdown marks the server unready and closes accepted client/relay sockets with bounded cleanup;
restart behavior and supervisor settings are documented indocs/restarts.md.- A stock Caddy 2 example for the HTTP status page, included with the deployment examples. It defaults to loopback;
game TCP and UDP stay direct. The example has not been run or validated with Caddy. - The opt-in server status page now matches the website and terminal app's gruvbox-material palette and monospace
framing, with Overview/Rooms/Leaderboards tabs, System/Light/Dark, text size, spacing and contrast-checked custom colours.
Appearance is local to each browser. Live refresh can be paused and retains the last snapshot on failure; without
JavaScript both tables remain visible and reload as before. The status token is unchanged; the fields of/api/stats
are unchanged by this page (theudp_dropscounters are a separate addition).
Embedded assets normalize line endings before rendering and CSP hashing. Polling preserves full 64-bit score and
identifier values without changing their JSON types on the server. - An offline repository check for tracked root/top-level layout, local Markdown links and anchors, and static
workflow/Dependabot input paths. Runpython3 tools/repo_check.py; CI runs it with the documentation checks. - A focused loopback check:
python3 tools/loopback.pyruns the existing native C-client and Go app-client conformance
tests against temporary loopback servers. Required skips and timeouts fail;--raceis optional. Seedocs/testing.md. - Numbered file-style output in the website's terminal view: a header, frame, line-number gutter, syntax-style colours
and wrapped continuation rows with an empty gutter. Headers and numbers are excluded from text selection. See
docs/website.mdfor controls and browser-test instructions. - Optional install scripts:
scripts/install.sh(POSIX sh; Linux amd64 and arm64) andscripts/install.ps1(Windows amd64;
written for PowerShell 5.1 and 7, tested on 7 only) install the server for the current user from a GitHub release, the newest one (pre-releases included)
or a pinned--version/-Version. They check the download againstSHA256SUMSand stop before installing anything on a
mismatch or a missing line, need no sudo or administrator rights, edit no shell profile, and change the user PATH only with
-AddToPathon Windows. macOS is refused (there are no macOS builds).--dry-run/-DryRundownloads nothing. Tested
withscripts/test-install.shandscripts/test-install.ps1against a fake release. Seedocs/installing.md. .github/FUNDING.yml, which gives the repository a sponsor link (Ko-fi).- Tests for room kick behavior, contributed by Tzeentchnet.
Changed
- The website's pager trial is removed: the
pagercommand, its keys, buttons and status bar, and the saved pager
setting are gone, and long output is shown in full in the scrolling output pane. Numbered file output is unchanged. - The README install section recommends the release archives and shows an optional quick install: the installer is
fetched from a pinned revision of the repository, its hash is checked, and it is read before it is run. - The release carries seven assets: the three archives, the AppImage,
SHA256SUMS, and the two install scripts as
install.shandinstall.ps1, byte for byte the taggedscripts/files, with their checksums inSHA256SUMS. Check one
withsha256sum -c SHA256SUMS --ignore-missingbefore reading and running it.scripts/check-release.sh --assetschecks a
build holds exactly the seven, andrelease-checkcompares the published scripts with the tag.
Files
Each archive holds one self-contained server binary (no installer, no runtime needed), LICENSE, NOTICE.md and an examples folder (settings file, systemd unit, proxy configs).
The x86_64 AppImage holds the same Linux binary and examples as one runnable file; it needs FUSE to mount, or run it with --appimage-extract-and-run. It is not signed.
install.sh (Linux) and install.ps1 (Windows) are the install scripts from this tag, listed in SHA256SUMS too: download one with SHA256SUMS, check it, read it, then run it (see docs/installing.md).
Check a download with sha256sum -c SHA256SUMS --ignore-missing.
c9e8a56940d8e828b0e8a096eac9135c8a0cd8057976756acf43fd5e45297a53 re-psn-v0.4.0-windows-amd64.zip
86bc5678b79f089b7bdabe284d562df85c85c0964b7dedfd941a29e9c57f6e8b re-psn-v0.4.0-linux-amd64.tar.gz
90766c21d90468741105800ad1687f0e33d4c742f60f04c7144eac2404498ef0 re-psn-v0.4.0-linux-arm64.tar.gz
fef1f7f9a424275e45cbca80398477b4440c82b87c106ce6aa7626f3bbce1772 install.sh
98ab633eeeffaecc6968e2fa342830ad4ceed4a5d2397a19dfcfb28e16d9d3a7 install.ps1
acb0bf09dc5f5df1259e612618e3f39b6e3d497ef70fe4e219666ec7796ea328 re-psn-v0.4.0-x86_64.AppImage
Developed with AI agent assistance.
Next release: when ready