Server-side savegames: Rust service with a shared savegame list in the menu, fallback to files

- server/: small axum service storing savegames as files (1 MB each, 500 MB total, rate limit)
- docker compose: second container with a volume; nginx forwards /api/
- JS plugin: asynchronous HTTP requests polled by the game
- Save/Load open a list page (name field, new, overwrite, load, delete with confirmation)
- Without a reachable service the game keeps using savegame files and the browser autosave

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-03 09:31:36 +01:00
1 parent c5b7896609
commit 7f4324abca
17 files changed
+1390 -30

No files matched your search

+22
View File
@@ -343,3 +343,25 @@ hint.punch_where = Die Hand kann Helden nur auf eigenem Gebiet schlagen.
unit.chainbreaker = Kettenbrecher
hint.chainbreaker_restless = Der Kettenbrecher wird unruhig: Er will kämpfen!
# savegames on the server
saves.name = Name:
saves.new = Neu speichern
saves.default_name = Welle {0} - {1}
saves.overwrite = Überschreiben
saves.load = Laden
saves.delete = Löschen
saves.sure = Sicher?
saves.meta = {3} UTC, Welle {0}, Karte {1}, gespielt {2}
saves.empty = Noch keine Spielstände auf dem Server.
saves.loading = Liste wird geladen ...
saves.wait = Bitte warten ...
saves.file_save = Als Datei herunterladen
saves.file_load = Aus Datei laden
cloud.deleted = Spielstand gelöscht.
cloud.err_net = Der Spielstand-Server ist nicht erreichbar.
cloud.err_large = Der Spielstand ist zu groß für den Server.
cloud.err_rate = Zu viele Anfragen - bitte einen Moment warten.
cloud.err_full = Der Spielstand-Server ist voll.
cloud.err_missing = Diesen Spielstand gibt es nicht mehr.
cloud.err = Der Spielstand-Server meldet einen Fehler.