Skip to content

The Python-based backend for RealistikGDPS, made as an expandable solution for a GDPS of any size.

License

Notifications You must be signed in to change notification settings

HarryYang2369/RealistikGDPS

 
 

Repository files navigation

RealistikGDPS

The Python-based backend for RealistikGDPS, made as an expandable solution for a GDPS of any size.

For support and a public running instance, please visit our Discord!

What is this?

This is a modern Python implementation of the Geometry Dash server protocol meant to power my Geometry Dash Private server. It is written in asynchronous, modern Python and is meant as a replacement for our current PHP based infrastructure.

Interesting Features

  • Fully Dockerised, allowing for easy setup
  • MeiliSearch, allowing for typo tolerance
  • S3 support, allowing for flexible storage solutions
  • Proper ratelimiting
  • Logz.io logging support
  • Flexible command framework

How to set up?

  • Ensure Docker and Make are installed on your system.
  • Create a copy of the .env.example file named .env and adjust it to your liking.
  • Run make build to build the RealistikGDPS image.
  • Run make run to run everything.

TODO: Non-docker setup instructions.

You may use environment variables (no .env file support yet) for config by setting the USE_ENV_CONFIG variable to "1".

Configuration

As previously mentioned, RealistikGDPS currently supports two ways of configuring the server.

Using Docker (compose)

The Docker configuration process is by far the simplest as it includes all services in one.

  • Create a copy of .env.example named .env This creates a copy of the default config with all the field names ready for editing.

  • Edit the .env file to your liking Due to the all-in-one nature of Docker, the defaults are unlikely to require any changing with the exception SRV_NAME, representing the name of your GDPS.

Without Docker

Configuring a bare instance of RealistikGDPS requires more work as you are responsible for setting up the services (such as MySQL and Redis). This means that the majority of the configuration is setup dependent.

By default, RealistikGDPS will generate a config.json file on first run that you are able to edit with all the fields present. Equally, you may select to use environment variables for configuration if the USE_ENV_CONFIG var is set to "1".

Both methods accept the same values (identical names).

Upgrading an existing server

Assuming your server is based off Cvolton's server implementation, there exists a migration utility for this built right into the codebase.

This is done by importing your old database into a database named old_gdps and running make converter (assuming you are using Docker). This will fill all empty tables with data from the old table.

About

The Python-based backend for RealistikGDPS, made as an expandable solution for a GDPS of any size.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.7%
  • Other 1.3%