{"id":15141007,"url":"https://github.com/himbeerserverde/mt-multiserver-proxy","last_synced_at":"2025-10-23T18:30:29.143Z","repository":{"id":39663066,"uuid":"398836334","full_name":"HimbeerserverDE/mt-multiserver-proxy","owner":"HimbeerserverDE","description":"mt-multiserver-proxy is a reverse proxy designed for linking multiple Minetest servers together","archived":false,"fork":false,"pushed_at":"2025-01-24T15:23:12.000Z","size":939,"stargazers_count":27,"open_issues_count":4,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-01-24T16:26:53.484Z","etag":null,"topics":["minetest","minetest-proxy","reverse-proxy"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HimbeerserverDE.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-22T15:41:30.000Z","updated_at":"2025-01-24T15:23:16.000Z","dependencies_parsed_at":"2023-12-08T20:26:17.414Z","dependency_job_id":"2ef212a0-5e70-4b41-8d19-9d4946b3e8c4","html_url":"https://github.com/HimbeerserverDE/mt-multiserver-proxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HimbeerserverDE%2Fmt-multiserver-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HimbeerserverDE%2Fmt-multiserver-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HimbeerserverDE%2Fmt-multiserver-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HimbeerserverDE%2Fmt-multiserver-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HimbeerserverDE","download_url":"https://codeload.github.com/HimbeerserverDE/mt-multiserver-proxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237869181,"owners_count":19379282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["minetest","minetest-proxy","reverse-proxy"],"created_at":"2024-09-26T08:43:20.747Z","updated_at":"2025-10-23T18:30:29.138Z","avatar_url":"https://github.com/HimbeerserverDE.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mt-multiserver-proxy\n\nmt-multiserver-proxy is a reverse proxy designed for linking\nmultiple Minetest servers together. It is the successor to multiserver.\n\n## mt\n\nThis project was made possible by\n[anon55555's mt module](https://github.com/anon55555/mt).\n\n## Supported Minetest versions\n\n**Each commit only supports a single Minetest minor version.**\n\nThis is because each minor version breaks compatibility with its predecessors.\nPatch versions should be safe. Example:\nA proxy commit for 5.5.0 should also work with 5.5.1\nbut is highly likely to break when used with 5.6.0.\n\n**All internal servers should have strict version checking enabled.\nOtherwise version mismatches may remain undetected.**\n\nCompatibility breaks because upstream Minetest\ndoesn't take the protocol version into account when sending packets\nand instead expects the receiver to ignore any new fields it doesn't recognize.\nThis causes a *trailing data* error on the proxy\nthat prevents the packet from being parsed and processed.\n\n### Proxy updates\n\nOnly the currently supported Minetest version will get proxy updates,\ni.e. features and bug fixes won't be backported to earlier Minetest versions.\nIf you need this you can manually merge the commits yourself.\n\n### Commit hashes for Minetest releases\n\nThe latest `main` usually supports the latest Minetest release\nunless it isn't supported yet. The following list contains the commit hashes\nfor all versions that were ever supported:\n\n* Minetest 5.3: [18e7ba7977d1a94880ca6f0bc6d70dab0dc696e2](https://github.com/HimbeerserverDE/mt-multiserver-proxy/commit/18e7ba7977d1a94880ca6f0bc6d70dab0dc696e2), chat command plugin: unknown\n* Minetest 5.4: [4c90fdd8d212a1c94a7e9ffad587ef610dcc243b](https://github.com/HimbeerserverDE/mt-multiserver-proxy/commit/4c90fdd8d212a1c94a7e9ffad587ef610dcc243b), chat command plugin: [bae3cf2cf232a90203677464d83bbffc50be77b1](https://github.com/HimbeerserverDE/mt-multiserver-chatcommands/commit/bae3cf2cf232a90203677464d83bbffc50be77b1)\n* Minetest 5.5: [dd9e80d6a9a7031c97c64a1979e1e514c092a4cd](https://github.com/HimbeerserverDE/mt-multiserver-proxy/commit/dd9e80d6a9a7031c97c64a1979e1e514c092a4cd), chat command plugin: [fc27ae7c87be94a39bb9ccb15f2ad0b27fcac76c](https://github.com/HimbeerserverDE/mt-multiserver-chatcommands/commit/fc27ae7c87be94a39bb9ccb15f2ad0b27fcac76c)\n* Minetest 5.6: [04705a9129afe3e3f5414af1799667efcc57d3eb](https://github.com/HimbeerserverDE/mt-multiserver-proxy/commit/04705a9129afe3e3f5414af1799667efcc57d3eb), chat command plugin: [4020944da5bce99b878fae4c2d9709f610f4cf6a](https://github.com/HimbeerserverDE/mt-multiserver-chatcommands/commit/4020944da5bce99b878fae4c2d9709f610f4cf6a)\n* Minetest 5.7: [629d57a651b46539af3ffed36fb0649b3ea6d346](https://github.com/HimbeerserverDE/mt-multiserver-proxy/commit/629d57a651b46539af3ffed36fb0649b3ea6d346), chat command plugin: [718f8defad54adc04ac81f535b6d59c82a13298e](https://github.com/HimbeerserverDE/mt-multiserver-chatcommands/commit/718f8defad54adc04ac81f535b6d59c82a13298e)\n* Minetest 5.8: [efeceb162b2fd45994bf09023eea065519b6b89b](https://github.com/HimbeerserverDE/mt-multiserver-proxy/commit/15c56b8806030984c2cfdc04a5455a366eca44d4), chat command plugin: [15c56b8806030984c2cfdc04a5455a366eca44d4](https://github.com/HimbeerserverDE/mt-multiserver-chatcommands/commit/15c56b8806030984c2cfdc04a5455a366eca44d4)\n* Minetest 5.9: [143f14722b6c23cebd9a625e517d5988e8330baa](https://github.com/HimbeerserverDE/mt-multiserver-proxy/commit/143f14722b6c23cebd9a625e517d5988e8330baa), chat command plugin: [86bd26badf51258be23a73bb48e5b55b28aa2c07](https://github.com/HimbeerserverDE/mt-multiserver-chatcommands/commit/86bd26badf51258be23a73bb48e5b55b28aa2c07)\n* Luanti 5.10: [7800bf490fa92879dfc46a54836624a8d1c6c6f6](https://github.com/HimbeerserverDE/mt-multiserver-proxy/commit/7800bf490fa92879dfc46a54836624a8d1c6c6f6), chat command plugin: [8ea5400bdd4f68bbccb8f25e8f60c1346d218ff8](https://github.com/HimbeerserverDE/mt-multiserver-chatcommands/commit/8ea5400bdd4f68bbccb8f25e8f60c1346d218ff8)\n* Luanti 5.11: [278d619d28f7d17e44c55311e2221dda3c86ca4e](https://github.com/HimbeerserverDE/mt-multiserver-proxy/commit/278d619d28f7d17e44c55311e2221dda3c86ca4e), chat command plugin: [f69d016fd7b84b594250913a8a52eacc73788265](https://github.com/HimbeerserverDE/mt-multiserver-chatcommands/commit/f69d016fd7b84b594250913a8a52eacc73788265)\n* Luanti 5.12: [3b16493fbc7d81653a8f445dd875349679cf7d2a](https://github.com/HimbeerserverDE/mt-multiserver-proxy/commit/3b16493fbc7d81653a8f445dd875349679cf7d2a), chat command plugin: [2613b70407e0b69f34fd31d11cee993ea330ccf7](https://github.com/HimbeerserverDE/mt-multiserver-chatcommands/commit/2613b70407e0b69f34fd31d11cee993ea330ccf7)\n* Luanti 5.13: [812055bbce5e84c383dfab29440e48cc6bebd349](https://github.com/HimbeerserverDE/mt-multiserver-proxy/commit/812055bbce5e84c383dfab29440e48cc6bebd349), chat command plugin: [68a6384793beb321b695f71b5078d3b23a338aea](https://github.com/HimbeerserverDE/mt-multiserver-chatcommands/commit/68a6384793beb321b695f71b5078d3b23a338aea)\n* Luanti 5.14: latest\n\nThe chat command plugin commit hashes are mainly specified for old proxy\nversions that didn't support automatic plugin building and version management\nyet. Using the `mt-build-plugin` tool should be sufficient, though there may\nbe API changes preventing the plugin from compiling against an old proxy\nversion in which case the commit hashes are needed too. Conclusively it's\nimportant to downgrade the plugin to that version if you want it to work with\nan old proxy version without automatic plugin building and version management\nor if it doesn't compile against old proxy versions anymore.\n\n### Minetest development builds\n\nDevelopment builds aren't supported at all\nbecause it would be a monumental maintenance effort.\nIf you have to use one, try the proxy version for its release first\nand continue with the proxy version for the last release\npreceeding the development build.\nIf this doesn't work you'll have to edit the code of the proxy yourself.\n\n**Development builds may pass the version check performed by the proxy\nand experience major breakage.** This is because the protocol version\nisn't bumped when a new development phase is started after a release.\n\n## Installation\n\nIt is recommended to explicitly set the `GOBIN` environment variable\nto a directory that is only used for the proxy binaries, databases\nand configuration files.\n\nGo 1.21 or higher is required. Run\n\n```\nexport GOBIN=~/.local/share/mt-multiserver-proxy\nmkdir -p ${GOBIN}\ngo install github.com/HimbeerserverDE/mt-multiserver-proxy/cmd/...@latest\n```\n\nto download and compile the project. A mt-multiserver-proxy executable\nwill be created in your ${GOBIN} directory. The same command is also\nused to upgrade to the latest version. You will need to recompile\nall plugins after upgrading.\n\nIn addition to the main `mt-multiserver-proxy` binary the following\nadditional utilities are installed:\n\n* [mt-auth-convert](https://github.com/HimbeerserverDE/mt-multiserver-proxy/blob/main/doc/auth_backends.md#mt-auth-convert): Helper program to convert between authentication database formats.\n* [mt-build-plugin](https://github.com/HimbeerserverDE/mt-multiserver-proxy/blob/main/doc/plugins.md#automatic-version-management): Utility for building plugins against the correct proxy version.\n\nYou can replace the `...` in the installation command\nwith any of the binary names to limit installation and updating\nto a single executable. **This is not recommended, however,\nas it can cause version mismatches between them.**\n\n### Development builds\n\nBuild the following binaries from the proxy repository directory:\n\n```\ngo build -race ./cmd/mt-auth-convert\ngo build -race ./cmd/mt-build-plugin\ngo build -race ./cmd/mt-multiserver-proxy\n```\n\n*Do not move the binaries! Doing so breaks automatic plugin builds.*\n\n### Docker\n\nThe proxy can be run in Docker. See [doc/docker.md](https://github.com/HimbeerserverDE/mt-multiserver-proxy/blob/main/doc/docker.md)\nfor instructions and details.\n\n## Usage\n\n### Starting\n\nRun `${GOBIN}/mt-multiserver-proxy`. The configuration file and other required\nfiles are created automatically in the directory the executable is in,\nso make sure to install the executable to the desired location.\nSymlinks to the executable will be followed, only the real path matters.\n\n### Stopping\n\nmt-multiserver-proxy reacts to SIGINT, SIGTERM and SIGHUP. It stops listening\nfor new connections, kicks all clients, disconnects from all servers\nand exits. If some clients aren't responding, mt-multiserver-proxy waits until\nthey have timed out.\n\n## Configuration\n\nThe configuration file name and format including a minimal example\nare described in [doc/config.md](https://github.com/HimbeerserverDE/mt-multiserver-proxy/blob/main/doc/config.md).\n\n**All internal servers need to allow empty passwords\nand must not be reachable from the internet!**\n\n## Authentication database migration\n\nIt is possible to import existing Minetest authentication databases.\nSee [doc/auth_backends.md](https://github.com/HimbeerserverDE/mt-multiserver-proxy/blob/main/doc/auth_backends.md)\nfor details.\n\n## Chat commands\n\nThe default chat commands can be installed as a [plugin](https://github.com/HimbeerserverDE/mt-multiserver-chatcommands).\n\n## Plugins\n\nThis proxy supports loading Go plugins.\nConsult [doc/plugins.md](https://github.com/HimbeerserverDE/mt-multiserver-proxy/blob/main/doc/plugins.md)\nfor details on how to develop or install them.\n\n## Docker\n\nThe proxy can be run in Docker.\nSee [doc/docker.md](https://github.com/HimbeerserverDE/mt-multiserver-proxy/blob/main/doc/docker.md)\nfor details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhimbeerserverde%2Fmt-multiserver-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhimbeerserverde%2Fmt-multiserver-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhimbeerserverde%2Fmt-multiserver-proxy/lists"}