Files
horizon-airdef/crates/horizon-server/Cargo.toml
T
Ludovic Marie 36908858a3 Launcher and horizon-server update: install only releases whose signed checksums match
The launcher (game installs and its own updates) and `horizon-server update` fetch a release's
SHA256SUMS and SHA256SUMS.sig, check the signature against the keys built in from
crates/horizon-release-sign/release-keys.txt and the archive against the signed SHA-256, and
refuse anything unsigned, signed for another tag or by another key, or that doesn't match, with a
message saying why. Merge only once release-keys.txt lists the key and a signed stable release
exists: until then every download is refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 12:20:36 +02:00

37 lines
1.5 KiB
TOML

[package]
name = "horizon-server"
version = "0.1.0"
edition.workspace = true
license.workspace = true
rust-version = "1.90"
description = "Host a Horizon server: server.toml, the CLI and the supervisor that runs the game headless (docs/server.md)"
[dependencies]
horizon-server-files = { path = "../horizon-server-files" }
# The game process's RAM and CPU (the same probes the benchmark reports use).
horizon-bench = { path = "../horizon-bench" }
# The log's local times, as the game prints them.
chrono = { version = "0.4.42", default-features = false, features = ["clock", "std"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "1.1"
# Edits server.toml in place, keeping the owner's comments and order.
toml_edit = "0.25"
# Updates: the release from GitHub, checked against the SHA-256 in its signed checksums (both already in the
# lockfile, ureq through horizon-server-files).
horizon-release-sign = { path = "../horizon-release-sign" }
sha2 = "0.10"
ureq = { version = "2", default-features = false, features = ["tls"] }
# Backups: one zip anyone can open, Windows included.
zip = { version = "2", default-features = false, features = ["deflate"] }
[target.'cfg(unix)'.dependencies]
# SIGINT/SIGTERM/SIGHUP: stop the game cleanly when the terminal or the service manager asks.
libc = "0.2"
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61", features = ["Win32_Foundation", "Win32_System_Console", "Win32_System_Threading"] }
[lints]
workspace = true