Skip to content

Package and operate the Go server in production #63

Description

@zoeyrose

Outcome

Turn the validated server into a reproducible, observable, safely configurable service consumable by the thin wrapper and production deployment.

Scope and invariants

  • Publish signed/checksummed Linux/Windows artifacts and a minimal container where desired, with SBOM, provenance, licenses, version metadata, and immutable release references.
  • Define typed config layering, secret injection, directory/state ownership, QUIC identity/certificate rotation, ports, resource limits, content/resource release pinning, and upgrade compatibility.
  • Expose authenticated/segregated health, readiness, build info, metrics, tracing, profiling policy, and graceful drain/shutdown.
  • Integrate metaserver registration/discovery without giving the worker gameplay authority.
  • Document SQLite backup/restore, schema/content upgrade, disaster recovery, log retention/privacy, and rollback.

Acceptance criteria

  • A clean host starts from released artifacts plus explicit state/content/config; no source checkout or Python is needed.
  • Wrapper topology owns paths/process/state isolation and can show/up/ps/logs/down without reconstructing internals.
  • Readiness reflects protocol/content/database readiness rather than process existence alone.
  • Upgrade, certificate rotation, backup/restore, graceful drain, crash restart, and rollback rehearsals pass.
  • Release supply-chain policy and required Server validation check are enforced.

Dependencies and parallelization

Depends on bootstrap, #33/#36/#39, observability #21, metaserver protocol work, and zero-Python #61. Can develop packaging early against the M3 binary.

Licensing and migration rule

Replacement Go code is MIT and independently implemented. Preserve existing gameplay/content design choices and separately licensed data; do not translate GPL runtime source or tests unless an exact contribution has a documented rights-holder MIT grant.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Priority

    None yet

    Effort

    None yet

    Projects

    Status
    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions