Move MVP tile delivery to dedicated VM

This commit is contained in:
2026-05-14 19:47:48 -07:00
parent 03cf249d19
commit 872aab2ff9
3 changed files with 25 additions and 19 deletions
+2 -1
View File
@@ -341,7 +341,8 @@ redownloaded when a player returns to a region.
- [x] Publish a tiny Ground Zero tile manifest and package from the tile server. - [x] Publish a tiny Ground Zero tile manifest and package from the tile server.
- [x] Prove client/server tile lookup, download, local cache, and redownload flow with the Ground Zero tile and immediate-neighbor metadata. - [x] Prove client/server tile lookup, download, local cache, and redownload flow with the Ground Zero tile and immediate-neighbor metadata.
- [x] Add tile-serving server cost controls and shutdown/runbook notes so MVP testing stays free or near-free. - [x] Add tile-serving server cost controls and shutdown/runbook notes so MVP testing stays free or near-free.
- [ ] Move the MVP tile server from shared Ubuntu-Codex hosting to a dedicated `Agrarian-TileServer` VM or external cloud host before public testing. - [x] Move the MVP tile server into a dedicated `Agrarian-TileServer` VM on Unraid.
- [ ] Decide whether public testing uses the LAN-hosted `Agrarian-TileServer` VM or an external cloud host.
- [ ] Define client local tile cache layout. - [ ] Define client local tile cache layout.
- [ ] Define local cache retention policy for old or unused tiles. - [ ] Define local cache retention policy for old or unused tiles.
- [ ] Define local cache redownload/revalidation behavior. - [ ] Define local cache redownload/revalidation behavior.
+22 -17
View File
@@ -51,27 +51,33 @@ and publishes:
## Current MVP VM ## Current MVP VM
The first Unraid-hosted MVP tile server is running on the existing The first Unraid-hosted MVP tile server is running inside its own dedicated
`Ubuntu-Codex` VM while we keep costs at zero and avoid creating a new paid Ubuntu VM. Unraid is only the hypervisor and VM storage host for this service;
cloud host too early. the tile service itself does not run on the Unraid OS.
Current endpoint: Current endpoint:
```text ```text
http://192.168.5.10:18080 http://192.168.5.14:18080
``` ```
The uncommon port is intentional for this local MVP proof. The server publishes: VM:
- `http://192.168.5.10:18080/health` ```text
- `http://192.168.5.10:18080/manifest.json` Agrarian-TileServer
- `http://192.168.5.10:18080/ground_zero_tiles.json` ```
- `http://192.168.5.10:18080/tiles/gz_us_ca_pacifica_utm10n_e544_n4160/v0/...`
The attempted dedicated `Agrarian-TileServer` VM bootstrap was deferred because The uncommon port is intentional for this local MVP proof. The server publishes
the Ubuntu cloud image download from Unraid was too slow to be practical during from `/srv/agrarian/tile-delivery/public`:
this pass. A dedicated VM remains the next hardening step before exposing the
tile server outside the LAN. - `http://192.168.5.14:18080/health`
- `http://192.168.5.14:18080/manifest.json`
- `http://192.168.5.14:18080/ground_zero_tiles.json`
- `http://192.168.5.14:18080/tiles/gz_us_ca_pacifica_utm10n_e544_n4160/v0/...`
The Ubuntu cloud image was downloaded from the workstation and copied to
Unraid's ISO storage because direct download from Unraid was too slow. The VM
was then created from that cloud image with cloud-init.
## Verify Client Lookup And Cache ## Verify Client Lookup And Cache
@@ -79,7 +85,7 @@ From a representative Linux client with the repo mounted:
```bash ```bash
cd /mnt/projects/AgrarianGameBulid cd /mnt/projects/AgrarianGameBulid
Scripts/verify_tile_delivery_client.sh http://192.168.5.10:18080 Scripts/verify_tile_delivery_client.sh http://192.168.5.14:18080
``` ```
The verification script: The verification script:
@@ -115,6 +121,5 @@ Keep the MVP server small:
## Next Proof ## Next Proof
The current implementation proves static lookup/download/cache/redownload on The current implementation proves static lookup/download/cache/redownload on
the LAN. The next operational hardening step is to move this from shared the LAN. The next operational hardening step is deciding whether this VM stays
`Ubuntu-Codex` hosting to a dedicated `Agrarian-TileServer` VM or external cloud LAN-only or is replaced by an external cloud host when we need public testing.
host when we need public testing.
+1 -1
View File
@@ -2,7 +2,7 @@
set -Eeuo pipefail set -Eeuo pipefail
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
ENDPOINT="${1:-${AGRARIAN_TILE_SERVER_URL:-http://192.168.5.10:18080}}" ENDPOINT="${1:-${AGRARIAN_TILE_SERVER_URL:-http://192.168.5.14:18080}}"
ENDPOINT="${ENDPOINT%/}" ENDPOINT="${ENDPOINT%/}"
CACHE_ROOT="${AGRARIAN_TILE_CLIENT_CACHE:-/tmp/agrarian-tile-client-cache-${USER:-user}}" CACHE_ROOT="${AGRARIAN_TILE_CLIENT_CACHE:-/tmp/agrarian-tile-client-cache-${USER:-user}}"
URL_LIST="${CACHE_ROOT}/download-list.txt" URL_LIST="${CACHE_ROOT}/download-list.txt"