Deliverable #5 · 2026-08-02

lor-game-server-01 is live: server notes and how to deploy to it

epic: server-instance delivered
A live game server

The deliverable is a running machine, not a page — lor-game-server-01 at lor-server.cocreations.com.au (209.38.29.22), serving the director, the world processes, and the browser client. Deliverable

Deliverable #4 was the runbook: exact commands to go from “no droplet exists” to “a WebSocket connection reaches a running Godot process.” server-instance/001 executed it end-to-end, via the DigitalOcean API rather than by hand. This is that: what’s actually running, right now, and how to work with it.

The box

What’s running, and how it’s arranged

Deploying code to it

The workflow is deliverable #4 §7 — a manual pull-and-restart, deliberately not a CI pipeline at this project’s current stage:

cd /opt/lor/game-server
git pull --ff-only
sudo systemctl restart lor-director.service
sudo systemctl restart 'lor-world@*.service'

If git pull --ff-only refuses, stop and reconcile by hand — never force, reset, or rebase automatically, same rule this workspace’s own deploy-watch.sh follows.

One thing stands between this and actually working today: the clone on the box was seeded by transferring an already-authenticated bundle over SFTP, not by giving the droplet its own GitHub credentials — deliberately, since handing a box real GitHub access wasn’t in scope for the provisioning task itself. Until a deploy key is added, git pull on the box has nothing to authenticate with. Follow-up: set up a deploy key scoped read-only to land-of-lor on the droplet before relying on this workflow for a real change.

Day-to-day ops (deliverable #4 §9)

Open follow-ups

None of these block anything else in this epic or in server-architecture — recorded here so they’re not lost, not because anything is stuck:

Sources & artifacts

← related epic: server-instance

Also available as raw markdown.