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
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.
- I'm using
- 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
.
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 + Docker Compose
On Arch Linux can be installed withpacman -S docker docker-compose
$ 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"
- 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.
$ 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!
$ 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)
I really need to thank all of these awesome sources for helping me in this project. I wouldn't go far without them.