Migrate from Hathora to Gameye
Hathora shuts down May 5th, 2026. This guide covers everything you need to move your game servers to Gameye before that deadline — including matchmaker integrations, image migration, and first session validation.
Before you start
Section titled “Before you start”You will need:
- A Gameye account — sandbox access is provisioned within 24 hours of request
- Your game server packaged as a Docker image (all Hathora deployments already meet this requirement)
- Access to your matchmaker configuration (Pragma, Nakama, PlayFab, FlexMatch, or custom)
Step 1: Push your image to Docker Hub
Section titled “Step 1: Push your image to Docker Hub”Gameye pulls server images from Docker Hub. If you’re currently using Hathora’s registry, re-tag and push your existing image:
docker pull your-hathora-image:latestdocker tag your-hathora-image:latest yourdockerhubuser/your-game-server:latestdocker push yourdockerhubuser/your-game-server:latestNo changes to the image itself are required. Gameye runs any containerised Linux game server.
Step 2: Create your organisation and upload your image
Section titled “Step 2: Create your organisation and upload your image”Log into the Gameye dashboard and:
- Create your organisation
- Add your Docker Hub image reference
- Configure your exposed port (the port your game server listens on)
Step 3: Make your first API call
Section titled “Step 3: Make your first API call”Gameye’s session API is a simple HTTP interface. If you’ve used Hathora’s API, the pattern is familiar:
curl -X POST https://api.gameye.com/v2/session \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "sessionId": "test-session-001", "image": "yourdockerhubuser/your-game-server:latest", "region": "eu-west" }'The response returns an ip and port your clients can connect to directly.
Step 4: Connect your matchmaker
Section titled “Step 4: Connect your matchmaker”Pragma Engine
Section titled “Pragma Engine”Gameye is an official Capacity Provider in Pragma’s codebase. Update your Pragma configuration to point at Gameye instead of Hathora:
{ "capacityProvider": "gameye", "gameyeApiKey": "YOUR_GAMEYE_API_KEY", "gameyeImage": "yourdockerhubuser/your-game-server:latest"}No custom Capacity Provider code is required. This is the only step needed for Pragma migration.
Nakama
Section titled “Nakama”Gameye provides a native Nakama integration. In your Nakama matchmaker module, replace Hathora’s session creation call with Gameye’s:
const response = await fetch('https://api.gameye.com/v2/session', { method: 'POST', headers: { 'Authorization': `Bearer ${GAMEYE_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ sessionId: matchId, image: 'yourdockerhubuser/your-game-server:latest', region: preferredRegion, }),});const { ip, port } = await response.json();See Integrate a matchmaker for the full connection guide.
PlayFab
Section titled “PlayFab”See the PlayFab integration guide.
FlexMatch (AWS)
Section titled “FlexMatch (AWS)”See the FlexMatch integration guide.
Step 5: Validate before May 5th
Section titled “Step 5: Validate before May 5th”Run through this checklist before Hathora’s shutdown date:
- Image pushes successfully to Docker Hub
- Test session allocates in your target region
- Server IP and port returned correctly from API
- Matchmaker successfully triggers a Gameye session
- Client connects to Gameye-provisioned server
- Session terminates cleanly after match ends
Pricing
Section titled “Pricing”Gameye charges $0.07 per vCPU per hour. Egress is included — there is no separate bandwidth line item. You can forecast your costs before speaking to anyone.
Need help?
Section titled “Need help?”Contact Gameye support or reach out via the dashboard. Gameye’s team has run 120M+ sessions and can help you validate your migration setup before the deadline.