Skip to content

A web service for automatically downloading backups of your games from external clients such as GOG

License

Notifications You must be signed in to change notification settings

daniel-frak/backity

Repository files navigation

Code Soapbox Logo

Backity

Backity Logo

Quality Gate Status Maintainability Rating Reliability Rating

Bugs Coverage Vulnerabilities Code Smells Technical Debt

GitHub

Backity is a web service for automatically downloading backups of your games from external clients such as GOG.

For instructions on how to use Backity, consult the Wiki.

⚠️Warning: Backity is not yet production-ready! Anything may break at any time.⚠️

The information below is aimed at developers who want to extend this project's functionality.


Getting Started

First, clone this repository.

Then, build it locally with:

mvn clean install

You can run the project with the following command:

cd backend
mvn spring-boot:run

As a result, you should be able to visit the home page on http://localhost:8080/:

home page screenshot

Configuration

To customize the application, use the -Dspring-boot.run.arguments flag to pass custom property values, e.g.:

cd backend
mvn spring-boot:run -Dspring-boot.run.arguments="--some-property-1=value1 --some-property-2=value2"

Basic configuration

The following basic properties can be customized:

  • backity.default-path-template - the template to use when constructing the file download path (e.g., games/{GAME_PROVIDER_ID}/{TITLE}/{FILENAME}). Available placeholders:
    • {GAME_PROVIDER_ID} - the ID of the game provider, e.g., "GOG"
    • {TITLE} - the game title
    • {FILENAME} - the full name of the file being downloaded

Advanced configuration

The following advanced properties can be customized:

  • backity.file-download-queue-scheduler - how often the file download queue should be checked
  • backity.gog-auth-scheduler - how often the system should check if GOG authentication should be refreshed

S3 support

By default, Backity uses the local file system to store files.

To enable S3 support, backity.filesystem.s3.enabled must be set to true.

Further properties should also be configured:

  • backity.filesystem.s3.bucket - the bucket to use for storing game files
  • spring.cloud.aws.s3.endpoint - the S3 endpoint
  • spring.cloud.aws.s3.region.static - the S3 region
  • spring.cloud.aws.credentials.access-key - optionally, the access key
  • spring.cloud.aws.credentials.secret-key - optionally, the secret key

Check the Spring Cloud AWS documentation for more advanced configuration options.

The following optional properties are also available:

Application Behavior

The following information is useful to know about the application's functionality:

  • If downloading a file would result in overwriting an existing file, an exception will be thrown. This helps to protect the existing file and prevents multiple Game File aggregates from pointing to the same physical file.

Table of contents generated with markdown-toc

About

A web service for automatically downloading backups of your games from external clients such as GOG

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 4

  •  
  •  
  •  
  •