Skip to content

meowabyte/gdps-ts

Repository files navigation

Logo

🟦 gdps-ts

Caution

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!!!!

My attempt at implementing fully working Geometry Dash private server using Bun + TypeScript

Hardcoded Values Notice

Currently a lot of simple connection stuff are hardcoded for development purposes but that'll be changed in the future.
Some of them are:

  • Port - 1337 for GDPS endpoints
  • Pathname - /gds/<route>
    • I'm using /gds here to fit the byte count to prevent bytes offsetting when patching the .exe file, but that's less important.
  • 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.

Setting Up

Note

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!

First you need git to clone the project. (you can also download it manually through Code > Download ZIP) and use this command:

$ git clone https://github.com/meowabyte/gdps-ts.git

It is HIGHLY RECOMMENDED changing MARIADB_PASSWORD and MARIADB_ROOT_PASSWORD lines in db.env to your own passwords! As default passwords are publically available.

Once 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.

📦️ Docker

Requirements:

Running:

$ cd gdps-ts
$ docker compose up

This will set up everything in the special container for you. When using Docker, database is not exposed publically for security purposes. Though if you need this for testing purposes, add this line in compose.yaml near gdps service and restart the server:

ports:
    - "<public port>:3306"

⚙️ Manual Installation

Requirements:

  • Bun (v1.2.17+ recommended)
  • Active MariaDB database ready for connection
    Due to this project using ORM database package - Sequelize - there is a lot of supported databases. MariaDB is recommended though as project was made with it in mind.
    Please refer to Sequelize guide if you want to use database other than MariaDB.

Installation:

$ cd gdps-ts
$ bun install --frozen-lockfile

Please also take a note that db.env was set up with Docker in mind so you should change those values to your needs!

Running:

$ bun start # Will run the app normally (RECOMMENDED)
$ bun dev # Will run the app with all test and logging features intended for developing use (NOT RECOMMENDED ON PRODUCTION)

Credits

I really need to thank all of these awesome sources for helping me in this project. I wouldn't go far without them.

About

My attempt at implementing fully working Geometry Dash private server using Bun + Typescript

Topics

Resources

License

Stars

Watchers

Forks

Languages