Packhost
Packhost is the small standalone service behind hosted delivery mode: servers upload their pack to it, and players download from it. Packs are content-addressed by SHA-1 and stored in S3-compatible object storage, with metadata in Postgres. This page covers running your own instance and the limits of the public one.
Running your own
Packhost lives in its own repository at Auxilor/packhost and runs anywhere that can run a container. It needs:
A Postgres database (
DATABASE_URL)An S3-compatible bucket (
S3_BUCKET,S3_ENDPOINT,S3_REGION,S3_ACCESS_KEY,S3_SECRET_KEY); AWS S3, Cloudflare R2, Backblaze B2, and MinIO all work
On Railway: create a service from the repository, attach a Postgres database, set the S3_* variables, and point the health check at /healthz. For any other host, build and run the Dockerfile with the same environment. Full instructions, the API reference, and a local development compose stack are in the packhost README.
Then point your server at it:
delivery:
mode: hosted
hosted:
url: "https://packs.example.com"
Limits
Uploads are anonymous, capped at 64 MiB per pack, and rate-limited per IP (100 uploads / 1 GiB per day). Identical packs deduplicate, so a reload that doesn't change the pack reuses the existing upload.
Where to go next
Delivery: Delivery Modes to compare
hostedwith the other modes.Every option: Pack Configuration for the full
delivery.hostedsection.