Gatehouse: Whitelist Approval Workflow for Minecraft Servers

Gatehouse turns whitelist requests into a simple staff approval workflow for Minecraft. Approve players in-game or via Discord and Telegram.

Gatehouse

Running a private Fabric server in offline mode usually means one of two things: you either leave the whitelist wide open, or you spend half your evening copying usernames into a config file by hand. Gatehouse for Minecraft fixes that awkward middle ground. It watches for vanilla whitelist rejections, captures the request automatically, and hands your staff a clean approval queue they can work through without ever leaving the game.

What Gatehouse Actually Does

The idea is refreshingly simple. When an unknown player tries to join your server, Gatehouse detects the vanilla whitelist rejection that Minecraft throws back. Instead of that rejection vanishing into the log, a durable request gets saved to a local SQLite database. Your staff then review it in-game using commands like /gatehouse, /gh, or /wlreq, and approval adds the player straight to Minecraft's native whitelist. The player reconnects and gets in. No client-side mod, no Discord account requirement, no external registration page.

What makes this genuinely useful is that Minecraft's own whitelist stays authoritative. Gatehouse never replaces it or maintains a shadow list you have to reconcile later. It just automates the tedious part.

Core Features at a Glance

  • Automatic whitelist request creation when a player is rejected
  • Optional Discord and Telegram approval workflows for staff who are not in-game
  • In-game commands: /gatehouse, /gh, and /wlreq
  • Approve, deny, block, unblock, undo, status, and reload actions
  • SQLite persistence with restart and outage recovery
  • Server-side only, with no client IP addresses stored by default

Version Support and Loader Requirements

Gatehouse is a Fabric mod, so you will need Fabric Loader and Fabric API installed for whichever Minecraft version you are targeting. Published builds currently cover Minecraft 1.14.4 through 1.21.4, which is a remarkably wide span for a mod of this type. Java and loader requirements shift between versions, so always grab the exact matching file rather than assuming the newest build will work on an older server.

If juggling loader versions sounds tedious, the foxygame.net launcher handles that layer for you: it lists Gatehouse in its add-on catalog alongside matching Fabric builds, so the correct file lands in your mods folder without manual version hunting.

How to Install Gatehouse

The installation process is short and mostly about matching versions correctly.

  • Download the file matching your Minecraft version and drop it into the server's mods/ directory.
  • Install Fabric Loader and Fabric API for that same Minecraft version.
  • Start the server once to generate config/gatehousemc/config.json and the request database.
  • Optionally configure Discord or Telegram integrations. Provider secrets support environment variables such as ${DISCORD_TOKEN} and ${TELEGRAM_BOT_TOKEN}.

After the first startup, everything else happens through the in-game commands. Staff can approve, deny, or block requests as they arrive, and the SQLite layer means nothing is lost if the server restarts or briefly goes offline.

A Word About Offline Mode

Raw online-mode=false servers do not verify Minecraft identity ownership with Mojang or Microsoft. Approving a username grants access to the offline profile derived from that name; it does not authenticate an account. That is a security tradeoff baked into offline mode itself, not something Gatehouse introduces, but it is worth understanding before you approve strangers.

Who Should Download Gatehouse

If you run a small private Fabric server with a handful of trusted staff, Gatehouse removes an entire category of friction. The approval workflow is fast, the notification integrations mean nobody has to sit watching a console, and the persistence layer keeps your request history intact across restarts. Players get in faster, staff do less busywork, and the vanilla whitelist keeps doing its job underneath.

For anyone tired of manually editing whitelist.json every time a friend of a friend wants to join, this is a clean, server-side solution worth trying.