English source-of-truth tutorial for administrators running this stack.
Japanese guide follows this document: README.ja.md.
neoforge/- Minecraft mod (NeoForge 1.21.1)relay-server/- lightweight TCP relay servicesupabase/- signaling schema/migrations forpublic.rooms
- Full stack (EN):
README.md - Full stack (JA):
README.ja.md - NeoForge component (EN):
neoforge/README.md - NeoForge component (JA):
neoforge/README.ja.md - Relay component (EN):
relay-server/README.md - Relay component (JA):
relay-server/README.ja.md - Supabase component (EN):
supabase/README.md - Supabase component (JA):
supabase/README.ja.md
- Apply
supabase/migrations/20260430165635_remote_schema.sql. - Start relay server.
- Configure
neoforge/run/config/*.toml(common/server/client). - Start Minecraft server (
runServer) and client (runClient). - Verify relay-path logs.
Set-Location "<repo-root>"
Set-Location ".\relay-server"
uv run python .\start.pySet-Location "<repo-root>"
Set-Location ".\neoforge"
.\gradlew.bat runServerSet-Location "<repo-root>"
Set-Location ".\neoforge"
.\gradlew.bat runClientGenerated under neoforge/run/config/:
nat_traversal_mod-common.tomlnat_traversal_mod-server.tomlnat_traversal_mod-client.toml
Key notes:
relay_priority_modesupportspublic_first(default) andrelay_first.- Relay port values are configurable.
Server (neoforge/run/logs/latest.log):
Room publishedRelay host connector pairedRoom closed
Client (neoforge/run/logs/latest.log):
Intercept hitUse local relay client connectororUse public_endpoint from roomResolved room target
Relay stdout:
waiting counterpart token=...pairing token=...
Set-Location "<repo-root>"
Set-Location ".\neoforge"
.\gradlew.bat --no-daemon compileJava- Team/operations rules are documented in
docs/security-operations.md.