Giter VIP home page Giter VIP logo

gogdb's Introduction

GOG Database

Website that collects data on GOG games.

Deployment Instructions

All commands need to be run as root. They are specific to Debian Buster, Apache2 and Uvicorn. If you want to use a different web or app server search for deploying Flask applications on it.

Application

Clone the application

# cd /usr/local/share
# git clone https://github.com/Yepoleb/gogdb.git
# cd gogdb

Create system user for the updater

# adduser --system --home /var/lib/gogdb/ --shell /bin/bash --no-create-home --group --disabled-login --gecos 'GOG DB' gogdb

Create a login token for the updater to use

# scripts/run.sh token token.json
# mkdir -p /var/lib/gogdb/storage/secret/
# mv token.json /var/lib/gogdb/storage/secret/token.json

Set access rights

# chown -R gogdb:gogdb /var/lib/gogdb/storage/
# chmod g-rwx,o-rwx -R /var/lib/gogdb/storage/secret/

Copy the example config and set the storage path

# mkdir /etc/gogdb
# cp example-production.py /etc/gogdb/config-production.py
# editor /etc/gogdb/config-production.py

Apache2

Apache is used as the webserver to serve static assets and act as a HTTPS proxy.

Install Apache2

# apt install apache2

Copy the config

# cp conf/apache2/gogdb.conf /etc/apache2/sites-available/

Enable required modules

# a2enmod proxy
# a2enmod expires

Enable the site

# a2ensite gogdb

Restart Apache2

# systemctl restart apache2

Uvicorn

Uvicorn is the default application server for GOG DB, but any other ASGI server can be used.

Install Uvicorn

# apt install uvicorn

Copy the systemd service file

# cp conf/systemd/gogdb.service /etc/systemd/system/

Start service

# systemctl daemon-reload
# systemctl enable gogdb
# systemctl start gogdb

Scripts

Scripts insert the data into the database and keep it up to date. They are also used to build the search index.

Copy the systemd email notify service to receive failed task notifications

# cp conf/systemd/[email protected] /etc/systemd/system/

Copy the systemd services for the updater

# cp conf/systemd/gogdb-updater.* /etc/systemd/system/

Enable the timer

# systemctl daemon-reload
# systemctl enable gogdb-updater.timer
# systemctl start gogdb-updater.timer

Copy the systemd services for the backup

# cp conf/systemd/gogdb-backup.* /etc/systemd/system/

Enable the timer

# systemctl daemon-reload
# systemctl enable gogdb-backup.timer
# systemctl start gogdb-backup.timer

Development

  1. Create a storage directory
  2. Adapt config-development.py from example-development.py
  3. Generate a token as described in the application setup process

The scripts/run.sh script is a convenient way to run the components of GOG DB with development defaults.

Database Migrations

See MIGRATIONS.md

License

AGPLv3 or later

gogdb's People

Contributors

emilprogramer22 avatar yepoleb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gogdb's Issues

Filter for type and systems

Filtering the page by type (for example exclude all packages and DLCs) and filter by system (for example exclude all Linux games) would be great.

Certificate has expired

Update your security certificate on gogdb. It expired on May 20. The google chrome browser does not allow access to the site. Thanks

Lagging behind in updates

Is there a way to force or request an update of a game?

I'm seeing right now Sniper Ghost Warrior Contracts 2 got out with ver 1.01 but as of this writing the gogdb page is still at 1.0.
And I've also seen some other games in the past having their entries fall behind on gogdb while Steam versions kept getting updated.

Some kind of a button with a captcha would be a good addition to any game page.

# scripts/run.sh assets not working

Hi, the command : # scripts/run.sh assets
is not working. assets don't exist.

I fix with adding this in run.sh

assets)
python3 gogdb/application/assets.py "$@"

Thanks for your works, it run nice on my Debian 12 self hosted server, i use your backup_v3 as a starting point.

More currencies and prices

Hello Gabriel,

Thank you very much for your work!

Is it possible to add prices for different countries/currencies to the site?

RSS Feed

Hello,

would be neat, if you would provide a RSS feed for the changes.

Thanks!

Sort Feature on Products page

A "Sort" feature on the Products page would make it easier to view content.

Sort Suggestions

  • Name (alphabetically)
  • Oldest First (if Release Date is added to Products page)
  • Newest First (if Release Date is added to Products page)

Game changelogs

Is it possible to display the GOG's internal game changelogs on GOG DB pages?

Shadow Warrior 2 as an example (partial changelog):

Patch 1.1.14.0 (19 February 2018)

Holiday patch is being rolled back. You can still access "Master Wang, please save the Christmas!" mission by using a snowglobe placed right under the TV set in Wang Cave

Patch 1.1.13.0 (21 December 2017)

Lo Wang's home now looks like it should when the snow falls.
Special winter mission is now available in the game world after killing the first boss.
Help Lo Wang save Christmas! Get messy with Krampus the Bad Santa and win a unique weapon!

Patch 1.1.11.1 (23 August 2017)
The Bounty Hunt - Part 2 DLC

adds weapons Chill Factor and TBSM (Tactical Bullet Spewing Machine)
adds three new perks
adds thirteen new missions

Patch 1.1.10.1 (17 March 2017)
The Bounty Hunt - Part 1 DLC

Fourteen new bounty missions that can be found in Wang's Cave on a bounty board
Two new weapons: Medusa gun and EX-GF01 minigun
Four new perks
It's free!

Question: GOG build ID

Hi
When a game gets updated it gets a build ID, a number in parentheses, like for Cyberpunk it's right now (68508). Is this build number anywhere? The installer file name is setup_cyberpunk_2077_build_4940722change_6460039_0_(64bit)_(68508) so it has no version in it but on the build tab on gogdb, there's nothing about it... neither the file name, nor that gog build ID, as of now it's just a 2.02.

The database doesn't include new game tags

GOG has new tags like "Funny", "Relaxing", "Zombies", etc. that are separate from the older genre tags ("Adventure", "Strategy", etc.). They are returned by the catalog.gog.com/v1/catalog endpoint in the "tags" key (while the old tags are in "genres"). The code doesn't seem to collect these tags currently.

Info on API call

Could I trouble you with some help?

Now since GG.to is going private, I was wondering if it's possible to use the GOG API to get games in order of updates?

I was trying with games/ajax/filtered but the results did not match what GG was showing. I was trying mediaType=game&page=1&sort=date (and furthers pages) and among the results were what it's shown on there as well, but for instance Stardew Valley shows as updated on GG, right now it's the latest updated game and it got updated this day, but on the API results it is missing. I've even checked a few pages back, and it doesn't show. I've also tried looking under api.gog.com/v2/games, and v1, first few pages and last, it's not there either. Eventually I did download all pages and found it on page 171 out of 212, and without any hint it was recently updated. Now this is... cumbersome. Does GOG have a way to list updated games based on recent date?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.