{"id":19454575,"url":"https://github.com/jibby-games/game-server-manager","last_synced_at":"2026-04-13T04:40:08.849Z","repository":{"id":155562751,"uuid":"597166091","full_name":"Jibby-Games/Game-Server-Manager","owner":"Jibby-Games","description":"A game server manager to automatically start game servers in Docker for the open source game Flappy Race.","archived":false,"fork":false,"pushed_at":"2025-01-21T22:33:56.000Z","size":84,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T10:26:17.736Z","etag":null,"topics":["docker","fastapi","game-development","game-hosting","game-manager","game-server","python","server"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jibby-Games.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-02-03T19:19:02.000Z","updated_at":"2025-01-21T22:28:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"b1eafbf4-3008-4c37-b33b-c3b307121ef2","html_url":"https://github.com/Jibby-Games/Game-Server-Manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Jibby-Games/Game-Server-Manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jibby-Games%2FGame-Server-Manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jibby-Games%2FGame-Server-Manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jibby-Games%2FGame-Server-Manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jibby-Games%2FGame-Server-Manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jibby-Games","download_url":"https://codeload.github.com/Jibby-Games/Game-Server-Manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jibby-Games%2FGame-Server-Manager/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259960627,"owners_count":22938097,"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":["docker","fastapi","game-development","game-hosting","game-manager","game-server","python","server"],"created_at":"2024-11-10T17:10:16.572Z","updated_at":"2026-04-13T04:40:08.830Z","avatar_url":"https://github.com/Jibby-Games.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Game Server Manager - Generic Server Managing API\n\nA game server manager which uses Docker to run and manage each server instance, written in Python with the FastAPI framework. This allows game clients to request a server to be created using a REST API.\n\nOriginally written for the open source game\n[Flappy Race](https://github.com/Jibby-Games/Flappy-Race).\nUsed as part of the [Flappy Backend repo](https://github.com/Jibby-Games/Flappy-Backend) which\ncontains other microservices for the game.\n\n## API Overview\n- `POST /api/manager/request`: request to create a new game server\n  - Expects the following JSON fields:\n    - `name` (string) - the name of the game server for the server browser\n    - `list` (bool) - if the game should appear in the server browser\n    - `version` (string) - the game version to run based on the Docker image tag names (using Semantic Versioning format)\n  - Returns the following JSON if successful, depending on `CONNECTION_MODE`:\n\n### `ports` mode\nThe game server is bound to a host port. The client connects directly using the host IP and returned port.\n```json\n{ \"port\": 7000 }\n```\n\n### `traefik` mode\nThe game server is routed through Traefik. The client receives a `game_id` and constructs the WebSocket URL itself, e.g.:\n`wss://\u003cdomain\u003e/games/\u003cslug\u003e/\u003cgame_id\u003e/ws`\n```json\n{ \"game_id\": \"ABCDEF123456\" }\n```\n\n## Connection Modes\n\n| Mode | `CONNECTION_MODE` | How it works |\n|---|---|---|\n| Ports | `ports` | Game server containers bind a host port in the `GAME_SERVER_PORT_MIN`–`GAME_SERVER_PORT_MAX` range. TLS is handled by the game server using certs from `SECRETS_VOLUME`. |\n| Traefik | `traefik` | Game server containers attach to the Traefik network with no published ports. Traefik routes `wss://\u003cdomain\u003e/games/\u003cslug\u003e/\u003cgame_id\u003e/ws` to the container and strips the path prefix before forwarding. TLS is terminated by Traefik — game containers receive plain WebSocket connections. |\n\n# Requirements\nThe following must be installed and setup to use this repo correctly:\n- Docker - For running and managing game servers\n- [uv](https://docs.astral.sh/uv/) - For managing Python packages\n\n# Development\nRun the `./start_server.sh` script to start the app using `uv`.\nThis will auto reload any changes to the app to make testing easier.\n\n# Updating Dependencies\nRun the `./update_deps.sh` script to upgrade and re-lock all dependencies using `uv`.\nMake sure everything still works and then commit these files if they were updated:\n- pyproject.toml\n- uv.lock\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjibby-games%2Fgame-server-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjibby-games%2Fgame-server-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjibby-games%2Fgame-server-manager/lists"}