forked from Paroxity/portal
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
MEMOxiiii edited this page Sep 17, 2026
·
5 revisions
Portal is a lightweight transfer proxy written in Go for Minecraft: Bedrock Edition. It lets players connect once and move between multiple backend servers — regardless of what software each server runs — with zero-downtime transfers and no reconnects.
This build targets Bedrock protocol 1001 (game version 1.26.30).
| If you want to... | Go to |
|---|---|
| Go from zero to a working proxy with one backend connected | Setup |
| Download and run Portal for the first time | Installation |
Configure config.json (ports, TLS, whitelist, health checks, etc.) |
Configuration |
| Understand how Portal sits between players and backend servers | Network Architecture |
| Set up NetherNet properly (firewall, STUN/TURN, TLS) or troubleshoot a connection issue | NetherNet Transport |
| Mix RakNet and NetherNet backend servers on one proxy | Backend Transports |
| Integrate your own server software with Portal | Socket Protocol |
| Embed Portal as a Go library instead of running the binary | Library Usage |
| Wire your own code into Portal as a Go library | Event Bus |
| Manage a running proxy (kick, transfer, drain) | Admin Console |
| Run more than one Portal instance behind the same network | Clustering |
| Use an existing plugin for PocketMine, Dragonfly, or GeyserMC | Client Libraries |
| Platform | Library | Type | Engine | Status |
|---|---|---|---|---|
| PocketMine-MP (PHP) | PortalPM | Plugin | PocketMine-MP | ✅ Supported |
| Dragonfly (Go) | PortalDF | Library | Dragonfly | ✅ Supported |
| GeyserMC (Java) | Portal-GeyserMC | Extension | GeyserMC 2.9.5+ | ✅ Supported |
| NukkitX / PowerNukkitX (Java) | — | Plugin | NukkitX / PowerNukkitX | 🔜 Coming Soon |
| EndstoneMC (BDS) | — | Plugin | Endstone (BDS) |
EndstoneMC support isn't guaranteed due to BDS limitations. Until it lands, connect BDS-based servers to a Portal network through Portal-GeyserMC instead.
-
NetherNet by default — Bedrock's official WebRTC transport, the same one Bedrock Dedicated Server exposes with
transport=nethernet; RakNet is still available as a per-proxy fallback (NetherNet Transport) - Mixed backend transports — RakNet and NetherNet backend servers can sit side by side behind one proxy, each declaring its own transport (Backend Transports)
- Zero-downtime transfers between backend servers, no reconnects
- Multi-platform — mix PocketMine, Dragonfly, GeyserMC (and more) on one network
- TCP socket API for integrating any server software (Socket Protocol)
- Resource packs served from the proxy, with hot reload
- Whitelist, IP bans, and per-IP connection rate limiting
- Event bus for join/quit/transfer/health hooks without forking the proxy (Event Bus)
-
Admin console —
players,servers,kick,transfer,drain(Admin Console) - Clustering via Redis for cross-proxy player lookups (Clustering)
- Server groups, weighted load balancing, and draining (Configuration, Socket Protocol)
- Health checking — transport-aware pings pull hung/crashed servers out of rotation automatically
- Prometheus metrics endpoint
- Graceful shutdown on SIGINT/SIGTERM
Portal is forked from Paroxity/portal; this fork adds additional platform support and improvements.
Getting started
Integrating a backend
Embedding Portal