Go proxy that sits in front of Bedrock Dedicated Server
  • Go 99.8%
  • Dockerfile 0.2%
Find a file
Smell of curry a7742bc9c5
All checks were successful
Build and Release / Build GoBDS (push) Has been skipped
golangci-lint / Lint Dockerfile. (push) Successful in 9s
golangci-lint / lint (push) Successful in 1m14s
Port release workflow to Forgejo
Three things could not carry over as-is:

Releases were tagged v${{ github.run_number }}, but that counter is per-forge and
restarts at 1 here, so the first release would collide with the v1..v185 tags
migrated from GitHub. The version is now derived from the highest existing
numeric tag, continuing the sequence without storing state anywhere.

softprops/action-gh-release speaks the GitHub releases API and would publish
nowhere. bds-manager downloads gobds-linux from this release to update the proxy,
so asset names are unchanged.

ghcr.io rejects a Forgejo token, so the image publishes to this instance's
registry instead. Nothing we run pulls the ghcr image.

The job also moves to the private runner because it handles a publishing
credential and should not share a Docker daemon with pull-request code. lint.yml
stays on the shared runner: it holds no secrets and must run for fork PRs.

Dependabot is dropped with it — Forgejo has no equivalent, and on the GitHub
mirror it would raise pull requests against a push-only copy where they would be
stranded.
2026-08-04 16:28:34 -04:00
.github/workflows Port release workflow to Forgejo 2026-08-04 16:28:34 -04:00
docs Remove ping indicator (script api handles this now) 2026-07-07 10:58:09 -04:00
gobds Seed item registry from GameData items 2026-07-25 15:04:09 -04:00
policy Add claim proxy, traffic protection, session fixes (#81) 2026-07-16 11:29:12 -04:00
.dockerignore feat(docker): added Docker to project (#44) 2026-01-26 18:22:25 -05:00
.gitignore Add claim proxy, traffic protection, session fixes (#81) 2026-07-16 11:29:12 -04:00
.golangci.yml build(deps): bump golangci/golangci-lint-action from 6 to 9 (#38) 2025-12-27 12:19:56 -05:00
.hadolint.yaml feat(docker): added Docker to project (#44) 2026-01-26 18:22:25 -05:00
AGENTS.md fix: serve URL resource packs over RakNet, not client-side CDN (#86) 2026-07-21 19:20:42 -04:00
config.example.toml Add claim proxy, traffic protection, session fixes (#81) 2026-07-16 11:29:12 -04:00
docker-compose.yaml feat(docker): added Docker to project (#44) 2026-01-26 18:22:25 -05:00
Dockerfile Update Dockerfile 2026-06-27 21:32:55 -04:00
filterlog.go ci: support Go 1.26 linting (#77) 2026-07-10 14:14:34 -04:00
go.mod build(deps): bump github.com/pion/stun/v3 from 3.1.1 to 3.1.5 (#90) 2026-07-31 22:48:09 -04:00
go.sum build(deps): bump github.com/pion/stun/v3 from 3.1.1 to 3.1.5 (#90) 2026-07-31 22:48:09 -04:00
main.go fix: throttle backend-unreachable proxy log spam 2026-06-27 21:06:21 -04:00
README.md Remove ping indicator (script api handles this now) 2026-07-07 10:58:09 -04:00
whitelist.example.json This reverts commit 9e782aed22. 2025-10-03 18:53:24 +01:00

GoBDS A Minecraft Bedrock BDS Enhancer

GoBDS aims to supercharge your Minecraft Bedrock Dedicated Server (BDS) by providing enhanced functionality such as IP filtering, whitelisting, custom slash commands, packet filtering, rate limiting, and more!

This project was originally designed for use in PokeBedrock servers, which serve hundreds of thousands of players, but it can be easily adapted to any Bedrock server environment.

Features

Inspired by the original vanilla-proxy, GoBDS builds upon those features and adds more exciting capabilities:

  • Command Handling ⚙️
    Reads input text packets containing commands (passed by the Scripting API on the downstream server) and processes them efficiently.
    Check out Commands.md

  • Client Blocking & Claims
    Prevents invalid or unwanted breaking/building actions from ever reaching the downstream server, smoothing out performance.
    Learn more in Claims.md

  • Auto Entity Name Translations 🌐
    Adds the possibility of dynamic name tags for entities, bypassing current Scripting API limitations.
    Details in NameTags.md

  • Duplication Protection 🛡️
    Stops known duplication glitches at the packet level before they can cause havoc.

  • XUID Mapping 🔗
    Ensures that even when proxying, XUIDs are properly tracked and displayed on the downstream server.

  • Sign Edit Logging 🪧
    Logs all sign edits (a feature BDS doesnt support natively) for better moderation and server auditing.

  • Custom Borders 🌍
    Prevents players from loading or generating chunks outside specified borders. Shows a clean visual border to users.

  • Auto Resource Pack Downloading 📦
    Offers seamless resource pack downloading so your players have the content they need, when they need it.

  • Staff Slots & Queue System
    Manages player queues and ensures staff members always have room to join.