{"id":29364498,"url":"https://github.com/meowabyte/gdps-ts","last_synced_at":"2025-08-20T06:17:15.145Z","repository":{"id":302715857,"uuid":"1013298335","full_name":"meowabyte/gdps-ts","owner":"meowabyte","description":"My attempt at implementing fully working Geometry Dash private server using Bun + Typescript","archived":false,"fork":false,"pushed_at":"2025-07-03T20:34:44.000Z","size":45,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-19T03:10:32.546Z","etag":null,"topics":["bun","bunjs","gd","gdps","geometry-dash","geometry-dash-server","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meowabyte.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,"zenodo":null}},"created_at":"2025-07-03T17:03:46.000Z","updated_at":"2025-07-03T20:34:47.000Z","dependencies_parsed_at":"2025-07-03T21:33:14.569Z","dependency_job_id":"3fee5edd-204a-4da0-a59b-23dd836e724d","html_url":"https://github.com/meowabyte/gdps-ts","commit_stats":null,"previous_names":["meowabyte/gdps-ts"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/meowabyte/gdps-ts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meowabyte%2Fgdps-ts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meowabyte%2Fgdps-ts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meowabyte%2Fgdps-ts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meowabyte%2Fgdps-ts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meowabyte","download_url":"https://codeload.github.com/meowabyte/gdps-ts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meowabyte%2Fgdps-ts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271274659,"owners_count":24731069,"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","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bun","bunjs","gd","gdps","geometry-dash","geometry-dash-server","typescript"],"created_at":"2025-07-09T11:00:32.031Z","updated_at":"2025-08-20T06:17:10.119Z","avatar_url":"https://github.com/meowabyte.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg alt=\"Logo\" src=\"assets/logo.webp\" height=\"128\" /\u003e\n\n# 🟦 gdps-ts\n\n\u003e [!CAUTION]\n\u003e This project is **HEAVILY WORK IN PROGRESS** and should not currently be used in actual GDPS projects. **THIS PROJECT DOESN'T HAVE MOST OF ENDPOINTS IMPLEMENTED!!!!**\n\nMy attempt at implementing fully working Geometry Dash private server using [Bun](https://bun.sh/) + [TypeScript](https://www.typescriptlang.org/)\n\n## Hardcoded Values Notice\n\nCurrently a lot of simple connection stuff are hardcoded for development purposes but that'll be changed in the future.  \nSome of them are:\n\n-   Port - `1337` for GDPS endpoints\n-   Pathname - `/gds/\u003croute\u003e`\n    -   I'm using `/gds` here to fit the byte count to prevent bytes offsetting when patching the .exe file, but that's less important.\n-   Database port - Due to how the project is set up and knowing Docker by default doesn't expose database connection, port is not being changed from it's default - `3306`.\n\n## Setting Up\n\n\u003e [!NOTE]\n\u003e This guide will be targetted towards Linux users (specifically Arch Linux), if you have other OS please follow guide specific for your system. I don't guarantee you'll get it working on there!\n\nFirst you need [**git**](https://git-scm.com/downloads) to clone the project. (you can also download it manually through `Code \u003e Download ZIP`) and use this command:\n\n```sh\n$ git clone https://github.com/meowabyte/gdps-ts.git\n```\n\n**It is HIGHLY RECOMMENDED changing `MARIADB_PASSWORD` and `MARIADB_ROOT_PASSWORD` lines in [db.env](/db.env) to your own passwords! As default passwords are publically available.**\n\nOnce you have first step done you can pick the way you'll run the server. I personally recommend Docker way as it sets up most of the stuff for you in container.\n\n### 📦️ Docker\n\n#### Requirements:\n\n-   [Docker](https://www.docker.com/get-started/) + [Docker Compose](https://docs.docker.com/compose/install/)  \n    _On Arch Linux can be installed with `pacman -S docker docker-compose`_\n\n#### Running:\n\n```sh\n$ cd gdps-ts\n$ docker compose up\n```\n\nThis will set up everything in the special container for you.\nWhen using Docker, database is not exposed publically for security purposes. Though if you need this for testing purposes, add this line in [compose.yaml](/compose.yaml) near `gdps` service and restart the server:\n\n```yaml\nports:\n    - \"\u003cpublic port\u003e:3306\"\n```\n\n### ⚙️ Manual Installation\n\n#### Requirements:\n\n-   [Bun](https://bun.sh/) (v1.2.17+ recommended)\n-   **Active [MariaDB](https://mariadb.org/) database ready for connection**  \n    Due to this project using [ORM](https://en.wikipedia.org/wiki/Object%E2%80%93relational_mapping) database package - [Sequelize](https://sequelize.org/) - there is a lot of supported databases. MariaDB is recommended though as project was made with it in mind.  \n    Please refer to [Sequelize guide](https://sequelize.org/docs/v6/getting-started/#installing) if you want to use database other than MariaDB.\n\n#### Installation:\n\n```sh\n$ cd gdps-ts\n$ bun install --frozen-lockfile\n```\n\nPlease also take a note that [db.env](/db.env) was set up with Docker in mind so you should change those values to your needs!\n\n#### Running:\n\n```sh\n$ bun start # Will run the app normally (RECOMMENDED)\n$ bun dev # Will run the app with all test and logging features intended for developing use (NOT RECOMMENDED ON PRODUCTION)\n```\n\n## [Configuration](/CONFIG.md)\n\n## [Endpoints Implementation State](/ENDPOINTS.md)\n\n## Credits\n\nI really need to thank all of these awesome sources for helping me in this project. I wouldn't go far without them.\n\n-   [GDDocs](https://wyliemaster.github.io/gddocs/#/)\n-   [GD Programming Discord Server](https://discord.gg/gd-programming-646101505417674758)\n-   [Cvolton's GDPS implementation](https://github.com/Cvolton/GMDprivateServer)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeowabyte%2Fgdps-ts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeowabyte%2Fgdps-ts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeowabyte%2Fgdps-ts/lists"}