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 support@gameye.com or reach out via the dashboard. Gameye’s team has run 120M+ sessions and can help you validate your migration setup before the deadline.