YAML source-of-truth for Factorio mod-list / player-data / *.json server config #60
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-05-03T22:29:04Z - https://github.com/coilysiren/coily/issues/44
Tracking idea raised while reviewing #43.
Idea
The Factorio dedicated server consumes a handful of JSON files under
<server_dir>:mods/mod-list.jsonserver-whitelist.json/server-banlist.json/server-adminlist.jsonplayer-data.json(auth + per-player state)server-settings.jsonThese are awkward to hand-edit as JSON (no comments, easy to break with a missing comma) and Kai already keeps the equivalent for other game servers in an infra git repo.
Proposal: the source-of-truth in the infra repo is YAML, and the deploy step renders it to JSON on kai-server in the shape Factorio expects. Coily / scripts continue to read the JSON; the YAML never reaches the running server.
Why this issue probably doesn't live here long-term
This is mostly an infrastructure repo concern, not a coily concern. The coily side is already forward-compatible —
coily gaming factorio mods sync(added in #43) operates onmod-list.jsonregardless of how it got there. The YAML→JSON render step belongs next tofactorio-server-pre.sh/factorio-backup.sh/ etc.Filing here as a placeholder per the conversation in #43; expected to migrate to whichever repo owns the deploy scripts once that's settled.
Out of scope for #43
#43 ships the sync verb against the existing JSON on disk. No coily-side change is needed to adopt the YAML render later — coily just keeps reading
mod-list.jsonafter the render step has produced it.Open questions to resolve before implementing
infrastructure/? a newfactorio-config/?)coily gaming factorio config renderverb that runs the render on kai-server (parity withupdate/mods sync), or is that strictly a deploy-pipeline concern?player-data.json(service-token) handled — does the YAML reference SSM / a secret store, or stay in plaintext on kai-server like today?Linked: #43.