This repository has been archived on 2026-05-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AgrarianGameArchive/Docs/Ops/MapTileDeliveryServerRunbook.md
T

77 lines
2.3 KiB
Markdown

# Agrarian MVP Map Tile Delivery Server Runbook
The near-term tile server is intentionally simple: static files served by nginx
from an Ubuntu VM. This proves the contract for tile manifest lookup, package
download, checksums, local cache, and redownload before investing in a database
or application service.
## Build The Ground Zero Tile Package
On Ubuntu-Codex or any Linux machine with the repo mounted:
```bash
cd /mnt/projects/AgrarianGameBulid
Scripts/build_ground_zero_tile_delivery_package.sh
```
Output:
- `BuildArtifacts/TileDelivery/public/manifest.json`
- `BuildArtifacts/TileDelivery/public/ground_zero_tiles.json`
- `BuildArtifacts/TileDelivery/public/tiles/gz_us_ca_pacifica_utm10n_e544_n4160/v0/`
- `BuildArtifacts/TileDelivery/public/SHA256SUMS`
- `BuildArtifacts/TileDelivery/agrarian-ground-zero-tile-delivery.tar.gz`
`BuildArtifacts/` is a local build output and should not be committed.
## Bootstrap A New Ubuntu Tile Server
Copy the archive to a fresh Ubuntu VM, then run:
```bash
sudo AGRARIAN_TILE_SERVER_NAME=tiles.example.test \
Operations/cloud-map-tile-server/bootstrap_ubuntu_tile_server.sh \
/path/to/agrarian-ground-zero-tile-delivery.tar.gz
```
For an IP-only MVP test, omit `AGRARIAN_TILE_SERVER_NAME`.
The bootstrap installs nginx, creates:
```text
/srv/agrarian/tile-delivery/public
```
and publishes:
- `http://SERVER_IP/health`
- `http://SERVER_IP/manifest.json`
- `http://SERVER_IP/ground_zero_tiles.json`
- `http://SERVER_IP/tiles/gz_us_ca_pacifica_utm10n_e544_n4160/v0/...`
## Cost Control
Keep the MVP server small:
- Ubuntu LTS, smallest useful VM size.
- Static nginx only.
- No database for the first proof.
- No public write endpoints.
- No Unreal server process on the tile VM unless explicitly testing combined
hosting.
- Shut down or destroy the VM when not testing.
## Security Baseline
- Allow inbound `80/tcp` for the public MVP endpoint.
- Allow SSH only from trusted admin IPs.
- Add HTTPS with certbot when a real DNS name is assigned.
- Treat tile packages as immutable by version. Publish fixes as a new package
version instead of editing files in place.
## Next Proof
The next implementation step after this runbook is to launch the MVP cloud VM,
publish this static package, and prove lookup/download/cache/redownload behavior
from a representative client.